-Guide to Building HandBrake svn2252 (2009031001) on Linux
+Guide to Building HandBrake svn2688 (2009071301) on Linux
*********************************************************
Table of Contents
5.4.4 Contrib Touch and Untouch
5.4.5 Contrib Aggregates
5.5 Customizing Make
+6 Troubleshooting
Appendix A Project Repository Details
The following general tools are used on various platforms and it is
recommended you use these versions or similar:
- * subversion - 1.5.5
+ * subversion - 1.6.2
* python - Python 2.4.6
- * curl - curl 7.19.3 (or wget)
+ * curl - curl 7.19.4 (or wget)
* m4 - GNU M4 1.4.6
will not need many of these packages installed:
Ubuntu 8.10 packages:
- * build-essential
+ * subversion (cli/gui)
- * autoconf (gui)
+ * yasm (cli/gui)
- * intltool (gui)
+ * build-essential (cli/gui)
+
+ * autoconf (cli/gui)
- * libtool (gui)
+ * libtool (cli/gui)
- * zlib1g-dev (gui)
+ * zlib1g-dev (cli/gui)
- * libbz2-dev
+ * libbz2-dev (cli/gui)
+
+ * intltool (gui)
* libglib2.0-dev (gui)
* libhal-storage-dev (gui)
- * libgtkhtml3.14-dev (gui)
+ * libwebkit-dev (gui)
+
+ * libnotify-dev (gui)
* libgstreamer0.10-dev (gui)
To install these packages:
sudo apt-get install subversion yasm build-essential \
- autoconf intltool libtool zlib1g-dev libbz2-dev libglib2.0-dev \
+ autoconf libtool zlib1g-dev libbz2-dev intltool libglib2.0-dev \
libdbus-glib-1-dev libgtk2.0-dev libhal-dev libhal-storage-dev \
- libgtkhtml3.14-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
+ libwebkit-dev libnotify-dev libgstreamer0.10-dev \
+ libgstreamer-plugins-base0.10-dev
Fedora 10 package groups:
* Development Tools
"X Software Development" "GNOME Software Development"
Additional Fedora 10 packages:
- * zlib-devel (gui)
+ * yasm (cli/gui)
+
+ * zlib-devel (cli/gui)
- * bzip2-devel
+ * bzip2-devel (cli/gui)
* dbus-glib-devel (gui)
* hal-devel (gui)
- * gtkhtml3-devel (gui)
+ * webkitgtk-devel (gui)
+
+ * libnotify-devel (gui)
* gstreamer-devel (gui)
To install these packages:
sudo yum install yasm zlib-devel bzip2-devel \
- dbus-glib-devel hal-devel gtkhtml3-devel \
+ dbus-glib-devel hal-devel webkitgtk-devel libnotify-devel\
gstreamer-devel gstreamer-plugins-base-devel
3 QuickStart
This chapter is for building from a terminal/shell environment in as
few commands as possible. Upon completion of the following commands you
should have a fresh build of HandBrake. Further instructions are
-available beginning with *Note overview:: which describes procedures
+available beginning with *note overview:: which describes procedures
suitable for repeating builds. This chapter should be skipped by those
seeking more than a minimalist build.
Configure will automatically create a scratch build directory `build'
unless you use GNU-style build procedures and first `cd' to a directory
-other than top-level source. Additionally you may specify use `--build'
-to specify the directory. The name of the directory is arbitrary but it
-is recommended to use something which indicates transient files which
-are not checked into the repository.
+other than top-level source. Additionally you may use `--build' to
+specify the directory. The name of the directory is arbitrary but it is
+recommended to use something which indicates transient files which are
+not checked into the repository.
The `configure' utility accepts many options. It is recommended that
you specify `--help' for the complete list of options. The following
`--launch'
All-in-one option which launches the build and logs output
- automatically. Useful for novices and quickstart procedures.
+ automatically. Useful for novices and quick-start procedures.
`--disable-xcode'
- Disable shunting the build through Xcode. If this option is
- applied, `HandBrakeCLI' will be produced in a similare fashion as
- it is on other platforms; sans Xcode. Mac OS X only.
+ Disable shunting the build through `xcodebuild'. If this option is
+ applied, `HandBrakeCLI' will be produced in a similar fashion as
+ it is on other platforms; sans Xcode and the Cocoa application
+ will not be produced. Mac OS X only.
`--disable-gtk'
Disable building the GTK GUI on applicable platforms such as
* build corruption is suspected
There are generally two methods for scrapping a build. The `build'
-directory can be recusrively removed which has the effect of loosing
+directory can be recursively removed which has the effect of loosing
your existing configuration but does guarantee no residuals are left
behind. The other method is to ask the build system to perform an `make
xclean'. This is known to work well but will leave empty directories
The build system supports passing many kinds of targets some of which
become very useful in normal development cycles. The targets by
convention are lower-case words passed to `make'. Global targets are
-one-word targets. Scoped targets are usually two-words seperated by a
+one-word targets. Scoped targets are usually two-words separated by a
period.
5.4.1 Global
---------------------
Contrib modules such as `a52dec', `bzip2', `faac', `faad2', `ffmpeg',
-`lame', `libdca', `libdvdread', `libmkv', `libmp4v2', `libogg',
-`libsamplerate', `libtheora', `libvorbis', `mpeg2dec', `x264',
-`xvidcore' and `zlib' have the following scoped targets:
+`lame', `libdca', `libdvdread', `libmkv', `libogg', `libsamplerate',
+`libtheora', `libvorbis', `mp4v2', `mpeg2dec', `x264' and `zlib' have
+the following scoped targets:
`make MODULE.fetch'
Download source tarball from the Internet and save to
- `TOP/downloads' directory. No checksumming is performed.
+ `TOP/downloads' directory. No check-summing is performed.
`make MODULE.extract'
Extract source tarball into `build' tree.
(essentially gnu-make variables) the recommended method is to create
optional include files which are automatically included if present and
follow this naming convention; Do not check these files into the
-respository:
+repository:
`_SRC_/custom.defs'
Custom makevar definitions outside `build'. Suitable for settings
`_SRC_/custom.defs' might contain:
## bump to gcc-4.2 in current path
- GCC.gcc = gcc-4.2
+ GCC.gcc = /usr/bin/gcc-4.2
- ## replace optimize for 'speed' with more agressive settings
+ ## replace optimize for 'speed' with more aggressive settings
GCC.args.O.speed = -O3 -fomit-frame-pointer -msse4.2
See also `make report.help' which displays a set of reports used to
dump makefile vars.
+6 Troubleshooting
+*****************
+
+When troubleshooting build issues, the following files relative to the
+`build/' directory may be especially useful:
+
+`GNUmakefile'
+ Top-level makefile which contains build settings generated via
+ configure.
+
+`log/config.info.txt'
+ Record of output from configure.
+
+`log/config.verbose.txt'
+ Record of verbose output from configure.
+
+`log/build.txt'
+ Record of output from `configure --launch'. Similar output may be
+ recorded using `make' depending on which shell is in use, eg:
+ `make >& log/build.txt' or `make > log/build.txt 2>&1'.
+
+`log/xcodemake.env.txt'
+ Environment (variables) dump as seen when Xcode forks `make'.
+ Mac OS X only.
+
Appendix A Project Repository Details
*************************************
root: svn://svn.handbrake.fr/HandBrake
branch: trunk
uuid: b64f7644-9d1e-0410-96f1-a4d463321fa5
- rev: 2252
- date: 2009-03-10 18:43:11 -0400
+ rev: 2688
+ date: 2009-07-12 22:47:33 -0700
type: developer