forked from BOINC/boinc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuildsqlite3.sh
157 lines (137 loc) · 4.29 KB
/
buildsqlite3.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
151
152
153
154
155
156
157
#!/bin/bash
# This file is part of BOINC.
# http://boinc.berkeley.edu
# Copyright (C) 2017 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 64-bit Intel library of sqlite 3 for
# use in building BOINC Manager.
#
# by Charlie Fenton 12/11/12
# Updated 2/11/14 for sqlite 3.8.3
# Updated 1/5/16 for sqlite 3.9.2
# Updated 3/2/16 for sqlite 3.11.0
# Updated 10/22/17 to build 64-bit library (temporarily build both 32-bit and 64-bit libraries)
# Updated 1/25/18 to build only 64-bit library
#
## 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.
#
## Where xxxxxxx is the version string in the directory name:
## In Terminal, CD to the sqlite-autoconf-xxxxxxx directory.
## cd [path]/sqlite-autoconf-xxxxxxx/
## then run this script:
## source [path]/buildsqlite3.sh [ -clean ] [--prefix PATH]
##
## the -clean argument will force a full rebuild.
## if --prefix is given as absolute path the library is installed into there
## use -q or --quiet to redirect build output to /dev/null instead of /dev/stdout
##
doclean=""
stdout_target="/dev/stdout"
lprefix=""
libPath=".libs"
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
-clean|--clean)
doclean="yes"
;;
-prefix|--prefix)
lprefix="$2"
libPath="${lprefix}/lib"
shift
;;
-q|--quiet)
stdout_target="/dev/null"
;;
esac
shift # past argument or value
done
if [ "${doclean}" != "yes" ]; then
if [ -f "${libPath}/libsqlite3.a" ]; then
lipo "${libPath}/libsqlite3.a" -verify_arch x86_64
if [ $? -eq 0 ]; then
cwd=$(pwd)
dirname=${cwd##*/}
echo "${dirname} already built"
return 0
else
# already built but not for correct architectures
doclean="yes"
fi
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`
if [ -d "${libPath}" ]; then
rm -f "${libPath}/libsqlite3.a"
fi
# Build for x86_64 architecture
make clean 1>$stdout_target
export PATH=/usr/local/bin:$PATH
export CC="${GCCPATH}";export CXX="${GPPPATH}"
export LDFLAGS="-Wl,-syslibroot,${SDKPATH},-arch,x86_64"
export CPPFLAGS="-Os -isysroot ${SDKPATH} -arch x86_64 -DMAC_OS_X_VERSION_MAX_ALLOWED=1060 -DMAC_OS_X_VERSION_MIN_REQUIRED=1060"
export CFLAGS="-Os -isysroot ${SDKPATH} -arch x86_64 -DMAC_OS_X_VERSION_MAX_ALLOWED=1060 -DMAC_OS_X_VERSION_MIN_REQUIRED=1060"
export SDKROOT="${SDKPATH}"
export MACOSX_DEPLOYMENT_TARGET=10.6
if [ "x${lprefix}" != "x" ]; then
./configure --prefix=${lprefix} --enable-shared=NO --host=x86_64
if [ $? -ne 0 ]; then return 1; fi
else
./configure --enable-shared=NO --host=x86_64
if [ $? -ne 0 ]; then return 1; fi
fi
make 1>$stdout_target
if [ $? -ne 0 ]; then return 1; fi
if [ "x${lprefix}" != "x" ]; then
make install 1>$stdout_target
if [ $? -ne 0 ]; then return 1; fi
fi
lprefix=""
export CC="";export CXX=""
export LDFLAGS=""
export CPPFLAGS=""
export CFLAGS=""
export SDKROOT=""
return 0