OSDN Git Service

disable asserts in libdvdnav except when configured with --debug=max
[handbrake-jp/handbrake-jp-git.git] / doc / BUILD-Linux
index a6c3fb0..ecfc415 100644 (file)
@@ -1,4 +1,4 @@
-Guide to Building HandBrake svn2252 (2009031001) on Linux
+Guide to Building HandBrake svn3023 (2009121001) on Linux
 *********************************************************
 
 Table of Contents
@@ -19,6 +19,7 @@ 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
 
 
@@ -37,13 +38,21 @@ Linux; but is not necessarily the only configuration that is possible:
 
    * Intel 32-bit or 64-bit kernel
 
-   * Ubuntu 8.0.4, gcc 4.3.0, yasm 0.7.1.2093
+   * Ubuntu 8.04, gcc 4.3.0, yasm 0.7.1
 
-   * Ubuntu 8.10, gcc 4.3.2, yasm 0.7.1.2093
+   * Ubuntu 8.10, gcc 4.3.2, yasm 0.7.1
 
-   * Fedora 9, gcc 4.3.0, yasm 0.7.1.2093
+   * Ubuntu 9.04, gcc 4.3.3, yasm 0.7.1
 
-   * Fedora 10, gcc 4.3.2, yasm 0.7.1.2093
+   * Ubuntu 9.10, gcc 4.4.1, yasm 0.8.0
+
+   * Fedora 9, gcc 4.3.0, yasm 0.7.1
+
+   * Fedora 10, gcc 4.3.2, yasm 0.7.1
+
+   * Fedora 11, gcc 4.4.0, yasm 0.7.2
+
+   * Fedora 12, gcc 4.4.2, yasm 0.7.2
 
    * gcc 4.0.0 or higher is reported to work
 
@@ -57,11 +66,11 @@ Linux; but is not necessarily the only configuration that is possible:
 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
 
@@ -77,18 +86,22 @@ The GTK UI introduces some significant extra build requirements. If you
 intend to disable building the GUI with `configure --disable-gtk' you
 will not need many of these packages installed:
 
-Ubuntu 8.10 packages:
-   * build-essential
+Ubuntu 8.04 - 9.10 packages:
+   * 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)
 
@@ -100,19 +113,24 @@ Ubuntu 8.10 packages:
 
    * libhal-storage-dev (gui)
 
-   * libgtkhtml3.14-dev (gui)
+   * libwebkit-dev (gui)
+
+   * libnotify-dev (gui)
 
    * libgstreamer0.10-dev (gui)
 
    * libgstreamer-plugins-base0.10-dev (gui)
 
+Ubuntu 8.04, substitute libwebkitgtk-dev for libwebkit-dev
+
 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:
+Fedora 9 - 12 package groups:
    * Development Tools
 
    * Development Libraries
@@ -125,24 +143,30 @@ To install these package groups:
      sudo yum groupinstall "Development Tools" "Development Libraries" \
      "X Software Development" "GNOME Software Development"
 
-Additional Fedora 10 packages:
-   * zlib-devel (gui)
+Additional Fedora packages:
+   * 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)
 
    * gstreamer-plugins-base-devel (gui)
 
+Fedora 9 & 10, substitute WebKit-gtk-devel for webkitgtk-devel
+
 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
@@ -151,7 +175,7 @@ To install these packages:
 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.
 
@@ -212,10 +236,10 @@ Configure the build system.
 
 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
@@ -238,12 +262,13 @@ options are also documented here:
 
 `--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
@@ -279,7 +304,7 @@ some of the reasons why someone may choose to scrap an existing build:
    * 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
@@ -308,7 +333,7 @@ log. The following command allows for up to 4 concurrent jobs via make:
 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
@@ -366,13 +391,13 @@ scoped targets:
 ---------------------
 
 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.
@@ -462,7 +487,7 @@ If the need arises to override settings in the build system
 (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
@@ -489,14 +514,39 @@ be lost. Here is a short example of what the contents of
 `_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
 *************************************
 
@@ -504,7 +554,7 @@ 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:    3023
+     date:   2009-12-10 09:44:05 -0800
      type:   developer