@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.5.7 @item Xcode-3.1.2 @item gcc 4.0.1 (Apple Inc. build 5490) @item yasm 0.8.0.2194 (for i386 and x86_64 architectures) @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 @i{serially}; optionally you may substitute @command{make ub.build.serial} for @command{make ub.build.parallel} if your machine has the horsepower: @example ./configure --disable-xcode cd build/ make ub.build.serial make ub.combine @end example To specify a subset of architectures to be built first create/edit @file{_SRC_/custom.defs} with the following override to build UB for @samp{i386} and @samp{x86_64} before invoking @command{make}: @example ## prefer i386 (order is important) UB.archs = i386 x86_64 @end example @c %**------------------------------------------------------------------------- @include building/chapter.via.xcode.texi @include building/chapter.troubleshooting.texi @include building/appendix.repo.texi