@input texinfo @c -*- Texinfo -*- @c %**start of header @setfilename Building.osx.info @include base/article.texi @include building/command.texi @paragraphindent none @set BG.platform osx @c %**end of header @majorheading Build Guide for @value{HB.name} @value{HB.version} on @value{OS.@value{BG.platform}} @contents @include building/chapter.introduction.texi @c %**------------------------------------------------------------------------- @anchor{prerequisites} @chapter Prerequisites Building on @value{OS.osx} is well supported. It is the reference platform for @value{HB.name}. The following are the recommended specifications for this platform; but is not necessarily the only configuration that is possible: @itemize @bullet @item Mac Intel hardware @item @value{OS.osx} 10.7.2 @item Xcode 4.2.1 (Build version 4D502) @item llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) @item yasm 1.1.0.2352 @end itemize @include building/prerequisites.bundled.texi @include building/prerequisites.common.texi @c %**------------------------------------------------------------------------- @include building/chapter.quickstart.texi @c %**------------------------------------------------------------------------- @anchor{overview} @chapter Overview The two general methods to build on @value{OS.osx} are from @b{terminal} or @b{Xcode.app}. The preferred method for automated and repeatable builds is to use the terminal. Otherwise the choice is generally up to the individual. To be extra clear, building from the terminal by default actually invokes @command{xcodebuild} to build the very same targets contained in the Xcode project. Think of it as building with Xcode but without the GUI. @c %**------------------------------------------------------------------------- @include building/chapter.via.terminal.texi @c %**------------------------------------------------------------------------- @anchor{terminal.ub} @section Universal Binaries This section outlines convenience procedures for creating Universal Binaries for all the architectures. @quotation Note The dummy (container) build configuration uses @command{--disable-xcode}; but the nested architecture builds will all make full use of Xcode. @end quotation Create a dummy (container) build configuration and use it to launch a nested-build for each architecture: @example ./configure --disable-xcode cd build/ make ub.build make ub.combine @end example The list of architectures is hard coded to @value{HB.name}'s desired product and currently is composed of combining the binaries produced from two xcconfigs: osx106.i386 and osx106.x86_64. The following example shows how to specify a different list of xcconfigs: @example ./configure --disable-xcode cd build/ make UB.xcconfigs="osx107.i386 osx107.x86_64" ub.build make UB.xcconfigs="osx107.i386 osx107.x86_64" ub.combine @end example @c %**------------------------------------------------------------------------- @include building/chapter.via.xcode.texi @include building/chapter.troubleshooting.texi A note about gdb: We perform an extra execv when starting the application. This triggers a trap in gdb. It is harmless. You should just 'continue' from the trap. @include building/appendix.repo.texi