forked from BOINC/boinc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuildcurl.sh
150 lines (122 loc) · 3.89 KB
/
buildcurl.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#!/bin/sh
# This file is part of BOINC.
# http://boinc.berkeley.edu
# Copyright (C) 2014 University of California
#
# BOINC is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation,
# either version 3 of the License, or (at your option) any later version.
#
# BOINC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with BOINC. If not, see <http://www.gnu.org/licenses/>.
#
#
# Script to build Macintosh 32-bit Intel library of curl-7.47.1 for
# use in building BOINC.
#
# by Charlie Fenton 7/21/06
# Updated 12/3/09 for OS 10.7 Lion and XCode 4.2
# Updated 6/25/12 for curl 7.26.0
# Updated 7/10/12 for Xcode 4.3 and later which are not at a fixed address
# Updated 2/11/14 for curl 7.35.0 with c-ares 1.10.0
# Updated 9/2/14 for bulding curl as 64-bit binary
# Updated 11/17/14 for curl 7.39.0 with c-ares 1.10.0
# Updated 12/11/15 for curl 7.46.0 with c-ares 1.10.0
# Updated 3/2/16 for curl 7.47.1 with c-ares 1.10.0
#
## This script requires OS 10.6 or later
#
## If you drag-install Xcode 4.3 or later, you must have opened Xcode
## and clicked the Install button on the dialog which appears to
## complete the Xcode installation before running this script.
#
## In Terminal, CD to the curl-7.47.1 directory.
## cd [path]/curl-7.47.1/
## then run this script:
## source [path]/buildcurl.sh [ -clean ]
##
## the -clean argument will force a full rebuild.
##
if [ "$1" != "-clean" ]; then
if [ -f lib/.libs/libcurl.a ]; then
echo "curl-7.47.1 already built"
return 0
fi
fi
export PATH=/usr/local/bin:$PATH
GCCPATH=`xcrun -find gcc`
if [ $? -ne 0 ]; then
echo "ERROR: can't find gcc compiler"
return 1
fi
GPPPATH=`xcrun -find g++`
if [ $? -ne 0 ]; then
echo "ERROR: can't find g++ compiler"
return 1
fi
MAKEPATH=`xcrun -find make`
if [ $? -ne 0 ]; then
echo "ERROR: can't find make tool"
return 1
fi
TOOLSPATH1=${MAKEPATH%/make}
ARPATH=`xcrun -find ar`
if [ $? -ne 0 ]; then
echo "ERROR: can't find ar tool"
return 1
fi
TOOLSPATH2=${ARPATH%/ar}
export PATH="${TOOLSPATH1}":"${TOOLSPATH2}":/usr/local/bin:$PATH
SDKPATH=`xcodebuild -version -sdk macosx Path`
CURL_DIR=`pwd`
# curl configure and make expect a path to _installed_ c-ares-1.10.0
# so temporarily install c-ares at a path that does not contain spaces.
cd ../c-ares-1.10.0
make install
cd "${CURL_DIR}"
rm -f lib/.libs/libcurl.a
if [ $? -ne 0 ]; then return 1; fi
export PATH=/usr/local/bin:$PATH
export CC="${GCCPATH}";export CXX="${GPPPATH}"
export LDFLAGS="-Wl,-syslibroot,${SDKPATH},-arch,x86_64"
export CPPFLAGS="-isysroot ${SDKPATH} -arch x86_64"
export CFLAGS="-isysroot ${SDKPATH} -arch x86_64"
export SDKROOT="${SDKPATH}"
export MACOSX_DEPLOYMENT_TARGET=10.5
export MAC_OS_X_VERSION_MAX_ALLOWED=1050
export MAC_OS_X_VERSION_MIN_REQUIRED=1050
./configure --enable-shared=NO --enable-ares=/tmp/installed-c-ares --host=x86_64
if [ $? -ne 0 ]; then return 1; fi
echo ""
## Work around a conflict with OpenSSL-1.0.2g
# Patch lib/curl_config.h
rm -f lib/curl_config.h.orig ]
cat >> /tmp/scurl_config_h_diff << ENDOFFILE
--- lib/curl_config.h
+++ lib/curl_config_patched.h
@@ -602,2 +602,2 @@
-#define HAVE_SSLV2_CLIENT_METHOD 1
+/* #undef HAVE_SSLV2_CLIENT_METHOD 1 */
ENDOFFILE
patch -bfi /tmp/scurl_config_h_diff lib/curl_config.h
rm -f /tmp/scurl_config_h_diff
echo ""
if [ "$1" = "-clean" ]; then
make clean
fi
make
if [ $? -ne 0 ]; then return 1; fi
export CC="";export CXX=""
export LDFLAGS=""
export CPPFLAGS=""
export CFLAGS=""
export SDKROOT=""
# Delete temporarily installed c-ares.
rm -Rf /tmp/installed-c-ares/
return 0