Changes between Version 42 and Version 43 of BuildMacApp


Ignore:
Timestamp:
Jul 17, 2012, 4:13:40 AM (12 years ago)
Author:
charlief
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BuildMacApp

    v42 v43  
    22
    33= Building BOINC Project Applications for Macintosh OS X =
    4 '''Last updated 10/11/10'''
    5 
    6 This document applies to BOINC libraries 6.11.9 and later.  It has instructions for building science project applications to run under BOINC on Macintosh OSX.  Information for building the BOINC Client and Manager for Macintosh OSX can be found [wiki:MacBuild here].
     4'''Last updated 7/17/12'''
     5
     6This document applies to BOINC libraries 7.0.32 and later.  It has instructions for building science project applications to run under BOINC on Macintosh OSX.  Information for building the BOINC Client and Manager for Macintosh OSX can be found [wiki:MacBuild here].
    77
    88Contents of this document:
     
    1717 * '''x86_64-apple-darwin''': 64-bit intel processors running OS 10.5.0 and above
    1818
    19 BOINC does not support 64-bit PowerPC applications for the Mac.
    20 
    21 Of course, you can choose to support only some of these platforms.  For example, you may not need a 64-bit version.  If your project does not support the x86_64-apple-darwin platform, BOINC will automatically request your i686-apple-darwin application.  And / or you may choose not to support the powerpc-apple-darwin platform.
    22 
    23 Although BOINC version 6.1.0 supports only Mac OS X 10.3.9 and later, earlier versions supported all versions back to OS 10.3.0.  The GCC compiler version 4.0 was introduced in OS 10.3.9.  OS 10.3.0 through 10.3.8 can't run applications built with GCC 4.0.  Also, starting with version 6.10.58,  the BOINC Client supports only Mac OS X 10.4.0 and later.  This allows it to be built with XCode 3.2 under OS 10.6.x, which does not support the Mac OS 10.3.9 SDK.
    24 
    25 You have 2 choices if you want to support PowerPC (G3, G4 and G5) processors:
    26 
    27  * Build  your PowerPC application with GCC 4.0 and distribute it only to Macs running 10.3.9 (or 10.4.0) or later.
    28  * Build your PowerPC application with GCC 3.3.
     19BOINC no longer supports PowerPC applications for the Mac.
     20
     21Of course, you can choose to support only some of these platforms.  For example, you may not need a 64-bit version.  If your project does not support the x86_64-apple-darwin platform, BOINC will automatically request your i686-apple-darwin application. 
     22
     23Starting with version 6.10.58,  the BOINC Client supports only Mac OS X 10.4.0 and later.  This allows it to be built with XCode 3.2 under OS 10.6.x and later.
    2924
    3025The libraries supplied with different versions of OS X support different APIs.  You need to take certain steps to ensure that you use only APIs that are available in all the OS versions you plan to support.  There are two basic ways to accomplish this:
    3126
    3227 * Build each platform on a system running the oldest OS you need to support:
    33    * A PowerPC development system running OS 10.3.0 through 10.3.8 (or 10.3.9 or 10.4.0 if you won't support the older systems)
    3428   * An Intel development system running OS 10.4.x
    3529   * A 64-bit development Intel system running OS 10.5.x or later (The original Intel Macs used an Intel Core Duo processor which was 32-bit only.  You must have an Intel Core 2 Duo or newer processor to run 64-bit applications.)
    36  * Use a single development system running OS 10.5.x or later and cross-compile for the various platforms.  The remainder of this document describes that process.
     30 * Use a single development system running OS 10.7.x or later and cross-compile for the various platforms.  The remainder of this document describes that process.
     31
     32'''Note:''' This issue applies mainly to Mac-specific APIs; support for standard UNIX functions rarely changes over different Mac OS versions.  However, the version numbers of some UNIX libraries do change over time, and applications which dynamically link to them may fail to load on older systems if they are built on a newer system.  If this happens, the best solution is to build a static version of the UNIX library yourself and static link it to your application.  Most UNIX libraries are open source, so you can get the source files and build them yourself.  Many are available from http://opensource.apple.com/.
    3733
    3834You will also need to build the BOINC libraries on each platform and any other libraries your application needs.  You can use the Makefiles supplied in the BOINC Subversion tree to build the BOINC libraries with this approach, or build them as Universal Binaries using the BOINC XCode project, as described later in this document.
    3935
    4036== Cross-Platform Development ==
    41 Apple provides the tools necessary to cross-compile for all three BOINC Mac platform on any Mac running OS 10.5.x.  If you don't need to support the x86_64-apple-darwin platform, you can also cross-compile on OS 10.4.x.
    42 
    43 Apple provides Software Developer Kits (SDKs) for OS 10.3.9, OS 10.4, OS 10.5 and OS 10.6.  These include all the header files and stub libraries appropriate to the corresponding versions of OS X.  However, the OS 10.3.9 cannot be used with XCode 3.2 under OS 10.6.
    44 
    45 You get these tools, including the GCC compilers and system library header files, by installing the XCode Tools package.  We recommend running OS 10.6.x and installing XCode Tools 3.2 or later. If you have the OS 10.6 installation DVD for your system, you can install XCode Tools at the time you install the OS, or you can install it later by opening the file `Optional Installs/XCode Tools/XCodeTools.mpkg`.
    46 
    47 Otherwise, you can download it from Apple's web site (it is large: 1.1 GB).  You must be a member of the Apple Developer Connection to download the software, but you can join for free at: http://connect.apple.com
    48 
    49 XCode will automatically check compatibility back to OS 10.3 if the following are defined during compilation:
    50 
    51 {{{
    52 MAC_OS_X_VERSION_MAX_ALLOWED=1030
    53 MAC_OS_X_VERSION_MIN_REQUIRED=1030
    54 }}}
    55 Note that the MacOS10.4u SDK is not automatically included unless you customize the installation; click  the '''Customize''' button in the ''Installation type'' step when you run the XCode Tools installer.
    56 
     37Apple provides the tools necessary to cross-compile for both BOINC Mac platforms on any Mac running OS 10.7.x or OS 10.8.x.  You get these tools, including the GCC compilers and system library header files, by installing the Xcode Tools package.
     38
     39You can download Xcode 4.3 or Xcode 4.4 from Apple's App Store (it is large: about 2 GB).  If you are a member of Apple's Mac Developer Program, you can also download it from Apple's web site: http://developer.apple.com.  You can also register for free access to Apple developer tools at: https://developer.apple.com/programs/register/.  See the section [#InstallingandsettingupXcode Installing and setting up Xcode] for further information.
     40
     41XCode will automatically check compatibility back to OS 10.4 if the following are defined during compilation:
     42
     43{{{
     44MAC_OS_X_VERSION_MAX_ALLOWED=1040
     45MAC_OS_X_VERSION_MIN_REQUIRED=1040
     46}}}
    5747The example_app found in `boinc/samples` has examples of 3 different ways to build the application for all 3 platforms using cross-development:
    5848
     
    6353The basic requirements for building each platform are:
    6454
    65  * Specify the architecture: ppc, i386 or x86_64
    66  * Specify the compiler to use (we recommend GCC-4.0).
     55 * Specify the architecture: i386 or x86_64
     56 * Specify the compiler to use.
    6757 * Specify an appropriate SDK.  It is OK to use the latest SDK even if building for older versions of OS X.
    6858 * Specify the Mac OSX Deployment Target, which is the minimum target OS X version on which you want your to application run.
     
    7262
    7363{{{
    74 -DMAC_OS_X_VERSION_MAX_ALLOWED=1030 -DMAC_OS_X_VERSION_MIN_REQUIRED=1030
    7564-DMAC_OS_X_VERSION_MAX_ALLOWED=1040 -DMAC_OS_X_VERSION_MIN_REQUIRED=1040
    7665-DMAC_OS_X_VERSION_MAX_ALLOWED=1050 -DMAC_OS_X_VERSION_MIN_REQUIRED=1050
    7766}}}
    78 These specify that the executable should be able to run on systems back to OS 10.3, OS 10.4 and OS 10.5, respectively.
    79 
    80 You can find examples in the following files in the BOINC SVN trunk:[[BR]] `boinc/mac_build/buildc-ares.sh`[[BR]] `boinc/mac_build/buildcurl.sh`[[BR]] `boinc/mac_build/buildjpeg.sh`[[BR]] `boinc/samples/example_app/MakeMacExample.sh`[[BR]] `boinc/samples/example_app/Makefile_mac2`[[BR]] `boinc/samples/example_app/Makefile_mac`[[BR]] `boinc/samples/wrapper/Makefile_mac`[[BR]]
     67These specify that the executable should be able to run on systems back to OS 10.4 and OS 10.5, respectively.
     68
     69You can find examples in the following files in the BOINC SVN trunk:[[BR]] `boinc/mac_build/buildc-ares.sh`[[BR]] `boinc/mac_build/buildcurl.sh`[[BR]] `boinc/mac_build/buildopenssl.sh`[[BR]] `boinc/samples/example_app/MakeMacExample.sh`[[BR]] `boinc/samples/example_app/Makefile_mac2`[[BR]] `boinc/samples/example_app/Makefile_mac`[[BR]] `boinc/samples/wrapper/Makefile_mac`[[BR]] `boinc/samples/vboxwrapper/Makefile_mac`[[BR]] `boinc/samples/vboxwrapper/BuildMacVboxWrapper.sh`[[BR]] `boinc/samples/vboxwrapper/Makefile_mac`[[BR]]
    8170
    8271== Preparing To Build ==
     
    8574Source files are now archived using Subversion. You can download svnX, a free GUI application for running Subversion from either [http://www.apple.com/downloads/macosx/development_tools/svnx.html] or [http://www.lachoseinteractive.net/en/community/subversion/svnx/].
    8675
    87 You also need to install Subversion itself. One place to get it is: [http://www.codingmonkeys.de/mbo/].
    88 
    89 If you are running OS X 10.6 and XCode 3.2, a recent version of Subversion is already installed in `/usr/bin/`.  To copy it into `/usr/local/bin/`, enter the following in the Terminal utility application:
     76If you installed the developer command line (CLI) tools from Xcode, then a recent version of Subversion is already installed in `/usr/bin/`.  To copy it into `/usr/local/bin/` (where svnX expects to find it), enter the following in the Terminal utility application:
    9077
    9178{{{
     
    10592Build the BOINC libraries as follows:
    10693
    107 BOINC itself is built using the `boinc.xcodeproj` file.  You can either build directly in XCode (more information below) or run the `BuildMacBOINC.sh` script.  Note: this script requires XCode 3.2 running under OS 10.6.x.  Run the script as follows:
     94BOINC itself is built using the `boinc.xcodeproj` file.  You can either build directly in XCode (more information below) or run the `BuildMacBOINC.sh` script.  Note: this script requires OS 10.6 or later.  Run the script as follows:
    10895
    10996{{{
     
    118105The options for BuildMacBOINC.sh are:
    119106
    120  -dev:: build the development (debug) version (native architecture only). Default is deployment (release) version (universal binaries containing three architectures: ppc, i386 and x86_64); when you link your application with these libraries, the linker will automatically select the architecture matching your application.
     107 -dev:: build the development (debug) version (native architecture only). Default is deployment (release) version  (universal binary: i386 and x86_64); when you link your application with these libraries, the linker will automatically select the architecture matching your application.
    121108 -noclean:: don't do a 'clean' of each target before building. default is to clean all first.
    122109
     
    124111
    125112 -all:: build all targets (i.e. target 'Build_All' -- this is the default)
    126  -lib:: build the three libraries: libboinc_api.a, libboinc_graphics_api.a, libboinc.a.
    127  -client:: build two targets: BOINC client and command-line utility [wiki:BoincCmd boinc_cmd] (also builds libboinc.a, since boinc_cmd requires it.)
    128 
    129 Both -lib and -client may be specified to build five targets (no BOINC Manager.)
     113 -lib:: build the five libraries: libboinc_api.a, libboinc_graphics_api.a, libboinc.a, libboinc_opencl.a, jpeglib.a.
     114 -client:: build two targets: BOINC client and command-line utility [http://boinc.berkeley.edu/wiki/Boinccmd_tool boinccmd] (also builds libboinc.a, since boinc_cmd requires it.)
     115
     116Both -lib and -client may be specified to build seven targets (no BOINC Manager.)
    130117
    131118For more information on this script, please see [wiki:MacBuild here].
     
    136123 * '''boinc.xcodeproj''' builds BOINC. It can be used either with the BuildMacBOINC.sh script or as a stand-alone project. The Development build configuration builds only the native architecture and is used for debugging.  The Deployment build configuration builds a universal binary and is suitable for release builds.  If there are any other build configurations, they should not be used as they are obsolete.
    137124
    138 The standard release of BOINC version 6.1.0 and later contains a universal binary of the BOINC libraries containing builds for three architectures: ppc, i386 and x86_64.
    139 
    140125== Build Any Other Needed Libraries ==
    141 If you are building a third-party library (such as JPEG), you will need to take the steps listed above in the section Cross-Platform Development.  See the files listed above for examples of how to accomplish this.
     126If you are building a third-party library, you will need to take the steps listed above in the section Cross-Platform Development.  See the files listed above for examples of how to accomplish this.
    142127
    143128== Build Your Application Using Cross-Development ==
     
    145130
    146131=== Using an XCode Project ===
    147 Double-click on the project file `boinc/samples/mac_build/UpperCase2.xcodeproj`.  At the top of the main window, select '''Build_All''' for the ''Active Target'', and '''ppc_Deployment''' for the ''Active Build Configuration''.  Then click on the Build icon (or select Build from the Build menu.)  Repeat for ''Active Build Configurations'' '''i386_Deployment''' and '''x86_64_Deployment'''.
    148 
    149 Note: you may see the following warning when building the PowerPC executable.  You may safely ignore it:
    150 
    151 {{{
    152 ld: warning: object file compiled with -mlong-branch which is no longer needed.
    153 To remove this warning, recompile without -mlong-branch
    154 }}}
    155 Use the example XCode project as a guide or a starting point to create an XCode project for your own application.  Pay special attention to the XCode build settings.  For more information on using XCode, see [http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/XcodeWorkspace XCode Workspace Guide].
    156 
    157 Also note that you can use the program `xcodebuild` to build XCode projects from the command-line (e.g. in a terminal window or shell script).  There are various flags for building particular builds within a project, and for overriding default variables as well (check `man xcodebuild` in a terminal window for the options).  You can find an example of this approach in the file `boinc/mac_build/buildWxMac.sh`
     132Double-click on the project file `boinc/samples/mac_build/UpperCase2.xcodeproj`.  At the top of the main window, select '''Build_All''' for the ''scheme'', then select "Build for Archiving" from the Build menu.)  '''Note:''' Do '''not''' select "Archive" from the Build menu.
     133
     134Use the example XCode project as a guide or a starting point to create an XCode project for your own application.  Pay special attention to the XCode build settings. 
     135
     136'''Note:''' By default, Xcode puts built products in an obscure location.  You can determine that location using Xcode's "Organizer" window.  To avoid this issue, the UpperCase2.xcodeproj and vboxwrapper.xcodeproj each have a "Run script" build phase which copies the built applications (as well as the symbol tables for the release builds) to a local `./build/` directory. 
     137
     138For more information on using XCode, see [http://developer.apple.com/library/mac/documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/ Xcode 4 User Guide].
     139
     140Also note that you can use the program `xcodebuild` to build XCode projects from the command-line (e.g. in a Terminal window or shell script).  There are various flags for building particular builds within a project, and for overriding default variables as well (check `man xcodebuild` in a Terminal window for the options).  You can find an examples of this approach in the files `boinc/mac_build/BuildMacBOINC.sh` and `boinc/mac_build/buildWxMac.sh`
    158141
    159142=== Using a Generic Makefile With a Custom Shell Script ===
     
    166149Again, you can use this shell script as a guide or starting point to create one for your application.  Let's examine the details:
    167150
    168 If your application uses an autoconf file, you can set the various environment variables for configure directly.  For examples, see the scripts `buildc-ares.sh`, `buildcurl.sh` and `buildjpeg.sh` in the directory `{path}/BOINC_dev/boinc/mac_build/`.
    169 
    170 In this case, there is no autoconf file, so we had to modify the generic Makefile slightly.  The most significant change was to add the variable `VARIANTFLAGS` to the list of arguments in `CXXFLAGS`.  The remaining changes were to ensure that the search paths included the needed BOINC headers and  libraries.
     151If your application uses an autoconf file, you can set the various environment variables for configure directly.  For examples, see the scripts `buildc-ares.sh`, `buildcurl.sh` and `buildopenssl.sh` in the directory `{path}/BOINC_dev/boinc/mac_build/`.
     152
     153In this case, there is no autoconf file, so we had to modify the generic Makefile slightly; the shell script uses Makefile_mac.  The most significant change was to add the variable `VARIANTFLAGS` to the list of arguments in `CXXFLAGS`.  The remaining changes were to ensure that the search paths included the needed BOINC headers and  libraries.
    171154
    172155Here are the elements of our script:
    173156
    174157{{{
    175 export PATH=/usr/local/bin:$PATH
    176 }}}
    177 XCode 2.4.1 installs autoconf 2.59 and automake 1.6.3. XCode 3.x installs autoconf 2.61 and automake 1.10. To determine the version number, type autoconf --version or automake --version.  If you installed a later version of either or both, they will be in the '/usr/local/bin/' directory.  This line ensures that the system will look there first.
     158GCCPATH=`xcrun -find gcc`
     159GPPPATH=`xcrun -find g++`
     160MAKEPATH=`xcrun -find make`
     161TOOLSPATH1=${MAKEPATH%/make}
     162ARPATH=`xcrun -find ar`
     163TOOLSPATH2=${ARPATH%/ar}
     164export PATH="${TOOLSPATH1}":"${TOOLSPATH2}":/usr/local/bin:$PATH
     165}}}
     166By default, the basic installation of Xcode 4.3 puts many of the command-line tools in unusual places.  The above lines allow the Make file to find what it needs. 
     167'''Note:''' If you installed the full command-line tool set from Xcode (as described in the section [#InstallingandsettingupXcode Installing and setting up Xcode]), then the standard tools will be in their normal locations and you may not need the above lines. 
     168
     169If you installed any additional command-line tools yourself, they may be in the '/usr/local/bin/' directory.
    178170
    179171None of these examples require running `_autosetup`.  If you are building other libraries or utilities that do have `_autosetup` , you may also need to install [http://sourceforge.net/projects/pkgconfig/ pkg-config].
    180172
    181173{{{
    182 export CC=/usr/bin/gcc-4.0;export CXX=/usr/bin/g++-4.0
    183 }}}
    184 Specifies which compiler to use.
    185 
    186 {{{
    187 export MACOSX_DEPLOYMENT_TARGET=10.3
     174SDKPATH=`xcodebuild -version -sdk macosx Path`
     175}}}
     176This gets the path to the current Mac OSX SDK, which contains the standard headers needed by most builds.
     177
     178{{{
     179export CC="${GCCPATH}";export CXX="${GPPPATH}"
     180}}}
     181Specifies which compiler to use.  (If you have installed the command-line tools in their standard locations, then this line could simply be `export CC=gcc;export CXX=g++`)
     182
     183{{{
     184export LDFLAGS="-Wl,-syslibroot,${SDKPATH},-arch,i386"
     185}}}
     186Specifies the appropriate SDK to use and the architecture for the linker.
     187
     188{{{
     189export VARIANTFLAGS="-isysroot ${SDKPATH} -arch i386 -DMAC_OS_X_VERSION_MAX_ALLOWED=1040 -DMAC_OS_X_VERSION_MIN_REQUIRED=1040 -fvisibility=hidden -fvisibility-inlines-hidden"
     190}}}
     191Specifies the SDK to use and the architecture for the compiler.  MAC_OS_X_VERSION_MAX_ALLOWED and MAC_OS_X_VERSION_MIN_REQUIRED tell the compiler to generate an error if you are using any APIs not yet available in that version of the Mac OS.
     192
     193{{{
     194export SDKROOT="${SDKPATH}"
     195}}}
     196Another way of specifying the SDK to use.
     197
     198{{{
     199export MACOSX_DEPLOYMENT_TARGET=10.4
    188200}}}
    189201Specifies the Mac OSX Deployment Target, which is the minimum target OS X version on which you want your to application run.  This sets certain symbol variants which determine the UNIX standard to be followed.  For details, see [http://developer.apple.com/library/mac/#releasenotes/Darwin/SymbolVariantsRelNotes/ this page].  We recommend the following values for the MACOSX_DEPLOYMENT_TARGET:
    190  * For PowerPC builds: 10.3
    191202 * For 32-bit Intel builds: 10.4
    192203 * For 64-bit Intel builds: 10.5
    193204
    194 {{{
    195 export LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk,-arch,ppc"
    196 }}}
    197 Specifies the appropriate SDK to use and the architecture for the linker.
    198 
    199 {{{
    200 export VARIANTFLAGS="-arch ppc -DMAC_OS_X_VERSION_MAX_ALLOWED=1030 -DMAC_OS_X_VERSION_MIN_REQUIRED=1030 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fvisibility=hidden -fvisibility-inlines-hidden"
    201 }}}
    202 Specifies the SDK to use and the architecture for the compiler.  MAC_OS_X_VERSION_MAX_ALLOWED and MAC_OS_X_VERSION_MIN_REQUIRED tell the compiler to generate an error if you are using any APIs not yet available in that version of the Mac OS.
    203 
    204 We recommend the following values for the SDK:
    205  * For PowerPC builds: MacOSX10.4u.sdk
    206  * For 32-bit Intel builds: MacOSX10.4u.sdk
    207  * For 64-bit Intel builds: MacOSX10.5.sdk
    208 
    209205=== Using a Custom Makefile ===
    210206Type the following in Terminal:
     
    214210make -f Makefile_mac2 clean all
    215211}}}
    216 The elements of our custom Makefile correspond to those described in our script.
     212'''Note:''' You must have installed the full command-line tool set from Xcode (as described in the section [#InstallingandsettingupXcode Installing and setting up Xcode]) to use this method.
     213The elements of our custom Makefile correspond to those described in our script, except that no SDK need be specified.  Installing the full command-line tool set from Xcode installs all headers either to their standard locations or to the frameworks at `/System/Library/Frameworks`, and the compilers default to use these headers and the standard libraries.
    217214
    218215== Upgrading applications for version 6 graphics ==
    219 One of the major changes in BOINC for version 6 is that applications are now expected to generate graphics in a separate executable. The graphics application typically communicates with the worker application using shared memory.
     216One of the major changes in BOINC for version 6 was that applications are now expected to generate graphics in a separate executable. The graphics application typically communicates with the worker application using shared memory.
    220217
    221218For additional information, please see the [wiki:GraphicsApi Graphics API] page.
     
    224221There is an optional API `setMacIcon()` in the `libboinc_api.a` library. This allows science graphics applications to display an application icon in the Dock and in the Finder. (The icon does not appear in the Dock until the application displays graphics.) To implement this, do the following:
    225222
    226  * Use '/Developer/Applications/utilities/Icon Composer.app' to create a xxx.icns file. (Use any name you wish instead of xxx.)
     223 * Use the `Icon Composer` application to create a xxx.icns file. (Use any name you wish instead of xxx.)  To access this application, control-click on the Xcode icon in Finder and select "Show package contents" from the contextual menu.  Then browse to `Contents/Applications/Icon Composer.app`.
    227224 * Convert the xxx.icns file to an app_icon.h file as follows: in Terminal, run:
    228225{{{
    229226{path}/MakeAppIcon_h {source_file_path}/xxx.icns {dest_file_path}/app_icon.h
    230227}}}
    231    (The !MakeAppIcon_h command-line utility is built by the Mac boinc XCode project in the 'boinc/mac_build/build/' directory.) Add the app_icon.h file to your graphics application's project.
     228   (The MakeAppIcon_h command-line utility is built by the Mac boinc XCode project in the 'boinc/mac_build/build/' directory.) Add the app_icon.h file to your graphics application's project.
    232229 * In the graphics application's main(), add
    233230{{{
     
    240237 * The graphics application must link with Carbon.framework to use setMacIcon().
    241238
     239== Installing and setting up Xcode ==
     240
     241Versions of Xcode prior to Xcode 4.3 have an installer package. After downloading Xcode, mount the disk image file by double-clicking on it, then double-click the installer package.
     242
     243Starting with Xcode 4.3, the disk image contains a copy of Xcode itself.  After mounting the disk image, drag the Xcode icon to the folder where you wish it to reside.  In most cases, this will be the `/Applications/` folder.  Unmount the disk image by dragging it to the trash.  Finally, double-click on the installed Xcode icon to run Xcode.  Xcode will display a dialog allowing you to finish the installation; you must do this before running BOINC's build scripts.  (Some versions of Xcode may not display this dialog until you open a file with Xcode.)
     244
     245Once you have done this, you will be able to build applications using Xcode projects and shell scripts as described earlier in this document.  If you wish to be able to build directly using the UNIX tools configure and make, you must also install the full command-line tool set from Xcode as follows:
     246 1. Launch Xcode.
     247 2. Select "Preferences..." from the "Xcode" menu.
     248 3. Click on the "Downloads" icon at the top of the Preferences dialog.
     249 4. Click on the "Install" button next to "command-line tools."
     250 
     251You can find more details [http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_3.html#//apple_ref/doc/uid/1006-SW2 here].
     252
    242253== Additional References ==
    243 http://developer.apple.com/technotes/tn2005/tn2137.html [[BR]] http://developer.apple.com/documentation/DeveloperTools/Conceptual/cross_development/ [[BR]] http://developer.apple.com/releasenotes/DeveloperTools/RN-GCC4/ [[BR]] http://developer.apple.com/library/mac/#documentation/Porting/Conceptual/PortingUnix/intro/intro.html [[BR]] http://developer.apple.com/legacy/mac/library/#documentation/MacOSX/Conceptual/universal_binary [[BR]] http://developer.apple.com/releasenotes/DeveloperTools/GCC40PortingReleaseNotes/index.html
     254http://developer.apple.com/documentation/DeveloperTools/Conceptual/cross_development/ [[BR]] http://developer.apple.com/library/mac/#documentation/Porting/Conceptual/PortingUnix/intro/intro.html [[BR]] http://developer.apple.com/legacy/mac/library/#documentation/MacOSX/Conceptual/universal_binary