Changes between Version 64 and Version 65 of MacBuild


Ignore:
Timestamp:
Oct 8, 2010, 3:42:49 AM (14 years ago)
Author:
charlief
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MacBuild

    v64 v65  
    11= Building BOINC Client and Manager on Macintosh OS X =
    2 '''Last updated 6/5/09'''
     2'''Last updated 10/7/10'''
    33
    4 This document applies to BOINC version 6.8.0 and later.  It has instructions for building the BOINC Client and Manager for Macintosh OS X. For information on building science project applications to run under BOINC on Macintosh OSX, see BuildMacApp.
     4This document applies to BOINC version 6.11.9 and later.  It has instructions for building the BOINC Client and Manager for Macintosh OS X. For information on building science project applications to run under BOINC on Macintosh OSX, see BuildMacApp.
    55
    66Note: the information in this document changes from time to time for different versions of BOINC. For any version of BOINC source files, the corresponding version of this document can be found in the source tree at:
     
    2222BOINC does not support 64-bit PowerPC applications for the Mac.
    2323
    24 You need to take certain steps to ensure that you use only APIs that are available in all the OS versions BOINC supports for each architecture.  There are two basic ways to accomplish this:
    25  * Build each platform on a system running the oldest OS you need to support, then combine them into a Universal Binary using the lipo command-line utility:
    26     * A PowerPC development system running OS 10.3.9
    27     * An Intel development system running OS 10.4.x
    28     * A 64-bit development Intel system running OS 10.5.x.  However, at the time this is written, the BOINC Makefiles do not directly build 64-bit binaries; you will have to modify the Makefile slightly to specify the x86_64 architecture by adding the compiler and linker flag `-arch x86_64`.
    29  * Use a single development system running OS 10.5.x and cross-compile for the various platforms.  The remainder of this document describes that process.
     24Although BOINC supports 64-bit Intel project applications on Mac OS 10.5.0 and above, the only part of the BOINC client package built as a 64-bit executable is the screensaver coordinator for OS 10.6.x.  The BOINC libraries also include a 64-bit build so that they can be linked with 64-bit project applications.
    3025
    31 '''The above requirements apply not only BOINC itself, but also the !WxWidgets, JPEG, c-ares and cURL libraries, as well as all project applications.''' The BOINC Client does not use !WxWidgets or JPEG, so only the c-ares and cURL libraries must be built for the x86_64 architecture.
     26You need to take certain steps to ensure that you use only APIs that are available in all the OS versions BOINC supports for each architecture. The best way to accomplish this is to use a single development system running OS 10.6.x and cross-compile for the various platforms. The remainder of this document describes that process.
     27
     28'''The above requirements apply not only BOINC itself, but also the !WxWidgets, JPEG, c-ares and cURL libraries, as well as all project applications.''' Only theJPEG library must be built for  the x86_64 architecture, since it is used by the libboinc_graphics_api library.
    3229
    3330Be sure to follow the directions in this document to ensure that these requirements are met.
     
    3532Starting with version 6.1.0, the BOINC Client supports only Mac OS X 10.3.9 and later; support for OS 10.3.0 through 10.3.8 has been discontinued.  This allows us to build the BOINC Client and Manager using only GCC 4.0, which offers a number of advantages.
    3633
    37 As of version 6.1.0, the BOINC Client includes support for the x86_64 (64-bit Intel) architecture.
     34Starting 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.
     35
    3836
    3937== Cross-Platform Development ==
    4038
    41 Apple provides the tools necessary to cross-compile for all three BOINC Mac platform on any Mac running OS 10.5.x.
     39Apple provides the tools necessary to cross-compile for all three BOINC Mac platform on any Mac running OS 10.6.x.
    4240
    43 Apple provides Software Developer Kits (SDKs) for OS 10.3.9, OS 10.4 and OS 10.5.  These include all the header files and stub libraries appropriate to the corresponding versions of OS X.
    44 
    45 You get these tools, including the GCC compilers and system library header files, by installing the XCode Tools package.  I recommend running OS 10.5.x and installing XCode Tools 3.0 or later. If you have the OS 10.5 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`.
     41You get these tools, including the GCC compilers and system library header files, by installing the XCode Tools package. Building BOINC and the library packages on which it depends requires XCode 3.2 or later running under OS 10.6.x 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.
    4642
    4743Otherwise, 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:
    4844http://connect.apple.com
    4945
    50 '''Building BOINC now requires XCode Tools version 3.0 or later.'''  Note that the MacOS10.3.9 SDK and GCC-3.3 are not automatically included unless you customize the installation; click  the '''Customize''' button in the ''Installation type'' step when you run the XCode Tools installer, and set the "Mac OS X 10.3.9 Support" checkbox.
     46'''Building BOINC now requires XCode Tools version 3.2 or later.'''  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 installe.  The MacOS10.4u SDK is required to build wxWidgets (wxMac-2.8.10).
    5147
    5248Source 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/].
    5349
    54 You also need to install Subversion itself. One place to get it is: [http://www.codingmonkeys.de/mbo/]
     50You also need to install Subversion itself in the /usr/local/bin/ directory.  By default, OS X and XCode install it in `/usr/bin/`.  To copy it into `/usr/local/bin/`, enter the following in the Terminal utility application:
     51{{{
     52cd /usr/bin
     53sudo cp -p svn* /usr/local/bin
     54}}}
     55Enter your administrator password when prompted to do so.
    5556
    5657== Building BOINC Manager with embedded Core Client ==
     
    8485[http://dir.filewatcher.com/d/GNU/Other/jpegsrc.v6b.tar.gz.613261.html]
    8586
    86 ''XCode 3.0 installs autoconf 2.61 and automake 1.10.  To determine the version number, type `autoconf --version` or `automake --version`. Building curl-7.19.4 requires autoconf 2.59 and automake 1.9.3 or later.''
    87 
    88 Upgrades for autoconf and automake are available from www.gnu.org:
    89 
    90 http://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.gz
    91 
    92 http://ftp.gnu.org/gnu/automake/automake-1.10.tar.gz
    93 
    94 ''XCode installed these utilities in the `/usr/bin/` directory, but the upgrades by default will install in `/usr/local/bin/`. If you install there, you must also set your `PATH` environment variable to include that location. The scripts referenced below do this automatically.''
    95 
    96  * All BOINC software for Power PC Macs must be built using MacOS10.3.9 SDK to assure backward compatibility with OS 10.3.9.
    97  * All 32-bit BOINC software for Intel Macs must be built using GCC 4.0 and MacOS10.4.u SDK to allow cross-compiling and to assure backward compatibility with OS 10.4.x.
    98  * All 64-bit BOINC software for Intel Macs must be built using GCC 4.0 and MacOS10.5 SDK.
    99 
     87XCode will automatically check compatibility back to OS 10.3 if the following are defined during compilation:
     88{{{
     89MAC_OS_X_VERSION_MAX_ALLOWED=1030
     90MAC_OS_X_VERSION_MIN_REQUIRED=1030
     91}}}
    10092These are not done by either the XCode projects which come with wxMac-2.8.10, nor the !AutoMake scripts supplied with wxMac-2.8.10, c-ares-1.6.0, curl-7.19.4, or jpeg-6b. So be sure to use our special scripts to build these packages.
    101 
    102 Building BOINC and the library packages on which it depends requires OS 10.5 and XCode 3.0 (or greater).
    10393
    10494   1. Create a parent directory within which to work. In this description , we will call it BOINC_dev, but you can name it anything you wish.
     
    139129
    140130{{{
    141 source BuildMacBOINC.sh [-dev] [-noclean] [-no64bit] [-all] [-lib] [-client] [-help]
     131source BuildMacBOINC.sh [-dev] [-noclean] [-all] [-lib] [-client] [-help]
    142132}}}
    143133
     
    148138      -noclean::
    149139          don't do a 'clean' of each target before building. default is to clean all first.
    150         -no64bit::
    151           build 32-bit binaries only, no x86_64 architecture.
    152140
    153141The following arguments determine which targets to build
     
    162150Both -lib and -client may be specified to build five targets (no BOINC Manager.)
    163151
    164 Note: You may find three XCode projects in the BOINC_dev/boinc/mac_build/ directory:
    165     * '''boinc.pbproj''' is obsolete and should no longer be used.
     152Note: You may find two XCode projects in the BOINC_dev/boinc/mac_build/ directory:
    166153    * '''wxMac-BOINC.xcodeproj''' was needed for building older versions of the wxMac library in conjunction with the older versions of the setupForBoinc.sh or buildWxMac.sh scripts. It is not used for BOINC 5.9.2 or later.
    167     * '''boinc.xcodeproj''' builds BOINC. It can be used either with the BuildMacBOINC.sh script or as a stand-alone project. It has three extra build configurations, ''i386-Deployment'' and ''ppc-Deployment'', which can be used for testing only to build for just one architecture, and ''Deployment-no64'' which builds only 32-bit products. 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.
     154    * '''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.
    168155
    169 The standard release of BOINC version 6.1.0 and later contains a universal binary of the BOINC Client containing builds for three architectures: ppc, i386 and x86_64.  The Mac OS automatically chooses the appropriate architecture as follows:
     156The standard release of BOINC version 6.10.58 and later contains a universal binary of the BOINC Client containing builds for two architectures: ppc and i386.  The Mac OS automatically chooses the appropriate architecture as follows:
    170157 * On a PowerPC Mac, it runs the ppc executable.
    171  * On a Mac with a 64-bit Intel processor running OS 10.5 or later, it runs the x86_64 executable.
    172  * On any other Intel Mac, it runs the i386 executable.
     158 * On an Intel Mac, it runs the i386 executable.
    173159
    174160== Building BOINC Manager Installer ==