3 # build binary wxMacPython package and put it on a disk image
5 # usage: build [-s dir] [-d dir] [--cvs-update] [--force] [--debug]
7 # (C)opyright 2002 Frank Vercruesse
9 # Many modifications by Robin Dunn
15 progDir
="`dirname \"$0\"`"
17 defSrcPath
="/projects/wx"
18 defDstPath
="/projects/wx/wxPython/dist"
21 #version=`date +"%Y-%m-%d"`
22 version
=`cd $defSrcPath/wxPython; python$PYVER -c 'import setup;print setup.VERSION'`
26 wxWindowsInst
="$pkgRoot/usr/local"
27 wxPythonInst
="$pkgRoot/Library/Frameworks/Python.framework/Versions/$PYVER/lib/python$PYVER/site-packages"
29 pythonExec
="python$PYVER"
30 makePkgExec
="./makepkg"
31 makeDmgExec
="./makedmg"
35 echo `basename $0`: ERROR
: $
* 1>&2
36 echo usage
: `basename $0` '[-s dir] [-d dir] [--cvs-update] [--force] [--debug]' 1>&2
41 # probably not quite correct, but seems to work
42 echo "$1" | sed -e 's/\([^a-zA-z0-9.,--;_/]\)/\\\1/g'
47 echo "---------------------------------------------"
68 --cvs-update) update
=1;;
71 -s) shift; srcPath
="$1";;
72 -d) shift; dstPath
="$1";;
73 -*) usage
"bad argument $1";;
80 #-----------------------------------
81 msg check and prepare build directories
83 if ! test "$srcPath"; then
86 if ! test -d "$srcPath"; then
87 echo "no such directory: '$srcPath'" 1>&2
91 if ! test "$dstPath"; then
94 if ! test -d "$dstPath"; then
95 msgdo
mkdir -p -m 775 "$dstPath"
96 msgdo chown
${user}:staff
"$dstPath"
100 if test -e "$dstPath/$temp"; then
101 msgdo
rm -rf "$dstPath/$temp"
103 msgdo
mkdir -m 775 "$dstPath/$temp"
105 if test -e "$dstPath/$temp/$pkgRoot"; then
106 msgdo
rm -rf "$dstPath/$temp/$pkgRoot"
108 msgdo
mkdir -m 1775 "$dstPath/$temp/$pkgRoot"
109 msgdo chown root
:admin
"$dstPath/$temp/$pkgRoot"
111 if test -e "$dstPath/$temp/$dmgRoot"; then
112 msgdo
rm -rf "$dstPath/$temp/$dmgRoot"
114 msgdo
mkdir -p -m 775 "$dstPath/$temp/$dmgRoot"
115 msgdo chown
$user:staff
"$dstPath/$temp/$dmgRoot"
118 #-----------------------------------
121 msg Updating from CVS
123 msgdo cvs update
-dP -A
127 #-----------------------------------
128 msg configuring wxWindows
129 buildDir
="$srcPath/build-pkg"
130 dFlag
="--enable-optimise --enable-debug_flag"
132 buildDir
="$srcPath/build-pkg-debug"
133 dFlag
="--enable-debug"
135 if ! test -e "$buildDir"; then
139 if test -e "$buildDir"; then
142 msgdo
mkdir -m 775 "$buildDir"
144 msgdo ..
/configure
--with-mac --with-opengl --enable-precomp=no
$dFlag
148 echo wxWindows already configured
152 #-----------------------------------
153 msg building wxWindows
161 #-----------------------------------
162 msg installing wxWindows
163 msgdo
mkdir -p -m 1755 "$dstPath/$temp/$wxWindowsInst"
166 # install once to the package directory, and once to the
167 # local machine so the wxPython build will get the right wxMac
168 msgdo
make install "prefix=`quotemeta \"$dstPath/$temp/$wxWindowsInst\"`"
171 msgdo chown
-R root
:wheel
"$dstPath/$temp/$pkgRoot/usr"
175 #-----------------------------------
176 msg building wxPython
184 wxpBuildDir
="build-pkg-debug"
187 wxpBuildDir
="build-pkg"
189 bbFlag
="BUILD_BASE=$wxpBuildDir"
191 msgdo
cd "$srcPath/wxPython"
192 msgdo
$pythonExec setup.py build
'IN_CVS_TREE=1' $bbFlag $fFlag $dFlag
196 #-----------------------------------
197 msg installing wxPython
198 msgdo
mkdir -p -m 775 "$dstPath/$temp/$wxPythonInst"
199 msgdo
cd "$srcPath/wxPython"
200 msgdo
$pythonExec setup.py
install $bbFlag --install-lib="$dstPath/$temp/$wxPythonInst"
203 msgdo chown
-R root
:admin
"$dstPath/$temp/$pkgRoot/Library"
204 msgdo
chmod -R g
+w
"$dstPath/$temp/$pkgRoot/Library"
207 #-----------------------------------
208 msg copying additional wxPython files
209 msgdo
cp -pR "$srcPath/wxPython/samples" "$dstPath/$temp/$dmgRoot"
210 msgdo
cp -pR "$srcPath/wxPython/demo" "$dstPath/$temp/$dmgRoot"
211 msgdo
cp -pR "$srcPath/wxPython/licence" "$dstPath/$temp/$dmgRoot"
212 find "$dstPath/$temp/$dmgRoot" -name "CVS" -type d
-print0 | xargs -0 rm -rf
213 find "$dstPath/$temp/$dmgRoot" -name ".DS_Store" -type f
-print0 | xargs -0 rm
214 find "$dstPath/$temp/$dmgRoot" -name ".cvsignore" -type f
-print0 | xargs -0 rm
215 find "$dstPath/$temp/$dmgRoot" -name ".#*" -type f
-print0 | xargs -0 rm
216 find "$dstPath/$temp/$dmgRoot" -name "b" -type f
-print0 | xargs -0 rm
217 find "$dstPath/$temp/$dmgRoot" -name "*~*~" -type f
-print0 | xargs -0 rm
219 msgdo
cd "$srcPath/wxPython/scripts"
220 sFiles
=`$pythonExec CreateMacScripts.py`
222 msgdo
cp $f "$dstPath/$temp/$wxWindowsInst/bin"
226 msgdo chown
-R ${user}:staff
"$dstPath/$temp/$dmgRoot"
229 #-----------------------------------
230 msg making installer package
231 msgdo
cp -pR "$progDir/resources" "$dstPath/$temp"
232 msgdo
cp $progDir/$pkgName.info
$progDir/$pkgName-$version.info
234 echo "__WXDEBUG__ version." >> "$dstPath/$temp/resources/Welcome.txt"
235 echo "" >> "$dstPath/$temp/resources/Welcome.txt"
237 echo "Build date: `date`" >> "$dstPath/$temp/resources/Welcome.txt"
239 msgdo
"$makePkgExec" $dstPath/$temp/$pkgRoot $pkgName-$version.info
-d $dstPath/$temp/$dmgRoot -r $dstPath/$temp/resources
240 msgdo chown
-R ${user}:staff
$dstPath/$temp/$dmgRoot/$pkgName-$version.pkg
244 #-----------------------------------
245 msg making disk image
247 msgdo
"$makeDmgExec" $dstPath/$temp/$dmgRoot $dstPath/$temp $pkgName-$version
249 dmgName
="$pkgName-$version-debug"
251 dmgName
="$pkgName-$version"
253 msgdo
mv "$dstPath/$temp/$pkgName-$version.dmg" "$dstPath/$dmgName.dmg"
254 msgdo chown
${user}:staff
"$dstPath/$dmgName.dmg"
258 #-----------------------------------
260 msgdo chown
-R ${user}:staff
"$buildDir"
261 msgdo chown
-R ${user}:staff
"$srcPath/wxPython/$wxpBuildDir"
262 msgdo
rm $progDir/$pkgName-$version.info
263 msgdo
rm -rf "$dstPath/$temp"