Changes between Version 16 and Version 17 of MacBuild


Ignore:
Timestamp:
Dec 6, 2007, 3:03:10 AM (17 years ago)
Author:
charlief
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MacBuild

    v16 v17  
    166166== Building BOINC Manager Installer ==
    167167
    168 To build the Installer for the BOINC Manager, if the BOINC version number is x.y.z, you must be logged in as an administrator. Type the following in Terminal, then enter your administrator password when prompted by the script:
     168To build the Installer for the BOINC Manager, you must be logged in as an administrator.  If you are building BOINC version number x.y.z, type the following in Terminal, then enter your administrator password when prompted by the script:
    169169
    170170{{{
     
    204204=== Upgrading applications for Macs with Intel processors ===
    205205
    206 Apple began shipping Macs with Intel processors on January 10, and Apple expects to convert all its lines of computers to Intel by the end of 2006.
    207 
    208 All future releases of BOINC will include 'universal binary' builds for the Macintosh of BOINC Manager, command-line BOINC client and the [BoincCmd boinc_cmd] command-line tool. (Universal binaries contain both PowerPC and Intel executables in one file; the Macintosh OS automatically selects the appropriate one for that computer.)
     206Apple converted all its lines of computers to Intel processors during 2006.  The early Intel Macs used the Core Duo processor, which is a 32-bit CPU.  Later Intel processors, including the Core 2 Duo, can run both 32-bit and 64-bit applications.  However, BOINC will run in 64-bit mode only under OS 10.5 and later.
     207
     208All current releases of BOINC include "universal binary" builds for the Macintosh of BOINC Manager, command-line BOINC client and the boinc_cmd command-line tool.  (Universal binaries contain both PowerPC and Intel executables in one file; the Macintosh OS automatically selects the appropriate one for that computer.)  Beginning with version 6.1, the BOINC Client and libraries also include the 64-bit Intel architecture as part of the universal binaries.
    209209
    210210The advantage of 'universal binaries' is that you only need to have one copy of the application, and it will run on either PowerPC or Intel Macs, so users don't need to choose between two options. Since BOINC participants manually download BOINC from the web site, we will be providing BOINC in 'universal binary' form.
     
    212212However, participants do not manually download project applications; this is done automatically by BOINC. So there would be no advantage to combining the Intel and PowerPC versions in a single 'universal binary' file, but doing so would double the size of the download.
    213213
    214 So BOINC treats Intel Macs as a new, separate platform. BOINC previously directly supported four platforms: PowerPC Macs (`powerpc-apple-darwin`), Intel Linux (`i686-pc-linux-gnu`), Windows (`windows_intelx86`) and Solaris (`sparc-sun-solaris2.7`).
    215 
    216 '''We have now added a fifth platform for Intel Macs (i686-apple-darwin).'''
    217 
    218 As a '''temporary''' measure, projects can set their servers to deliver a copy of their current PowerPC application (renamed for the new platform) under the new `i686-apple-darwin` platform. The OS will run it in compatibility mode, emulating a PowerPC. (Apple calls this compatibility mode "Rosetta", which of course has nothing to do with the Rosetta BOINC project.)
     214Starting with BOINC 5.9.7, the Intel BOINC Client accepts powerpc-apple-darwin applications if no i686-apple-darwin is available.   The OS will run it in compatibility mode, emulating a PowerPC.  (Apple calls this compatibility mode Rosetta, which of course has nothing to do with the Rosetta BOINC project.) 
     215
     216The x86_64 BOINC Client requests x86_64-apple-darwin applications from BOINC servers as its first choice, i686-apple-darwin as a second choice, and finally powerpc-apple-darwin if no Intel applications are available.
     217
     218However, older Intel Mac clients will not get any work unless the server offers i686-apple-darwin applications.
     219
     220As a '''temporary''' measure, projects can set their servers to deliver a copy of their current PowerPC application (renamed for the new platform) under the i686-apple-darwin platform for older BOINC Clients.
    219221
    220222If you do this, be sure to give your native Intel application a higher version number when you do release it, so that clients will download it.
     
    233235But Apple provides the tools to allow you to cross-compile your application on any Mac (PowerPC or Intel) running OS 10.4 or later. Here is how:
    234236
    235 All BOINC software for Power PC Macs must be built using GCC 3.3 and MacOS 10.3.9 SDK to assure backward compatibility with OS 10.3. If building a PowerPC application on an Intel Mac, you must also specify '-arch ppc' in the compiler and linker flags.
    236 
    237 All BOINC software for Intel Macs must be built using GCC 4.0 and MacOS 10.4.u SDK to allow cross-compiling. If building an Intel application on a PowerPC Mac, you must also specify '-arch i386' in the compiler and linker flags.
    238 
    239 You can find examples of how to do this for two different kinds of configure / make scripts in the HEAD branch of the BOINC SVN tree at [source:trunk/boinc/mac_build/buildcurl.sh boinc/mac_build/buildcurl.sh] and [source:trunk/boinc/mac_build/buildjpeg.sh boinc/mac_build/buildjpeg.sh].
    240 
    241 The lipo utility is used at the end of each of these scripts to combine the two binaries into a single 'Universal Binary' file. You won't need to do that with you project applications, since you will be distributing them separately under the two platforms. But if you prefer, you can create a Universal Binary and distribute the same file for both `i686-apple-darwin` and `powerpc-apple-darwin` platforms.
     237All BOINC project applications for Power PC Macs must be built using GCC 3.3 and MacOS10.3.9 SDK to assure backward compatibility with OS 10.3.  If building a PowerPC application on an Intel Mac, you must also specify "-arch ppc" in the compiler and linker flags.
     238
     239All 32-bit BOINC software for Intel Macs must be built using GCC 4.0 and MacOS10.4.u SDK to allow cross-compiling.  If building an Intel application on a PowerPC Mac, you must also specify "-arch i386" in the compiler and linker flags.
     240
     241All 64-bit BOINC software for Intel Macs must be built using GCC 4.0 and MacOS10.5 SDK.  To build for the x86_64 architecture, use a Mac running either OS 10.4 or OS 10.5 and specify the -arch x86_64 option to the compiler and linker.
     242
     243If you prefer, you can cross-compile on one Mac running OS 10.4.x or OS 10.5.x.  You can find examples of how to do this for two different kinds of configure / make scripts in the HEAD branch of the BOINC SVN tree at [source:trunk/boinc/mac_build/buildcurl.sh boinc/mac_build/buildcurl.sh] and [source:trunk/boinc/mac_build/buildjpeg.sh boinc/mac_build/buildjpeg.sh].
     244
     245The lipo utility is used at the end of each of these scripts to combine the two binaries into a single "Universal Binary" file.  You won't need to do that with you project applications, since you will be distributing them separately under the two platforms.  But if you prefer, you can create a Universal Binary and distribute the same file for both i686-apple-darwin and powerpc-apple-darwin platforms (and also the x86_64-apple-darwin platform if you wish).
    242246
    243247Note that the BOINC libraries (and any third-party libraries) which you link with your applications must be built with the same configuration as the application itself. Follow the instructions earlier in this document to build the needed libraries.
     
    252256http://developer.apple.com/releasenotes/DeveloperTools/GCC40PortingReleaseNotes/index.html
    253257
     258=== Upgrading applications for version 6 graphics ===
     259
     260One 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.
     261
     262For additional information, please see:
     263http://boinc.berkeley.edu/trac/milestone/6.0
     264http://boinc.berkeley.edu/trac/wiki/GraphicsApi
     265
    254266=== Adding a Finder icon to your application ===
    255267