Building BOINC Manager with embedded Core Client plus libraries libboinc.a and libboinc_graphics_api.a

Written by Charlie Fenton
Last updated 4/26/05

NOTE: Substitute the appropriate path for [wxpath] and [boincpath] throughout this document.

ONE_TIME SETUP for BOINC Manager and embedded Core Client

(1) First download wxMac-2.6.0 from www.wxwidgets.org and build it:
cd [wxpath]/wxMac-2.6.0
mkdir osx-build
cd osx-build
../configure --disable-shared --with-opengl
make

(2) Run Configure to create the correct config.h file:

cd [boincpath] /boinc 
./configure --disable-server --with-apple-opengl-framework

(3) Create a  symbolic link [path]/ boinc/wx_lib pointing to 
[wxpath]/wxMac-2.5.3/osx-build/lib/

(4) Create a  symbolic link [path]/ boinc/wxinclude pointing to 
[wxpath]/wxMac-2.5.3/include

(5) Create a  symbolic link [path]/ boinc/jpeglib pointing to 
your jpeg-6b directory (or whatever directory contains the jpeglib source files).  If you have the seti_boinc source directory which contains jpeglib, you can point the symbolic link there.

For example, if the boinc, wxMac-2.5.3 and jpeg-6b directories are all in 
    [wxpath]    then the commands would be:

cd [wxpath]/boinc 

ln -s [wxpath]/wxMac-2.5.3/osx-build/lib ./wx_lib

ln -s [wxpath]/wxMac-2.5.3/include ./wxinclude

ln -s [wxpath]/jpeg-6b ./jpeglib

Building the BOINC Manager and embedded Core Client

(1) Double-click on [boincpath]/boinc/mac_build/boinc.pbproj to launch the XCode development IDE with the BOINC project.

(2) In the Active Target popup, select mgr_boinc or Build_All.  Build_All also builds the three libraries libboinc_api.a, libboinc_graphics_api.a and libboinc.a, which are used to build science applications such as SETI@home.  These libraries are not needed by the BOINC Manager or Core Client.

(3) In the Active Build Style popup, choose Development (for debugging) or Deployment (for release builds.)

(4) If you have switched Build Style, be sure to do a "Clean All Targets" from the Build menu; otherwise object files from the old build style will not be rebuilt in the new build style.

(5) Select Build from the Build menu.  I suggest you also open the Detailed Build Results window from the Build menu.  Wait a long  time while it compiles.

(6) In addition to the BOINC Manager BOINC.app and Core Client boinc_client, this will also build the SystemMenu.bundle framework and a small helper utility SetVersion.  

SetVersion is run automatically as part of the build process to update the Mac version information file InfoPlist.strings, using the contents of version.h.  The boinc-client, SystemMenu.bundle and InfoPlist.strings will all be embedded automatically inside the BOINC.app application bundle as part of the build process.

Package BOINC manager for distribution

After creating the deployment build of the mgr_boinc target, use the Finder to select BOINC.app at [boincpath]/boinc/mac_build/build/BOINC (the file extension .app is usually hidden by the Finder, but is visible using the Get Info function from the Finder's File menu).  

After selecting BOINC.app, select Create archive of "BOINC" from the Finder's File menu.  This will zip the file.

Rename the zip file as appropriate to show the version number; for example, BOINC_Mac_4_67.zip 

Building Screen Saver

Unstuff boinc/clientgui/mac/BOINCSaver.nib.sit

BOINC SETI client application

ONE_TIME SETUP for BOINC SETI client application

1) Run Configure to create the correct config.h file:

env PROJECTDIR=[boincpath]/seti_boinc BOINCDIR=[boincpath] /boinc LDFlags="-L[boincpath]/seti_boinc/jpeglib -ljpeg" ./configure --disable-server --with-apple-opengl-framework --disable-dynamic-graphics

(2) Copy the correct jpebglib.a into [path]/seti_boinc/jpeg/   ?????

(3)Create a  symbolic link [path]/seti_boinc/boinc pointing to the boinc directory

cd [boincpath]/seti_boinc 

ln -s [boincpath]/boinc ./boinc

Building the BOINC SETI client application

The XCODE project for building the BOINC SETI@home client application is 
[boincpath]/seti_boinc/mac_build/seti_boinc.xcode.