diff --git a/checkin_notes b/checkin_notes index 740c02ad92..041a781a31 100644 --- a/checkin_notes +++ b/checkin_notes @@ -7898,3 +7898,15 @@ David 30 Sept 2008 lib/ parse.cpp prefs.cpp + +Charlie 30 Sep 2008 + - client: Update Mac XCode project, build scripts and documentation + for c-ares 1.5.3 and cURL-7.19.0. + + mac_build/ + buildc-ares.sh + buildcurl.sh + HowToBuildBOINC_XCode.rtf + setupForBOINC.sh + boinc.xcodeproj/ + project.pbxproj diff --git a/mac_build/HowToBuildBOINC_XCode.rtf b/mac_build/HowToBuildBOINC_XCode.rtf index 65b29f0b5e..5461ae1893 100644 --- a/mac_build/HowToBuildBOINC_XCode.rtf +++ b/mac_build/HowToBuildBOINC_XCode.rtf @@ -1,4 +1,4 @@ -{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf270 +{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf350 {\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fmodern\fcharset0 Courier;\f2\fnil\fcharset0 LucidaGrande; \f3\fswiss\fcharset0 ArialMT;\f4\fmodern\fcharset0 Courier-Oblique;} {\colortbl;\red255\green255\blue255;\red174\green0\blue0;\red0\green0\blue239;} @@ -14,10 +14,10 @@ \b0\fs24 \cf0 \ \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\qc \cf0 Written by Charlie Fenton\ -Last updated 5/8/08\ +Last updated 9/30/08\ \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural \cf0 \ -This document applies to BOINC version 6.1.0 and later. It has instructions for building the BOINC Client and Manager for Macintosh OSX. Information for building science project applications to run under BOINC on Macintosh OSX can be found {\field{\*\fldinst{HYPERLINK "http://boinc.berkeley.edu/trac/wiki/BuildMacApp"}}{\fldrslt here}}. \ +This document applies to BOINC version 6.3.12 and later. It has instructions for building the BOINC Client and Manager for Macintosh OSX. Information for building science project applications to run under BOINC on Macintosh OSX can be found {\field{\*\fldinst{HYPERLINK "http://boinc.berkeley.edu/trac/wiki/BuildMacApp"}}{\fldrslt here}}. \ \ Note: 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:\ \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural @@ -124,7 +124,7 @@ You also need to install Subversion itself. One place to get it is:\ \b0\fs24 \cf0 \ \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural -\cf0 BOINC depends on four third-party libraries: wxMac-2.8.7, c-ares-1.5.1, curl-7.18.0, and jpeg-6b. You can obtain these from the following URLs:\ +\cf0 BOINC depends on four third-party libraries: wxMac-2.8.7, c-ares-1.5.3, curl-7.19.0, and jpeg-6b. You can obtain these from the following URLs:\ \ wxMac-2.8.7 (needed only if you are building the BOINC Manager):\ {\field{\*\fldinst{HYPERLINK "http://www.wxwidgets.org"}}{\fldrslt @@ -136,19 +136,19 @@ wxMac-2.8.7 (needed only if you are building the BOINC Manager):\ \f1\fs26 \ \f0\fs24 \ -curl-7.18.0:\ +curl-7.19.0:\ \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural \f1\fs26 \cf0 {\field{\*\fldinst{HYPERLINK "http://curl.haxx.se"}}{\fldrslt http://curl.haxx.se}}\ - {\field{\*\fldinst{HYPERLINK "http://curl.haxx.se/download/curl-7.18.0.tar.gz"}}{\fldrslt http://curl.haxx.se/download/curl-7.18.0.tar.gz}}\ + {\field{\*\fldinst{HYPERLINK "http://curl.haxx.se/download/curl-7.19.0.tar.gz"}}{\fldrslt http://curl.haxx.se/download/curl-7.19.0.tar.gz}}\ \ \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural -\f0\fs24 \cf0 c-ares-1.5.1 (used by curl):\ +\f0\fs24 \cf0 c-ares-1.5.3 (used by curl):\ \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural \f1\fs26 \cf0 {\field{\*\fldinst{HYPERLINK "http://daniel.haxx.se/projects/c-ares/"}}{\fldrslt http://daniel.haxx.se/projects/c-ares/}}\ - {\field{\*\fldinst{HYPERLINK "http://daniel.haxx.se/projects/c-ares/c-ares-1.5.1.tar.gz"}}{\fldrslt http://daniel.haxx.se/projects/c-ares/c-ares-1.5.1.tar.gz}}\ + {\field{\*\fldinst{HYPERLINK "http://daniel.haxx.se/projects/c-ares/c-ares-1.5.3.tar.gz"}}{\fldrslt http://daniel.haxx.se/projects/c-ares/c-ares-1.5.3.tar.gz}}\ \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural \f0\fs24 \cf0 \ @@ -171,7 +171,7 @@ jpeg-6b (needed only if you are building the BOINC libboinc_graphics_api.a libr \f0\fs24 or \f4\fs26 automake --version \f0\fs24 . Building curl- -\i0 7.18.0 +\i0 7.19.0 \i requires autoconf 2.59 and automake 1.9.3 or later. \ \ Upgrades for autoconf and automake are available from www.gnu.org: \ @@ -196,7 +196,7 @@ XCode installed these utilities in the \i0 \cf0 \ \pard\pardeftab720\sa260\ql\qnatural \cf0 All BOINC software for Power PC Macs must be built using MacOS10.3.9 SDK to assure backward compatibility with OS 10.3.9.\uc0\u8232 All 32-bit BOINC software for Intel Macs must be built using GCC 4.0 and MacOS10.4.u SDK to allow cross-compiling.\u8232 All 64-bit BOINC software for Intel Macs must be built using GCC 4.0 and MacOS10.5 SDK.\ -These are not done by either the XCode projects which come with wxMac-2.8.7, nor the AutoMake scripts supplied with wxMac-2.8.7, c-ares-1.5.1, curl-7.18.0, or jpeg-6b. So be sure to use our special scripts to build these packages.\ +These are not done by either the XCode projects which come with wxMac-2.8.7, nor the AutoMake scripts supplied with wxMac-2.8.7, c-ares-1.5.3, curl-7.19.0, or jpeg-6b. So be sure to use our special scripts to build these packages.\ \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural \cf0 Building BOINC and the library packages on which it depends requires OS 10.5 and XCode 3.0 (or greater). \ \ @@ -206,8 +206,8 @@ These are not done by either the XCode projects which come with wxMac-2.8.7, nor [2] Put the following 3 directories inside the BOINC_dev folder (omit any you don't need):\ \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural -\f1\fs26 \cf0 c-ares-1.5.1\ - curl-7.18.0\ +\f1\fs26 \cf0 c-ares-1.5.3\ + curl-7.19.0\ jpeg-6b\ wxMac-2.8.7\ \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural diff --git a/mac_build/boinc.xcodeproj/project.pbxproj b/mac_build/boinc.xcodeproj/project.pbxproj index 1d00b80563..5328916bbe 100755 --- a/mac_build/boinc.xcodeproj/project.pbxproj +++ b/mac_build/boinc.xcodeproj/project.pbxproj @@ -3136,11 +3136,11 @@ DEPLOYMENT_POSTPROCESSING = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_SYMBOLS_PRIVATE_EXTERN = YES; - HEADER_SEARCH_PATHS = "../../curl-7.17.1/include"; + HEADER_SEARCH_PATHS = "../../curl-7.19.0/include"; OTHER_LDFLAGS = ( "-framework", Security, - "../../curl-7.18.0/lib/.libs/libcurl.a", + "../../curl-7.19.0/lib/.libs/libcurl.a", "../../c-ares-1.5.1/.libs/libcares.a", "-lcrypto", "-lssl", @@ -3165,9 +3165,9 @@ DEPLOYMENT_POSTPROCESSING = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_SYMBOLS_PRIVATE_EXTERN = YES; - HEADER_SEARCH_PATHS = "../../curl-7.17.1/include"; + HEADER_SEARCH_PATHS = "../../curl-7.19.0/include"; OTHER_LDFLAGS = ( - "../../curl-7.18.0/lib/.libs/libcurl.a", + "../../curl-7.19.0/lib/.libs/libcurl.a", "../../c-ares-1.5.1/.libs/libcares.a", "-lcrypto", "-lssl", @@ -3724,9 +3724,9 @@ DEPLOYMENT_POSTPROCESSING = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_SYMBOLS_PRIVATE_EXTERN = YES; - HEADER_SEARCH_PATHS = "../../curl-7.17.1/include"; + HEADER_SEARCH_PATHS = "../../curl-7.19.0/include"; OTHER_LDFLAGS = ( - "../../curl-7.18.0/lib/.libs/libcurl.a", + "../../curl-7.19.0/lib/.libs/libcurl.a", "../../c-ares-1.5.1/.libs/libcares.a", "-lcrypto", "-lssl", @@ -4041,9 +4041,9 @@ DEPLOYMENT_POSTPROCESSING = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_SYMBOLS_PRIVATE_EXTERN = YES; - HEADER_SEARCH_PATHS = "../../curl-7.18.0/include"; + HEADER_SEARCH_PATHS = "../../curl-7.19.0/include"; OTHER_LDFLAGS = ( - "../../curl-7.18.0/lib/.libs/libcurl.a", + "../../curl-7.19.0/lib/.libs/libcurl.a", "../../c-ares-1.5.1/.libs/libcares.a", "-lcrypto", "-lssl", @@ -4319,11 +4319,11 @@ DEPLOYMENT_POSTPROCESSING = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_SYMBOLS_PRIVATE_EXTERN = YES; - HEADER_SEARCH_PATHS = "../../curl-7.17.1/include"; + HEADER_SEARCH_PATHS = "../../curl-7.19.0/include"; OTHER_LDFLAGS = ( "-framework", Security, - "../../curl-7.18.0/lib/.libs/libcurl.a", + "../../curl-7.19.0/lib/.libs/libcurl.a", "../../c-ares-1.5.1/.libs/libcares.a", "-lcrypto", "-lssl", @@ -4345,9 +4345,9 @@ DEPLOYMENT_POSTPROCESSING = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_SYMBOLS_PRIVATE_EXTERN = YES; - HEADER_SEARCH_PATHS = "../../curl-7.17.1/include"; + HEADER_SEARCH_PATHS = "../../curl-7.19.0/include"; OTHER_LDFLAGS = ( - "../../curl-7.18.0/lib/.libs/libcurl.a", + "../../curl-7.19.0/lib/.libs/libcurl.a", "../../c-ares-1.5.1/.libs/libcares.a", "-lcrypto", "-lssl", @@ -4661,9 +4661,9 @@ DEPLOYMENT_POSTPROCESSING = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_SYMBOLS_PRIVATE_EXTERN = YES; - HEADER_SEARCH_PATHS = "../../curl-7.17.1/include"; + HEADER_SEARCH_PATHS = "../../curl-7.19.0/include"; OTHER_LDFLAGS = ( - "../../curl-7.18.0/lib/.libs/libcurl.a", + "../../curl-7.19.0/lib/.libs/libcurl.a", "../../c-ares-1.5.1/.libs/libcares.a", "-lcrypto", "-lssl", diff --git a/mac_build/buildc-ares.sh b/mac_build/buildc-ares.sh index b6ed20eee3..a20ca9a9c2 100644 --- a/mac_build/buildc-ares.sh +++ b/mac_build/buildc-ares.sh @@ -20,14 +20,14 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # -# Script to build Macintosh Universal Binary library of c-ares-1.5.1 for +# Script to build Macintosh Universal Binary library of c-ares-1.5.3 for # use in building BOINC. # # by Charlie Fenton 7/21/06 -# Updated 5/14/08 +# Updated 9/30/08 # -## In Terminal, CD to the c-ares-1.5.1 directory. -## cd [path]/c-ares-1.5.1/ +## In Terminal, CD to the c-ares-1.5.3 directory. +## cd [path]/c-ares-1.5.3/ ## then run this script: ## source [path]/buildc-ares.sh [ -clean ] [ -gcc33 ] ## @@ -58,7 +58,7 @@ fi fi if [ $AlreadyBuilt -ne 0 ]; then - echo "c-ares-1.5.1 already built" + echo "c-ares-1.5.3 already built" return 0 fi @@ -96,7 +96,7 @@ export LDFLAGS="-arch ppc -D_NONSTD_SOURCE -isystem /Developer/SDKs/MacOSX10.3.9 export CPPFLAGS="-arch ppc -D_NONSTD_SOURCE -isystem /Developer/SDKs/MacOSX10.3.9.sdk" export CFLAGS="-arch ppc -D_NONSTD_SOURCE -isystem /Developer/SDKs/MacOSX10.3.9.sdk" -# curl configure and make expect a path to _installed_ c-ares-1.5.1 +# curl configure and make expect a path to _installed_ c-ares-1.5.3 # so set a temporary install path that does not contain spaces. ./configure --enable-shared=NO prefix=/tmp/installed-c-ares --host=ppc if [ $? -ne 0 ]; then return 1; fi diff --git a/mac_build/buildcurl.sh b/mac_build/buildcurl.sh index 284d547c28..7fbc1f8d9d 100644 --- a/mac_build/buildcurl.sh +++ b/mac_build/buildcurl.sh @@ -20,14 +20,14 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # -# Script to build Macintosh Universal Binary library of curl-7.18.0 for +# Script to build Macintosh Universal Binary library of curl-7.19.0 for # use in building BOINC. # # by Charlie Fenton 7/21/06 -# Updated 5/14/08 +# Updated 9/30/08 # -## In Terminal, CD to the curl-7.18.0 directory. -## cd [path]/curl-7.18.0/ +## In Terminal, CD to the curl-7.19.0 directory. +## cd [path]/curl-7.19.0/ ## then run this script: ## source [path]/buildcurl.sh [ -clean ] [ -gcc33 ] ## @@ -58,7 +58,7 @@ fi fi if [ $AlreadyBuilt -ne 0 ]; then - echo "curl-7.18.0 already built" + echo "curl-7.19.0 already built" return 0 fi @@ -83,9 +83,9 @@ fi export PATH=/usr/local/bin:$PATH CURL_DIR=`pwd` -# curl configure and make expect a path to _installed_ c-ares-1.5.1 +# curl configure and make expect a path to _installed_ c-ares-1.5.3 # so temporarily install c-ares at a path that does not contain spaces. -cd ../c-ares-1.5.1 +cd ../c-ares-1.5.3 sudo make install cd "${CURL_DIR}" @@ -97,6 +97,12 @@ rm -f lib/.libs/libcurl_ppc.a rm -f lib/.libs/libcurl_i386.a rm -f lib/.libs/libcurl_x86_64.a +# cURL configure creates a different curlbuild.h file for each architecture +rm -f include/curl/curlbuild.h include/curl/curlbuild.h +rm -f include/curl/curlbuild.h include/curl/curlbuild_ppc.h +rm -f include/curl/curlbuild.h include/curl/curlbuild_i386.h +rm -f include/curl/curlbuild.h include/curl/curlbuild_x86_64.h + if [ $usegcc33 -ne 0 ]; then export CC=/usr/bin/gcc-3.3;export CXX=/usr/bin/g++-3.3 @@ -121,6 +127,7 @@ make clean make if [ $? -ne 0 ]; then return 1; fi +mv -f include/curl/curlbuild.h include/curl/curlbuild_ppc.h mv -f lib/.libs/libcurl.a lib/libcurl_ppc.a make clean @@ -157,6 +164,7 @@ fi # Build for x86_64 architecture if OS 10.5 SDK is present +mv -f include/curl/curlbuild.h include/curl/curlbuild_i386.h mv -f lib/.libs/libcurl.a lib/libcurl_i386.a make clean @@ -182,6 +190,8 @@ export CPPFLAGS="" export CFLAGS="" export SDKROOT="" +mv -f include/curl/curlbuild.h include/curl/curlbuild_x86_64.h + mv -f lib/.libs/libcurl.a lib/.libs/libcurl_x86_64.a mv -f lib/libcurl_ppc.a lib/.libs/ mv -f lib/libcurl_i386.a lib/.libs/ @@ -191,4 +201,37 @@ if [ $? -ne 0 ]; then return 1; fi # Delete temporarily installed c-ares. sudo rm -Rf /tmp/installed-c-ares/ +rm -f include/curl/curlbuild.h include/curl/curlbuild.h + +# Create a custom curlbuild.h file which directs BOINC builds +# to the correct curlbuild_xxx.h file for each architecture. +cat >> include/curl/curlbuild.h include/curl/curlbuild.h << ENDOFFILE +/*************************************************************************** +* +* This file was created for BOINC by the buildcurl.sh script +* +* You should not need to modify it manually +* + ***************************************************************************/ + +#ifndef __BOINC_CURLBUILD_H +#define __BOINC_CURLBUILD_H + +#ifndef __APPLE__ +#error - this file is for Macintosh only +#endif + +#ifdef __x86_64__ +#include "curl/curlbuild_x86_64.h" +#elif defined(__ppc__) +#include "curl/curlbuild_ppc.h" +#elif defined(__i386__) +#include "curl/curlbuild_i386.h" +#else +#error - unknown architecture +#endif + +#endif /* __BOINC_CURLBUILD_H */ +ENDOFFILE + return 0 diff --git a/mac_build/setupForBOINC.sh b/mac_build/setupForBOINC.sh index e160daf817..c430e627d8 100644 --- a/mac_build/setupForBOINC.sh +++ b/mac_build/setupForBOINC.sh @@ -21,11 +21,11 @@ # # # Master script to build Universal Binary libraries needed by BOINC: -# curl-7.18.0 with c-ares-1.5.1, jpeg-6b and wxMac-2.8.7 +# curl-7.19.0 with c-ares-1.5.3, jpeg-6b and wxMac-2.8.7 # # by Charlie Fenton 7/21/06 # Bug fix for wxMac-2.6.3 7/26/07 -# Updated for curl-7.18.0, c-ares-1.5.1 and wxMac-2.8.7 2/27/08 +# Updated 9/30/08 for curl-7.19.0, c-ares-1.5.3 and wxMac-2.8.7 # # Download these three packages and place them in a common parent # directory with the BOINC source tree. @@ -51,24 +51,24 @@ SCRIPT_DIR=`pwd` echo "" echo "----------------------------------" -echo "------- BUILD C-ARES-1.5.1 -------" +echo "------- BUILD C-ARES-1.5.3 -------" echo "----------------------------------" echo "" -cd ../../c-ares-1.5.1/ +cd ../../c-ares-1.5.3/ if [ $? -ne 0 ]; then return 1; fi source "${SCRIPT_DIR}/buildc-ares.sh" ${doclean} if [ $? -ne 0 ]; then return 1; fi echo "" echo "----------------------------------" -echo "------- BUILD CURL-7.18.0 --------" +echo "------- BUILD CURL-7.19.0 --------" echo "----------------------------------" echo "" cd "${SCRIPT_DIR}" -cd ../../curl-7.18.0/ +cd ../../curl-7.19.0/ if [ $? -ne 0 ]; then return 1; fi source "${SCRIPT_DIR}/buildcurl.sh" ${doclean} if [ $? -ne 0 ]; then return 1; fi