OSDN Git Service

disable asserts in libdvdnav except when configured with --debug=max
[handbrake-jp/handbrake-jp-git.git] / doc / BUILD-Mac
index 6dc7469..55a785e 100644 (file)
@@ -1,4 +1,4 @@
-Build Guide for HandBrake svn2252 on Mac OS X
+Build Guide for HandBrake svn2591 on Mac OS X
 *********************************************
 
 Table of Contents
@@ -20,11 +20,12 @@ Table of Contents
     5.4.5 Contrib Aggregates
   5.5 Customizing Make
   5.6 Universal Binaries
-6 Building via Xcode
+6 Building via Xcode.app
   6.1 Checkout Sources
   6.2 Build
   6.3 External Targets
   6.4 User-Defined Settings
+7 Troubleshooting
 Appendix A Project Repository Details
 
 
@@ -45,13 +46,13 @@ possible:
 
    * Mac Intel hardware
 
-   * Mac OS X 10.5.6
+   * Mac OS X 10.5.7
 
    * Xcode-3.1.2
 
    * gcc 4.0.1 (Apple Inc. build 5490)
 
-   * yasm 0.7.2.2153 (for i386 and x86_64 architectures)
+   * yasm 0.8.0.2194 (for i386 and x86_64 architectures)
 
      Note: It is recommended to use the platform distribution's bundled
      compiler for maximum C++ compatibility. If you build with a custom
@@ -63,11 +64,11 @@ 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
 
@@ -115,11 +116,13 @@ following steps:
 4 Overview
 **********
 
-The two general methods to build on Mac OS X are building from terminal
-or Xcode. The preferred method for automated and repeatable builds is
+The two general methods to build on Mac OS X are from terminal or
+Xcode.app. The preferred method for automated and repeatable builds is
 to use the terminal. Otherwise the choice is generally up to the
-individual. In essence, the terminal actually invokes `xcodebuild' to
-build the very same targets contained in the Xcode project.
+individual. To be extra clear, building from the terminal by default
+actually invokes `xcodebuild' to build the very same targets contained
+in the Xcode project. Think of it as building with Xcode but without
+the GUI.
 
 5 Building via Terminal
 ***********************
@@ -149,10 +152,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
@@ -175,12 +178,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
@@ -216,7 +220,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
@@ -245,7 +249,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
@@ -303,13 +307,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.
@@ -399,7 +403,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
@@ -426,9 +430,9 @@ 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
@@ -461,8 +465,8 @@ and `x86_64' before invoking `make':
      ## prefer i386 (order is important)
      UB.archs = i386 x86_64
 
-6 Building via Xcode
-********************
+6 Building via Xcode.app
+************************
 
 6.1 Checkout Sources
 ====================
@@ -483,9 +487,16 @@ use Subversion 1.5.0 or higher. Lower versions should also work.
 6.2 Build
 =========
 
-In Xcode perform the following steps to build the default configuration:
+Open Xcode.app from a terminal by using the `open' command which passes
+your shell environment and its `PATH' setting to Xcode. Do not attempt
+to launch Xcode.app from Finder or by using Finder to open
+`HandBrake.xcodeproj' - doing so will defeat any custom path settings
+which contain required tools.
 
-   * open `macosx/HandBrake.xcodeproj'
+     open `macosx/HandBrake.xcodeproj'
+
+Once the HandBrake Xcode project is open, perform the following steps
+to build the default configuration:
 
    * select active configuration standard
 
@@ -610,6 +621,31 @@ external build system:
      Specifies the top-level source directory for HandBrake.
 
 
+7 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
 *************************************
 
@@ -617,7 +653,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:    2591
+     date:   2009-06-21 13:15:04 -0400
      type:   developer