Added PPC compilation optimisation flags to improve performance at the cost of increa...
[OSXPackageBuilder.git] / common.sh
1 #!/bin/sh
2
3 # File        :  common.sh
4 #
5 # Purpose     :  Establish settings common to the build and privoxy-create
6 #                scripts.
7 #
8 # Copyright   :  Written by and Copyright (C) 2001-2012 the
9 #                Privoxy team. http://www.privoxy.org/
10 #
11 #                This program is free software; you can redistribute it
12 #                and/or modify it under the terms of the GNU General
13 #                Public License as published by the Free Software
14 #                Foundation; either version 2 of the License, or (at
15 #                your option) any later version.
16 #
17 #                This program is distributed in the hope that it will
18 #                be useful, but WITHOUT ANY WARRANTY; without even the
19 #                implied warranty of MERCHANTABILITY or FITNESS FOR A
20 #                PARTICULAR PURPOSE.  See the GNU General Public
21 #                License for more details.
22 #
23 #                The GNU General Public License should be included with
24 #                this file.  If not, you can view it at
25 #                http://www.gnu.org/copyleft/gpl.html
26 #                or write to the Free Software Foundation, Inc.,
27 #                51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
28 #                USA
29 #
30 # Modification : If you modify this file please consider whether your 
31 #                changes ought to be passed back to the OSXPackageBuilder
32 #                module.
33 #
34
35 #========================================
36 #  target specific settings
37 #========================================
38
39 #
40 # mac os x release name
41 #
42 release_name=$1
43
44 #
45 # check the release name and assign the build variables accordingly
46 #
47 # NOTE: SYSROOT ought to be programmatically determined using XCODE_PATH, however since upgrading my build environment to El Capitan xcode-select returns a non-useful path, hence I am forced to set the SYSROOT explicitly for my build environment, which is now a hybrid of XCode 3.2.6 'running' on OS X 10.11. I am not going to risk upgrading XCode for fear of losing the ability to target down-level OS X versions.
48 #
49 case "${release_name}" in
50   # Mac OS X 10.7 (x86_64 only)
51   "lion")
52     XCODE_PATH="`/usr/bin/xcode-select -print-path`"
53 #    SYSROOT="-isysroot ${XCODE_PATH}/SDKs/MacOSX10.7.sdk"
54     SYSROOT="-isysroot /Developer/SDKs/MacOSX10.7.sdk"
55     MACOSX_VERSION="-mmacosx-version-min=10.7"
56     ARCH="-arch x86_64"
57     STARTUP="LaunchDaemon"
58     ;;
59   # Mac OS X 10.6 x86_64
60   "snowleopardx64")
61     XCODE_PATH="`/usr/bin/xcode-select -print-path`"
62 #    SYSROOT="-isysroot ${XCODE_PATH}/SDKs/MacOSX10.6.sdk"
63     SYSROOT="-isysroot /Developer/SDKs/MacOSX10.6.sdk"
64     MACOSX_VERSION="-mmacosx-version-min=10.6"
65     ARCH="-arch x86_64"
66     STARTUP="LaunchDaemon"
67     ;;
68   # Mac OS X 10.6 all supported architectures
69   "snowleopard")
70     XCODE_PATH="`/usr/bin/xcode-select -print-path`"
71 #    SYSROOT="-isysroot ${XCODE_PATH}/SDKs/MacOSX10.6.sdk"
72     SYSROOT="-isysroot /Developer/SDKs/MacOSX10.6.sdk"
73     MACOSX_VERSION="-mmacosx-version-min=10.6"
74     ARCH="-arch x86_64 -arch i386"
75     STARTUP="LaunchDaemon"
76     CFLAGS="-mtune=G5 ${CFLAGS}"
77     ;;
78   # Mac OS X 10.6 i386
79   "snowleopardi386")
80     XCODE_PATH="`/usr/bin/xcode-select -print-path`"
81 #    SYSROOT="-isysroot ${XCODE_PATH}/SDKs/MacOSX10.6.sdk"
82     SYSROOT="-isysroot /Developer/SDKs/MacOSX10.6.sdk"
83     MACOSX_VERSION="-mmacosx-version-min=10.6"
84     ARCH="-arch i386"
85     STARTUP="LaunchDaemon"
86     ;;
87   # Mac OS X 10.5 and all later releases
88   "leopardupwards")
89     XCODE_PATH="`/usr/bin/xcode-select -print-path`"
90 #    SYSROOT="-isysroot ${XCODE_PATH}/SDKs/MacOSX10.5.sdk"
91     SYSROOT="-isysroot /Developer/SDKs/MacOSX10.5.sdk"
92     MACOSX_VERSION="-mmacosx-version-min=10.5"
93     ARCH="-arch x86_64 -arch i386 -arch ppc"
94     STARTUP="LaunchDaemon"
95     CFLAGS="-mtune=G5 ${CFLAGS}"
96     ;;
97   # Mac OS X 10.5 all supported architectures
98   "leopard")
99     XCODE_PATH="`/usr/bin/xcode-select -print-path`"
100 #    SYSROOT="-isysroot ${XCODE_PATH}/SDKs/MacOSX10.5.sdk"
101     SYSROOT="-isysroot /Developer/SDKs/MacOSX10.5.sdk"
102     MACOSX_VERSION="-mmacosx-version-min=10.5"
103     ARCH="-arch i386 -arch ppc"
104     STARTUP="LaunchDaemon"
105     CFLAGS="-mtune=G5 ${CFLAGS}"
106     ;;
107   # Mac OS X 10.5 i386
108   "leopardi386")
109     XCODE_PATH="`/usr/bin/xcode-select -print-path`"
110 #    SYSROOT="-isysroot ${XCODE_PATH}/SDKs/MacOSX10.5.sdk"
111     SYSROOT="-isysroot /Developer/SDKs/MacOSX10.5.sdk"
112     MACOSX_VERSION="-mmacosx-version-min=10.5"
113     ARCH="-arch i386"
114     STARTUP="LaunchDaemon"
115     ;;
116   # Mac OS X 10.5 PPC
117   "leopardppc")
118     XCODE_PATH="`/usr/bin/xcode-select -print-path`"
119 #    SYSROOT="-isysroot ${XCODE_PATH}/SDKs/MacOSX10.5.sdk"
120     SYSROOT="-isysroot /Developer/SDKs/MacOSX10.5.sdk"
121     MACOSX_VERSION="-mmacosx-version-min=10.5"
122     ARCH="-arch ppc"
123     STARTUP="LaunchDaemon"
124     CFLAGS="-mtune=G5 ${CFLAGS}"
125     ;;
126   # Mac OS X 10.4 all supported architectures
127   "tiger")
128     XCODE_PATH="/Developer"
129 #    SYSROOT="-isysroot ${XCODE_PATH}/SDKs/MacOSX10.4u.sdk"
130     SYSROOT="-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
131     MACOSX_VERSION="-mmacosx-version-min=10.4"
132     ARCH="-arch i386 -arch ppc"
133     STARTUP="LaunchDaemon"
134     CFLAGS="-mtune=G5 ${CFLAGS}"
135     ;;
136   # Mac OS X 10.4 i386
137   "tigeri386")
138     XCODE_PATH="/Developer"
139 #    SYSROOT="-isysroot ${XCODE_PATH}/SDKs/MacOSX10.4u.sdk"
140     SYSROOT="-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
141     MACOSX_VERSION="-mmacosx-version-min=10.4"
142     ARCH="-arch i386"
143     STARTUP="LaunchDaemon"
144     ;;
145   # Mac OS X 10.4 PPC
146   "tigerppc")
147     XCODE_PATH="/Developer"
148 #    SYSROOT="-isysroot ${XCODE_PATH}/SDKs/MacOSX10.4u.sdk"
149     SYSROOT="-isysroot ${XCODE_PATH}/SDKs/MacOSX10.4u.sdk"
150     MACOSX_VERSION="-mmacosx-version-min=10.4"
151     ARCH="-arch ppc"
152     STARTUP="LaunchDaemon"
153     CFLAGS="-mtune=G5 ${CFLAGS}"
154     ;;
155   # Mac OS X 10.3 PPC
156   "panther")
157     XCODE_PATH="/Developer"
158 #    SYSROOT="-isysroot ${XCODE_PATH}/SDKs/MacOSX10.3.9.sdk"
159     SYSROOT="-isysroot /Developer/SDKs/MacOSX10.3.9.sdk"
160     MACOSX_VERSION="-mmacosx-version-min=10.3"
161     ARCH="-arch ppc"
162     STARTUP="StartupItem"
163     CFLAGS="-mtune=G5 ${CFLAGS}"
164     ;;
165   # default
166   *)
167     XCODE_PATH=""
168     SYSROOT=""
169     MACOSX_VERSION=""
170     ARCH=""
171     STARTUP=""
172     ;;
173 esac
174
175
176 #========================================
177 #  host specific settings
178 #========================================
179
180 #
181 # darwin os major release number
182 #
183 darwin_major_rel_num="`/usr/bin/uname -r | /usr/bin/sed 's/\..*//'`"
184
185 #
186 # check the release number
187 #
188 case "${darwin_major_rel_num}" in
189   # Mac OS X 10.5 or higher
190   9|1*)
191     GNAME="`/usr/bin/dscl /Local/Default -list /groups | /usr/bin/grep -E '^(_)?privoxy?'`"
192     UNAME="`/usr/bin/dscl /Local/Default -list /users | /usr/bin/grep -E '^(_)?privoxy?'`"
193     SCRIPT="privoxy-create-dscl.sh"
194     OPTS="--with-user=_privoxy --with-group=_privoxy"
195     ;;
196   # Mac OS X 10.4, 10.3
197   8|7)
198     GNAME="`/usr/bin/nireport . /groups name | /usr/bin/grep -E '^privoxy?'`"
199     UNAME="`/usr/bin/nireport . /users name | /usr/bin/grep -E '^privoxy?'`"
200     SCRIPT="privoxy-create-nicl.sh"
201     OPTS="--with-user=privoxy --with-group=privoxy"
202     ;;
203   # default
204   *)
205     GNAME=""
206     UNAME=""
207     SCRIPT=""
208     OPTS=""
209     ;;
210 esac
211
212 #
213 # identify the directory containing Privoxy's source
214 #
215 cd ..
216 DIRS_FOUND=0
217 SOURCE_DIR=""
218 if [ -d dist ]; then
219         DIRS_FOUND=1
220 fi
221 if [ -d current ]; then
222         DIRS_FOUND=$(( DIRS_FOUND + 10 ))
223 fi
224 case "${DIRS_FOUND}" in
225         # only 'current' found
226         10)
227                 SOURCE_DIR="current"
228         ;;
229         # only 'dist' found
230         1)
231                 SOURCE_DIR="dist"
232         ;;
233         # either both or neither found
234         11|0)
235                 read -p 'Could not select the Privoxy source directory. Please supply the directory name (e.g. current or dist): ' SOURCE_DIR
236         ;;
237 esac
238 cd OSXPackageBuilder
239 echo "Using ../${SOURCE_DIR} as location of Privoxy source"