client: Update Mac XCode project, build scripts and documentation for c-ares 1.5.3 and cURL-7.19.0

svn path=/trunk/boinc/; revision=16099
This commit is contained in:
Charlie Fenton 2008-10-01 06:30:34 +00:00
parent ce7951942e
commit 300bbe2484
6 changed files with 100 additions and 45 deletions

View File

@ -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

View File

@ -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

View File

@ -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",

View File

@ -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

View File

@ -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

View File

@ -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