Artifact 622c712f8af7d85c43dc66cfc541084c36226a38:
- Executable file
build/cackey_osx_build/build_osx.sh
— part of check-in
[ee77b32476]
at
2010-07-12 22:40:34
on branch trunk
— Updated build_osx to build correctly under "build" directory.
Updated pmbuild files to have correct permissions and build correctly under "build" directory. (user: kvanals, size: 4632) [annotate] [blame] [check-ins using]
#!/bin/bash # Shell Script to make Mac OS X Releases of CACKey # Kenneth Van Alstyne # kenneth.l.vanalstyne@usace.army.mil # 20100711 # Usage function usage() { echo "Usage: build_osx.sh <target>" echo Where target is one of: echo " panther - (Builds 10.3 Library for PPCG3)" echo " tiger - (Builds Universal 10.4 Library for PPCG3/i386)" echo " leopard - (Builds Universal 10.5 Library for PPCG4/i386)" echo " snowleopard - (Builds Universal 10.6 Library for i386/x86_64)" echo " all - (Builds for all supported targets)" echo " clean - (Cleans up)" echo "Run from CACKey Build Root." echo "CACKey Build Root Directory MUST be named 'cackey'" exit $? } # Clean up function clean() { rm -rf macbuild make distclean } # Directory creation function makedir() { if [ ! -d macbuild ]; then mkdir macbuild mkdir macbuild/Panther mkdir macbuild/Tiger mkdir macbuild/Leopard mkdir macbuild/SnowLeopard mkdir macbuild/pkg fi } # Build function for Panther panther() { makedir HEADERS=/Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/PCSC.framework/Versions/A/Headers/ LIBRARY=/Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/PCSC.framework/PCSC OSX=Panther HOST=powerpc-apple-darwin7 make distclean ARCH="ppc -mcpu=G3" CFLAGS="-arch ${ARCH}" ./configure --with-pcsc-headers=${HEADERS} --with-pcsc-libs=${LIBRARY} --host=${HOST} make cp libcackey.dylib macbuild/${OSX}/libcackey.dylib cp libcackey_g.dylib macbuild/${OSX}/libcackey_g.dylib pkgbuild } # Build function for Tiger tiger() { makedir HEADERS=/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/PCSC.framework/Versions/A/Headers/ LIBRARY=/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/PCSC.framework/PCSC LIB="" ARCHLIST="" DLIB="" DARCHLIST="" OSX=Tiger for HOST in powerpc-apple-darwin8 i386-apple-darwin8; do genbuild done libbuild pkgbuild } # Build function for Leopard leopard() { makedir HEADERS=/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/PCSC.framework/Versions/A/Headers/ LIBRARY=/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/PCSC.framework/PCSC LIB="" ARCHLIST="" DLIB="" DARCHLIST="" OSX=Leopard for HOST in powerpc-apple-darwin9 i386-apple-darwin9; do genbuild done libbuild pkgbuild } # Build function for Snow Leopard snowleopard() { makedir HEADERS=/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/PCSC.framework/Versions/A/Headers/ LIBRARY=/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/PCSC.framework/PCSC LIB="" ARCHLIST="" DLIB="" DARCHLIST="" OSX=SnowLeopard for HOST in i386-apple-darwin10 x86_64-apple-darwin10; do genbuild done libbuild pkgbuild } # Generic build function genbuild() { make distclean ARCH=`echo ${HOST} | cut -d "-" -f 1` if [ ${ARCH} == "powerpc" ]; then if [ ${OSX} == "Leopard" ]; then ARCH="ppc -mcpu=G4" else ARCH="ppc -mcpu=G3" fi fi CFLAGS="-arch ${ARCH}" ./configure --with-pcsc-headers=${HEADERS} --with-pcsc-libs=${LIBRARY} --host=${HOST} make cp libcackey.dylib macbuild/${OSX}/libcackey.dylib.`echo ${ARCH} | cut -d ' ' -f 1` cp libcackey_g.dylib macbuild/${OSX}/libcackey_g.dylib.`echo ${ARCH} | cut -d ' ' -f 1` } # Library build function libbuild() { for LIB in macbuild/${OSX}/libcackey.dylib.*; do ARCHLIST="${ARCHLIST} `echo '-arch '` `echo ${LIB} | cut -d . -f 3` `echo ' '` `echo ${LIB}`" done lipo -create ${ARCHLIST} -output macbuild/${OSX}/libcackey.dylib for DLIB in macbuild/${OSX}/libcackey_g.dylib.*; do DARCHLIST="${DARCHLIST} `echo '-arch '` `echo ${DLIB} | cut -d . -f 3` `echo ' '` `echo ${DLIB}`" done lipo -create ${DARCHLIST} -output macbuild/${OSX}/libcackey_g.dylib rm macbuild/${OSX}/libcackey*.dylib.* } # Function to build Mac OS X Packages pkgbuild() { if [ ${OSX} == "Panther" ]; then EXT=mpkg else EXT=pkg fi /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker -d build/cackey_osx_build/${OSX}_pmbuild.pmdoc -o macbuild/pkg/CACKey_${OSX}.${EXT} tar --create --directory macbuild/pkg/ --file macbuild/pkg/CACKey_${OSX}.${EXT}.tar CACKey_${OSX}.${EXT} gzip -9 macbuild/pkg/CACKey_${OSX}.${EXT}.tar rm -rf macbuild/pkg/CACKey_${OSX}.${EXT} echo "${OSX} build complete" } # Take command line arguments and execute case "$1" in "") usage exit $? ;; "panther") panther exit $? ;; "tiger") tiger exit $? ;; "leopard") leopard exit $? ;; "snowleopard") snowleopard exit $? ;; "all") panther tiger leopard snowleopard exit $? ;; "clean") clean exit $? ;; *) usage exit $? ;; esac