From 91cf6bec8d387abddb0ff7dbaf4e2febc11dc402 Mon Sep 17 00:00:00 2001 From: Charlie Fenton Date: Wed, 8 Feb 2006 10:28:32 +0000 Subject: [PATCH] *** empty log message *** svn path=/trunk/boinc/; revision=9420 --- checkin_notes | 10 ++++++ mac_build/BuildMacBOINC.sh | 73 +++++++++++++++++++++++++++++--------- 2 files changed, 66 insertions(+), 17 deletions(-) diff --git a/checkin_notes b/checkin_notes index 9b5bef20a6..d42b213f5b 100755 --- a/checkin_notes +++ b/checkin_notes @@ -1628,3 +1628,13 @@ David 7 Feb 2006 clientgui/ View*.cpp + +Charlie 8 Feb 2006 + -Mac: Enhance BOINC command-line build script with new options + to build only the 3 BOINC libraries (libboinc, gfxlibboinc and + api_libboinc), only 2 targets (boinc client and boinc_cmd), or + a combination of these two (5 targets). The default is still + Build_all, which also builds the BOINC Manager. + + mac_build/ + BuildMacBOINC.sh diff --git a/mac_build/BuildMacBOINC.sh b/mac_build/BuildMacBOINC.sh index 77f7d7b7da..33b828dd04 100644 --- a/mac_build/BuildMacBOINC.sh +++ b/mac_build/BuildMacBOINC.sh @@ -2,7 +2,7 @@ ## # Script for building Macintosh BOINC Manager, Core Client and libraries -# by Charlie Fenton 10/12/05 +# by Charlie Fenton 2/8/06 # with thanks to Reinhard Prix for his assistance ## @@ -11,32 +11,69 @@ ## cd [path]/boinc/mac_build ## ## then invoke this script as follows: -## source BuildMacBOINC.sh [-dev] [-noclean] +## source BuildMacBOINC.sh [-dev] [-noclean] [-all] [-lib] [-client] [-help] ## or ## chmod +x BuildMacBOINC.sh -## ./BuildMacBOINC.sh [-dev] [-noclean] +## ./BuildMacBOINC.sh [-dev] [-noclean] [-all] [-lib] [-client] ## ## optional arguments -## -dev build the development (debug) version. -## default is deployment (release) version. +## -dev build the development (debug) version (native architecture only). +## default is deployment (release) version (universal binaries: ppc and i386). ## -## -noclean don't do a "clean all" before building. +## -noclean don't do a "clean" of each target before building. ## default is to clean all first. ## +## The following arguments determine which targets to build +## +## -all build all targets (i.e. target "Build_All" -- this is the default) +## +## -lib build the three libraries: libboinc_api.a, libboinc_graphics_api.a, libboinc.a +## +## -client build two targets: boinc client and command-line utility boinc_cmd +## (also builds libboinc.a if needed, since boinc_cmd requires it.) +## +## Both -lib and -client may be specified to build five targets (no BOINC Manager) +## -if [ "$1" = "-dev" ] || [ "$2" = "-dev" ]; then +targets="" +style="Deployment" +doclean="clean" +buildall=0 +buildlibs=0 +buildclient=0 + +while [ $# -gt 0 ]; do + case "$1" in + -noclean ) doclean="" ; shift 1 ;; + -dev ) style="Development" ; shift 1 ;; + -all ) buildall=1 ; shift 1 ;; + -lib ) buildlibs=1 ; shift 1 ;; + -client ) buildclient=1 ; shift 1 ;; + * ) echo "usage:" ; echo "cd {path}/mac_build/" ; echo "source BuildMacBOINC.sh [-dev] [-noclean] [-all] [-lib] [-client] [-help]" ; return 1 ;; + esac +done + +if [ "${style}" = "Development" ]; then echo "Development (debug) build" - style="Development" else echo "Deployment (release) build" - style="Deployment" fi -if [ "$1" = "-noclean" ] || [ "$2" = "-noclean" ]; then - doclean="" -else - echo "Clean all" - doclean="clean " +if [ "${doclean}" = "clean" ]; then + echo "Clean each target before building" +fi + +if [ "${buildlibs}" = "1" ]; then +targets="$targets -target libboinc -target gfxlibboinc -target api_libboinc" +fi + +if [ "${buildclient}" = "1" ]; then +targets="$targets -target BOINC_Client -target cmd_boinc" +fi + +## "-all" overrides "-lib" and "-client" since it includes those targets +if [ "${buildall}" = "1" ] || [ "${targets}" = "" ]; then + targets="-target Build_All" fi version=`uname -r`; @@ -56,12 +93,14 @@ echo "Building BOINC under System 10.4" if [ ! -d /Developer/SDKs/MacOSX10.3.9.sdk/ ]; then echo "ERROR: System 10.3.9 SDK is missing. For details, see build instructions at " echo "boinc/mac_build/HowToBuildBOINC_XCode.rtf or http://boinc.berkeley.edu/mac_build.html" -exit 1 + return 1 fi else echo "ERROR: Building BOINC requires System 10.4 or later. For details, see build instructions at " echo "boinc/mac_build/HowToBuildBOINC_XCode.rtf or http://boinc.berkeley.edu/mac_build.html" -exit 1 + return 1 fi -xcodebuild -project boinc.xcodeproj -target Build_All -configuration $style $doclean build +xcodebuild -project boinc.xcodeproj ${targets} -configuration ${style} ${doclean} build + +return $?