]>
Commit | Line | Data |
---|---|---|
8721cada RD |
1 | #!/bin/sh -e |
2 | # | |
3 | # build binary wxMacPython package and put it on a disk image | |
4 | # | |
5 | # usage: build [-s dir] [-d dir] [--cvs-update] [--force] [--debug] | |
6 | # | |
7 | # (C)opyright 2002 Frank Vercruesse | |
8 | # | |
9 | # Many modifications by Robin Dunn | |
10 | ||
11 | ||
12 | PYVER=2.2 | |
13 | ||
14 | curDir=`pwd` | |
15 | progDir="`dirname \"$0\"`" | |
16 | ||
17 | defSrcPath="/projects/wx" | |
18 | defDstPath="/projects/wx/wxPython/dist" | |
19 | ||
eb0f373c | 20 | pkgName="wxPythonOSX" |
6ca312ba RD |
21 | #version=`date +"%Y-%m-%d"` |
22 | version=`cd $defSrcPath/wxPython; python$PYVER -c 'import setup;print setup.VERSION'` | |
23 | ||
8721cada RD |
24 | dmgRoot="dmg-root" |
25 | pkgRoot="pkg-root" | |
26 | wxWindowsInst="$pkgRoot/usr/local" | |
27 | wxPythonInst="$pkgRoot/Library/Frameworks/Python.framework/Versions/$PYVER/lib/python$PYVER/site-packages" | |
28 | ||
29 | pythonExec="python$PYVER" | |
30 | makePkgExec="./makepkg" | |
31 | makeDmgExec="./makedmg" | |
32 | ||
33 | ||
34 | usage() { | |
35 | echo `basename $0`: ERROR: $* 1>&2 | |
36 | echo usage: `basename $0` '[-s dir] [-d dir] [--cvs-update] [--force] [--debug]' 1>&2 | |
37 | exit 1 | |
38 | } | |
39 | ||
40 | quotemeta() { | |
41 | # probably not quite correct, but seems to work | |
42 | echo "$1" | sed -e 's/\([^a-zA-z0-9.,--;_/]\)/\\\1/g' | |
43 | } | |
44 | ||
45 | msg() | |
46 | { | |
47 | echo "---------------------------------------------" | |
48 | echo $@ | |
49 | } | |
50 | ||
51 | msgdo() { | |
52 | echo "--> " $@ | |
53 | $@ | |
54 | } | |
55 | ||
56 | ||
57 | user=$1 | |
58 | shift | |
59 | ||
60 | update= | |
61 | force= | |
62 | debug= | |
63 | srcPath= | |
64 | dstPath= | |
65 | ||
66 | while :; do | |
67 | case "$1" in | |
68 | --cvs-update) update=1;; | |
69 | --force) force=1;; | |
70 | --debug) debug=1;; | |
71 | -s) shift; srcPath="$1";; | |
72 | -d) shift; dstPath="$1";; | |
73 | -*) usage "bad argument $1";; | |
74 | *) break;; | |
75 | esac | |
76 | shift | |
77 | done | |
78 | ||
79 | ||
80 | #----------------------------------- | |
81 | msg check and prepare build directories | |
82 | ||
83 | if ! test "$srcPath"; then | |
84 | srcPath=$defSrcPath | |
85 | fi | |
86 | if ! test -d "$srcPath"; then | |
87 | echo "no such directory: '$srcPath'" 1>&2 | |
88 | exit | |
89 | fi | |
90 | ||
91 | if ! test "$dstPath"; then | |
92 | dstPath=$defDstPath | |
93 | fi | |
94 | if ! test -d "$dstPath"; then | |
95 | msgdo mkdir -p -m 775 "$dstPath" | |
96 | msgdo chown ${user}:staff "$dstPath" | |
97 | fi | |
98 | ||
99 | temp="tmp$$" | |
100 | if test -e "$dstPath/$temp"; then | |
101 | msgdo rm -rf "$dstPath/$temp" | |
102 | fi | |
103 | msgdo mkdir -m 775 "$dstPath/$temp" | |
104 | ||
105 | if test -e "$dstPath/$temp/$pkgRoot"; then | |
106 | msgdo rm -rf "$dstPath/$temp/$pkgRoot" | |
107 | fi | |
108 | msgdo mkdir -m 1775 "$dstPath/$temp/$pkgRoot" | |
109 | msgdo chown root:admin "$dstPath/$temp/$pkgRoot" | |
110 | ||
111 | if test -e "$dstPath/$temp/$dmgRoot"; then | |
112 | msgdo rm -rf "$dstPath/$temp/$dmgRoot" | |
113 | fi | |
114 | msgdo mkdir -p -m 775 "$dstPath/$temp/$dmgRoot" | |
115 | msgdo chown $user:staff "$dstPath/$temp/$dmgRoot" | |
116 | ||
117 | ||
118 | #----------------------------------- | |
119 | # update cvs | |
120 | if [ $update ]; then | |
121 | msg Updating from CVS | |
122 | msgdo cd "$srcPath" | |
123 | msgdo cvs update -dP -A | |
124 | fi | |
125 | ||
126 | ||
127 | #----------------------------------- | |
128 | msg configuring wxWindows | |
849b176b | 129 | |
8721cada | 130 | buildDir="$srcPath/build-pkg" |
849b176b | 131 | dFlag="--enable-debug_flag --enable-optimise" |
8721cada RD |
132 | if [ $debug ]; then |
133 | buildDir="$srcPath/build-pkg-debug" | |
134 | dFlag="--enable-debug" | |
135 | fi | |
136 | if ! test -e "$buildDir"; then | |
137 | force=1 | |
138 | fi | |
139 | if [ $force ]; then | |
140 | if test -e "$buildDir"; then | |
141 | rm -rf "$buildDir" | |
142 | fi | |
143 | msgdo mkdir -m 775 "$buildDir" | |
144 | msgdo cd "$buildDir" | |
9c6b4824 | 145 | msgdo ../configure --with-mac --with-opengl --enable-precomp=no $dFlag |
8721cada RD |
146 | cd $curDir |
147 | ||
148 | else | |
149 | echo wxWindows already configured | |
150 | fi | |
151 | ||
152 | ||
153 | #----------------------------------- | |
154 | msg building wxWindows | |
155 | msgdo cd $buildDir | |
156 | msgdo make | |
9c6b4824 RD |
157 | msgdo cd ../locale |
158 | msgdo make allmo | |
8721cada RD |
159 | cd $curDir |
160 | ||
161 | ||
162 | #----------------------------------- | |
163 | msg installing wxWindows | |
9c6b4824 | 164 | msgdo mkdir -p -m 1755 "$dstPath/$temp/$wxWindowsInst" |
8721cada | 165 | msgdo cd "$buildDir" |
5f9dc1f1 RD |
166 | |
167 | # install once to the package directory, and once to the | |
168 | # local machine so the wxPython build will get the right wxMac | |
8721cada | 169 | msgdo make install "prefix=`quotemeta \"$dstPath/$temp/$wxWindowsInst\"`" |
5f9dc1f1 RD |
170 | msgdo make install |
171 | ||
8721cada RD |
172 | msgdo chown -R root:wheel "$dstPath/$temp/$pkgRoot/usr" |
173 | cd $curDir | |
174 | ||
175 | ||
176 | #----------------------------------- | |
177 | msg building wxPython | |
178 | if [ $force ]; then | |
179 | fFlag="--force" | |
180 | else | |
181 | fFlag= | |
182 | fi | |
183 | if [ $debug ]; then | |
184 | dFlag="--debug" | |
185 | wxpBuildDir="build-pkg-debug" | |
186 | else | |
187 | dFlag= | |
188 | wxpBuildDir="build-pkg" | |
189 | fi | |
190 | bbFlag="BUILD_BASE=$wxpBuildDir" | |
191 | ||
192 | msgdo cd "$srcPath/wxPython" | |
193 | msgdo $pythonExec setup.py build 'IN_CVS_TREE=1' $bbFlag $fFlag $dFlag | |
194 | cd $curDir | |
195 | ||
196 | ||
197 | #----------------------------------- | |
198 | msg installing wxPython | |
199 | msgdo mkdir -p -m 775 "$dstPath/$temp/$wxPythonInst" | |
200 | msgdo cd "$srcPath/wxPython" | |
201 | msgdo $pythonExec setup.py install $bbFlag --install-lib="$dstPath/$temp/$wxPythonInst" | |
202 | cd $curDir | |
203 | ||
204 | msgdo chown -R root:admin "$dstPath/$temp/$pkgRoot/Library" | |
205 | msgdo chmod -R g+w "$dstPath/$temp/$pkgRoot/Library" | |
206 | ||
207 | ||
208 | #----------------------------------- | |
209 | msg copying additional wxPython files | |
210 | msgdo cp -pR "$srcPath/wxPython/samples" "$dstPath/$temp/$dmgRoot" | |
211 | msgdo cp -pR "$srcPath/wxPython/demo" "$dstPath/$temp/$dmgRoot" | |
212 | msgdo cp -pR "$srcPath/wxPython/licence" "$dstPath/$temp/$dmgRoot" | |
8721cada RD |
213 | find "$dstPath/$temp/$dmgRoot" -name "CVS" -type d -print0 | xargs -0 rm -rf |
214 | find "$dstPath/$temp/$dmgRoot" -name ".DS_Store" -type f -print0 | xargs -0 rm | |
215 | find "$dstPath/$temp/$dmgRoot" -name ".cvsignore" -type f -print0 | xargs -0 rm | |
216 | find "$dstPath/$temp/$dmgRoot" -name ".#*" -type f -print0 | xargs -0 rm | |
217 | find "$dstPath/$temp/$dmgRoot" -name "b" -type f -print0 | xargs -0 rm | |
218 | find "$dstPath/$temp/$dmgRoot" -name "*~*~" -type f -print0 | xargs -0 rm | |
9c6b4824 RD |
219 | |
220 | msgdo cd "$srcPath/wxPython/scripts" | |
221 | sFiles=`$pythonExec CreateMacScripts.py` | |
222 | for f in $sFiles; do | |
223 | msgdo cp $f "$dstPath/$temp/$wxWindowsInst/bin" | |
224 | done | |
225 | cd $curDir | |
226 | ||
8721cada RD |
227 | msgdo chown -R ${user}:staff "$dstPath/$temp/$dmgRoot" |
228 | ||
229 | ||
230 | #----------------------------------- | |
231 | msg making installer package | |
232 | msgdo cp -pR "$progDir/resources" "$dstPath/$temp" | |
233 | msgdo cp $progDir/$pkgName.info $progDir/$pkgName-$version.info | |
234 | if [ $debug ]; then | |
235 | echo "__WXDEBUG__ version." >> "$dstPath/$temp/resources/Welcome.txt" | |
236 | echo "" >> "$dstPath/$temp/resources/Welcome.txt" | |
237 | fi | |
238 | echo "Build date: `date`" >> "$dstPath/$temp/resources/Welcome.txt" | |
239 | msgdo cd "$progDir" | |
240 | msgdo "$makePkgExec" $dstPath/$temp/$pkgRoot $pkgName-$version.info -d $dstPath/$temp/$dmgRoot -r $dstPath/$temp/resources | |
241 | msgdo chown -R ${user}:staff $dstPath/$temp/$dmgRoot/$pkgName-$version.pkg | |
242 | cd $curDir | |
243 | ||
244 | ||
245 | #----------------------------------- | |
246 | msg making disk image | |
247 | msgdo cd "$progDir" | |
248 | msgdo "$makeDmgExec" $dstPath/$temp/$dmgRoot $dstPath/$temp $pkgName-$version | |
249 | if [ $debug ]; then | |
250 | dmgName="$pkgName-$version-debug" | |
251 | else | |
252 | dmgName="$pkgName-$version" | |
253 | fi | |
254 | msgdo mv "$dstPath/$temp/$pkgName-$version.dmg" "$dstPath/$dmgName.dmg" | |
255 | msgdo chown ${user}:staff "$dstPath/$dmgName.dmg" | |
256 | cd $curDir | |
257 | ||
258 | ||
259 | #----------------------------------- | |
260 | msg cleaning up | |
261 | msgdo chown -R ${user}:staff "$buildDir" | |
262 | msgdo chown -R ${user}:staff "$srcPath/wxPython/$wxpBuildDir" | |
263 | msgdo rm $progDir/$pkgName-$version.info | |
264 | msgdo rm -rf "$dstPath/$temp" |