X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=tools%2Fosx_packaging%2Fosx_build;h=a9343640ff826c8007929cdcfce78a5da9324421;hb=e2012bc5e49618b8f9624f5e6a7dcd94e20405d7;hp=778805c9686fbe5ae98431df3e611478ea8efd93;hpb=5b748e20d8bd746ba373845bf5b4a5966ae5e90b;p=ardour.git diff --git a/tools/osx_packaging/osx_build b/tools/osx_packaging/osx_build index 778805c968..a9343640ff 100755 --- a/tools/osx_packaging/osx_build +++ b/tools/osx_packaging/osx_build @@ -16,14 +16,20 @@ mkdir -p "$CACHEDIR" SAE= MIXBUS= +MIXBUS32C= WITH_HARVID=1 WITH_HARRISON_LV2= WITH_X42_LV2= -WITH_LADSPA=1 STRIP=1 PRINT_SYSDEPS= WITH_NLS= +: ${HARRISONCHANNELSTRIP=harrison_channelstrip} +: ${HARRISONLV2=harrison_lv2s-n} +: ${HARRISONDSPURL=http://www.harrisonconsoles.com/plugins/releases/public} + +. ../define_versions.sh + while [ $# -gt 0 ] ; do echo "arg = $1" case $1 in @@ -32,46 +38,61 @@ while [ $# -gt 0 ] ; do # top level build targets # - --sae) WITH_NLS= ; - SAE=1 ; - WITH_LADSPA=1; - STRIP= ; - PRODUCT_PKG_DIR=ArdourSAE ; - APPNAME=Ardour ; - shift ;; - --mixbus) MIXBUS=1; - WITH_HARRISON_LV2=1 ; - WITH_X42_LV2=1 ; - WITH_NLS=1 ; - SAE= ; - WITH_LADSPA=; - STRIP= ; - PRODUCT_PKG_DIR=Mixbus; - APPNAME=Mixbus ; - shift ;; - --public) WITH_NLS= ; - SAE= ; - WITH_LADSPA=1; - PRODUCT_PKG_DIR=Ardour; - APPNAME=Ardour ; - shift ;; - --allinone) SAE= ; - WITH_NLS= ; - WITH_LADSPA=1; - STRIP= ; - PRODUCT_PKG_DIR=Ardour ; - shift ;; - --test) SAE= ; WITH_LADSPA=; STRIP= ; shift ;; + --sae) + SAE=1 ; + STRIP= ; + PRODUCT_PKG_DIR=ArdourSAE ; + APPNAME=Ardour ; + BUNDLENAME=Ardour${major_version} ; + lower_case_appname=ardour; + shift ;; + --mixbus) MIXBUS=1; + WITH_HARRISON_LV2=1 ; + WITH_X42_LV2=1 ; + WITH_NLS=1 ; + SAE= ; + STRIP= ; + PRODUCT_PKG_DIR=Mixbus; + APPNAME=Mixbus ; + BUNDLENAME=Mixbus${major_version} ; + lower_case_appname=mixbus; + shift ;; + --mixbus32c) MIXBUS=1; + MIXBUS32C=1; + WITH_HARRISON_LV2=1 ; + WITH_X42_LV2=1 ; + WITH_NLS=1 ; + SAE= ; + STRIP= ; + PRODUCT_PKG_DIR=Mixbus32C; + lower_case_appname=mixbus32c; + APPNAME=Mixbus32C-${major_version} ; + BUNDLENAME=Mixbus32C-${major_version} ; + shift ;; + --public) + SAE= ; + WITH_HARRISON_LV2=1 ; + WITH_X42_LV2=1 ; + PRODUCT_PKG_DIR=Ardour; + APPNAME=Ardour ; + BUNDLENAME=Ardour${major_version} ; + lower_case_appname=ardour; + shift ;; + --allinone) SAE= ; + STRIP= ; + PRODUCT_PKG_DIR=Ardour ; + shift ;; + --test) SAE= ; STRIP= ; shift ;; # # specific build flags # --noharvid) WITH_HARVID= ; shift ;; - --noladspa) WITH_LADSPA= ; shift ;; --nostrip) STRIP= ; shift ;; --sysdeps) PRINT_SYSDEPS=1; shift ;; --nls) WITH_NLS=1 ; shift ;; + --chanstrip) HARRISONCHANNELSTRIP=$2 ; shift; shift ;; esac done @@ -80,7 +101,6 @@ if test -z "$PRODUCT_PKG_DIR" -o -z "$APPNAME"; then exit 1 fi -. ../define_versions.sh echo "Version is $release_version" if [ "x$commit" != "x" ] ; then info_string="$release_version ($commit) built on `hostname` by `whoami` on `date`" @@ -102,7 +122,7 @@ fi # setup directory structure -APPDIR=${APPNAME}${major_version}.app +APPDIR=${BUNDLENAME}.app APPROOT=$APPDIR/Contents Frameworks=$APPROOT/lib Resources=$APPROOT/Resources @@ -125,7 +145,9 @@ MidiMaps=$Shared/midi_maps ExportFormats=$Shared/export Templates=$Shared/templates PatchFiles=$Shared/patchfiles +LuaScripts=$Shared/scripts MackieControl=$Shared/mcp +Themes=$Shared/themes if [ x$PRINT_SYSDEPS != x ] ; then # @@ -162,37 +184,19 @@ mkdir -p $Frameworks/modules mkdir -p $Etc mkdir -p $MackieControl mkdir -p $PatchFiles +mkdir -p $LuaScripts +mkdir -p $Themes + -# maybe set variables -env="" -if test x$SAE != x ; then - appname="Ardour${major_version}-SAE" - EXECUTABLE=${appname} - env="$envARDOUR_SAEtrue" - # - # current default for SAE version is German keyboard layout without a keypad - # - env="$envARDOUR_KEYBOARD_LAYOUTde-nokeypad" - env="$envARDOUR_UI_CONFardour3_ui_sae.conf" -elif test x$MIXBUS != x ; then - appname="Mixbus" - EXECUTABLE=${appname}${major_version} - env="$envARDOUR_MIXBUStrue" - # - # current default for MIXBUS version is US keyboard layout without a keypad - # - env="$envARDOUR_KEYBOARD_LAYOUTus-nokeypad" - env="$envARDOUR_UI_CONFardour3_ui.conf" -else - appname="Ardour${major_version}" - EXECUTABLE=${appname} -fi + +EXECUTABLE=${BUNDLENAME} # # if we're not going to bundle JACK, make sure we can find # jack in the places where it might be # +env="" env="$envPATH/usr/local/bin:/opt/bin:/usr/bin:/bin:/usr/sbin:/sbin" env="$envDYLIB_FALLBACK_LIBRARY_PATH/usr/local/lib:/opt/lib" @@ -204,6 +208,7 @@ sed -e "s?@ENV@?$env?g" \ -e "s?@VERSION@?$release_version?g" \ -e "s?@INFOSTRING@?$info_string?g" \ -e "s?@IDSUFFIX@?$EXECUTABLE?g" \ + -e "s?@BUNDLENAME@?$BUNDLENAME?g" \ -e "s?@EXECUTABLE@?$EXECUTABLE?g" < Info.plist.in > Info.plist # and plist strings sed -e "s?@APPNAME@?$appname?" \ @@ -236,6 +241,8 @@ cp $BUILD_ROOT/gtk2_ardour/ardour-$release_version $APPROOT/MacOS/$MAIN_EXECUTAB if test x$SAE != x ; then # cp $BUILD_ROOT/gtk2_ardour/evtest $APPROOT/MacOS/gtkevents cp Ardour3-SAE.icns $Resources/appIcon.icns +elif test x$MIXBUS32C != x ; then + cp Mixbus32C.icns $Resources/appIcon.icns elif test x$MIXBUS != x ; then cp Mixbus.icns $Resources/appIcon.icns else @@ -323,20 +330,6 @@ cp $GTKSTACK_ROOT/lib/gtk-2.0/2.10.0/engines/libpixmap.so $Frameworks (cd $GTK_ENGINE_DIR && ln -s ../../libpixmap.so) -if test x$WITH_LADSPA != x ; then - if test x$SAE != x ; then - plugdir=sae_ladspa - elif test x$MIXBUS != x ; then - plugdir=mixbus_ladspa - else - plugdir=ladspa - fi - if [ -d $plugdir -a "x$(ls $plugdir)" != x ] ; then - echo "Copying `ls $plugdir | wc -l` plugins ..." - cp -r $plugdir/* $Plugins - fi -fi - # Control Surface shared libraries cp $BUILD_ROOT/libs/surfaces/*/libardour_*.dylib $Surfaces cp $BUILD_ROOT/libs/surfaces/control_protocol/libardourcp*.dylib $Frameworks @@ -373,6 +366,16 @@ for x in $BUILD_ROOT/../patchfiles/*.midnam ; do cp "$x" $PatchFiles done +# Lua Script Files +# got to be careful with names here +for x in $BUILD_ROOT/../scripts/*.lua ; do + BN=$(basename $x) + if test "${BN:0:1}" = "_"; then + continue; + fi + cp "$x" $LuaScripts +done + # MackieControl data # got to be careful with names here for x in $BUILD_ROOT/../mcp/*.device $BUILD_ROOT/../mcp/*.profile ; do @@ -403,6 +406,24 @@ if test -f $BUILD_ROOT/libs/vfork/ardour-exec-wrapper ; then cp $BUILD_ROOT/libs/vfork/ardour-exec-wrapper $Frameworks/ fi +# session-utils +HAVE_SESSION_UTILS=false +for file in $BUILD_ROOT/session_utils/${lower_case_appname}${major_version}-*; do + BN=$(basename $file) + cp -v $file $Frameworks/ + if test x$STRIP = xall ; then + strip -s $Frameworks/${BN} + fi + ln -s ../lib/ardour-util.sh ${APPROOT}/MacOS/${BN} + HAVE_SESSION_UTILS=true +done + +# TODO check if this is still needed, even when building on 10.5 +if file $BUILD_ROOT/gtk2_ardour/ardour-$release_version | grep -q ppc; then +STDCPP='|libstdc\+\+' +else +STDCPP= +fi while [ true ] ; do missing=false @@ -410,12 +431,16 @@ while [ true ] ; do if ! file $file | grep -qs Mach-O ; then continue fi + # libffi contains "S" (other section symbols) that should not be stripped. + if [[ $file == *"libffi"* ]] ; then + continue + fi if test x$STRIP != x ; then strip -u -r -arch all $file &>/dev/null fi - deps=`otool -L $file | awk '{print $1}' | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/)" | grep -v 'libjack\.' | grep -v "$(basename $file)"` + deps=`otool -L $file | awk '{print $1}' | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/$STDCPP)" | grep -v 'libjack\.' | grep -v "$(basename $file)"` # echo -n "." for dep in $deps ; do base=`basename $dep` @@ -438,31 +463,51 @@ echo echo "Copying other stuff to $APPDIR ..." -#cp $BUILD_ROOT/gtk2_ardour/ergonomic-us.bindings $Resources - -cp $BUILD_ROOT/gtk2_ardour/mnemonic-us.bindings $Resources +cp $BUILD_ROOT/gtk2_ardour/ardour.keys $Resources cp $BUILD_ROOT/gtk2_ardour/ardour.menus $Resources cp $BUILD_ROOT/gtk2_ardour/default_ui_config $Resources cp $BUILD_ROOT/gtk2_ardour/clearlooks.rc $Resources # Copied directly from source tree +mkdir ${Resources}/icons +mkdir ${Resources}/resources cp ../../system_config $Resources/system_config cp ../../instant.xml $Resources/instant.xml -cp ../../gtk2_ardour/step_editing.bindings $Resources -cp ../../gtk2_ardour/mixer.bindings $Resources -cp -r ../../gtk2_ardour/icons $Resources -cp -r ../../gtk2_ardour/pixmaps $Resources -cp ../../gtk2_ardour/dark.colors $Resources -cp -R ../../gtk2_ardour/splash.png $Shared -cp -R ../../gtk2_ardour/small-splash.png $Shared -cp -R ../../gtk2_ardour/ArdourMono.ttf $Shared +cp ../../gtk2_ardour/icons/*.png ${Resources}/icons/ +cp -r ../../gtk2_ardour/icons/cursor_* ${Resources}/icons/ +cp ../../gtk2_ardour/ArdourMono.ttf $Shared +cp ../../gtk2_ardour/resources/${PRODUCT_PKG_DIR}-* ${Resources}/resources/ + + +# Themes: only install those named for this app +cp ../../gtk2_ardour/themes/*-${lower_case_appname}.colors $Themes # go through and recursively remove any .svn dirs in the bundle for svndir in `find $APPDIR -name .svn -type dir`; do rm -rf $svndir done +# session utils start script +if test "$HAVE_SESSION_UTILS" = true ; then + cat >> $Frameworks/ardour-util.sh << EOF +#!/bin/sh + +BIN_DIR=\$(dirname "\$0") +BUNDLE_DIR=\$(dirname "\$BIN_DIR") + +export ARDOUR_DATA_PATH="\$BUNDLE_DIR/share" +export ARDOUR_CONFIG_PATH="\$BUNDLE_DIR/etc" +export ARDOUR_DLL_PATH="\$BUNDLE_DIR/lib" +export VAMP_PATH="\$BUNDLE_DIR/lib"\${VAMP_PATH:+:\$VAMP_PATH} + +SELF=\$(basename "\$0") +exec "\$BUNDLE_DIR/lib/\$SELF" "\$@" +EOF + chmod +x $Frameworks/ardour-util.sh +fi + + # install bundled LV2s to /Contents/lib/LV2/ cp -R $BUILD_ROOT/libs/LV2 $Frameworks/ @@ -480,11 +525,22 @@ executables=$MAIN_EXECUTABLE if test x$SAE != x ; then executables="$executables" fi +if test "$HAVE_SESSION_UTILS" = true ; then + for file in $Frameworks/${lower_case_appname}${major_version}-*; do + BN=$(basename $file) + executables="$executables ../lib/${BN}" + done +fi + +if test -f "$Frameworks/ardour-vst-scanner"; then + executables="$executables ../lib/ardour-vst-scanner" +fi for exe in $executables; do + echo "Processing Executable: $exe" EXE=$APPROOT/MacOS/$exe changes="" - for lib in `otool -L $EXE | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/)" | awk '{print $1}' | grep -v 'libjack\.'` ; do + for lib in `otool -L $EXE | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/$STDCPP)" | awk '{print $1}' | grep -v 'libjack\.'` ; do base=`basename $lib` changes="$changes -change $lib @executable_path/../lib/$base" done @@ -495,7 +551,7 @@ done echo "Fixing up library names ..." # now do the same for all the libraries we include -for libdir in $Frameworks $Frameworks/modules $Surfaces $Panners $Backends ; do +for libdir in $Frameworks $Frameworks/modules $Surfaces $Panners $Backends $Frameworks/LV2/* ; do libbase=`basename $libdir` @@ -510,7 +566,7 @@ for libdir in $Frameworks $Frameworks/modules $Surfaces $Panners $Backends ; do # change all the dependencies changes="" - for lib in `otool -L $dylib | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/)" | awk '{print $1}' | grep -v 'libjack\.'` ; do + for lib in `otool -L $dylib | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/$STDCPP)" | awk '{print $1}' | grep -v 'libjack\.'` ; do base=`basename $lib` if echo $lib | grep -s libbase; then changes="$changes -change $lib @executable_path/../$libbase/$base" @@ -568,20 +624,26 @@ else fi +if file ${PRODUCT_PKG_DIR}/$APPROOT/MacOS/$MAIN_EXECUTABLE | grep -q x86_64; then + OSX_ARCH=x86_64 + OSX_BENSID=osx64 +elif file ${PRODUCT_PKG_DIR}/$APPROOT/MacOS/$MAIN_EXECUTABLE | grep -q ppc; then + OSX_ARCH=ppc + OSX_BENSID=osxppc +else + OSX_ARCH=i386 + OSX_BENSID=osx32 +fi + if test x$WITH_HARRISON_LV2 != x ; then - if file ${PRODUCT_PKG_DIR}/$APPROOT/MacOS/$MAIN_EXECUTABLE | grep -q x86_64; then - OSX_ARCH=osx64 - else - OSX_ARCH=osx32 - fi curl -s -S --fail -# \ - -z "${CACHEDIR}/harrison_lv2s.${OSX_ARCH}.zip" \ - -o "${CACHEDIR}/harrison_lv2s.${OSX_ARCH}.zip" \ - http://www.harrisonconsoles.com/mixbus/mb3/${OSX_ARCH}/harrison_lv2s.zip + -z "${CACHEDIR}/${HARRISONLV2}.${OSX_BENSID}.zip" \ + -o "${CACHEDIR}/${HARRISONLV2}.${OSX_BENSID}.zip" \ + "${HARRISONDSPURL}/${HARRISONLV2}.${OSX_BENSID}.zip" mkdir -p "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2" bsdtar -C "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/" -xf \ - "${CACHEDIR}/harrison_lv2s.${OSX_ARCH}.zip" + "${CACHEDIR}/${HARRISONLV2}.${OSX_BENSID}.zip" fi if test x$WITH_HARVID != x ; then @@ -607,6 +669,14 @@ if test x$WITH_HARVID != x ; then cp -r "${JADEO}/Jadeo.app" "$PRODUCT_PKG_DIR/" hdiutil detach "${JADEO}" + XJCONTENT=${PRODUCT_PKG_DIR}/Jadeo.app/Contents + HVLIBS=${PRODUCT_PKG_DIR}/$APPROOT/lib/harvid + + for file in ${XJCONTENT}/MacOS/Jadeo-bin ${XJCONTENT}/Frameworks/*.dylib ${HVLIBS}/*.dylib ${PRODUCT_PKG_DIR}/$APPROOT/MacOS/*harvid* ; do + lipo -extract_family ${OSX_ARCH} ${file} -output ${file}.thin && \ + mv ${file}.thin ${file} + done + DMGWINBOTTOM=580 YPOS=$[ $DMGWINBOTTOM - 300 ] XJADEOPOS="set position of item \"Jadeo.app\" of container window to {310, ${YPOS}}" @@ -618,60 +688,57 @@ fi ### Mixbus plugins, etc if test x$WITH_X42_LV2 != x ; then echo "bundling x42 plugins" - if file ${PRODUCT_PKG_DIR}/$APPROOT/MacOS/$MAIN_EXECUTABLE | grep -q x86_64; then - OSX_ARCH=x86_64 - else - OSX_ARCH=i386 - fi - mkdir -p "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2" - METERS_VERSION=$(curl -s -S http://x42-plugins.com/x42/osx/x42-meters.latest.txt) - rsync -a -q --partial \ - rsync://x42-plugins.com/x42/osx/x42-meters-lv2-osx-${METERS_VERSION}.zip \ - "$CACHEDIR/x42-meters-lv2-osx-${METERS_VERSION}.zip" - bsdtar -C "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/" -xf \ - "$CACHEDIR/x42-meters-lv2-osx-${METERS_VERSION}.zip" - - SETBFREE_VERSION=$(curl -s -S http://x42-plugins.com/x42/osx/setBfree.latest.txt) - rsync -a -q --partial \ - rsync://x42-plugins.com/x42/osx/setBfree-lv2-osx-${SETBFREE_VERSION}.zip \ - "$CACHEDIR/setBfree-lv2-osx-${SETBFREE_VERSION}.zip" - bsdtar -C "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/" -xf \ - "$CACHEDIR/setBfree-lv2-osx-${SETBFREE_VERSION}.zip" - - MIDIFILTER_VERSION=$(curl -s -S http://x42-plugins.com/x42/osx/x42-midifilter.latest.txt) - rsync -a -q --partial \ - rsync://x42-plugins.com/x42/osx/x42-midifilter-lv2-osx-${MIDIFILTER_VERSION}.zip \ - "$CACHEDIR/x42-midifilter-lv2-osx-${MIDIFILTER_VERSION}.zip" - bsdtar -C "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/" -xf \ - "$CACHEDIR/x42-midifilter-lv2-osx-${MIDIFILTER_VERSION}.zip" + for proj in x42-meters x42-midifilter x42-midimap x42-stereoroute x42-eq setBfree; do + X42_VERSION=$(curl -s -S http://x42-plugins.com/x42/osx/${proj}.latest.txt) + rsync -a -q --partial \ + rsync://x42-plugins.com/x42/osx/${proj}-lv2-osx-${X42_VERSION}.zip \ + "$CACHEDIR/${proj}-lv2-osx-${X42_VERSION}.zip" + bsdtar -C "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/" -xf \ + "$CACHEDIR/${proj}-lv2-osx-${X42_VERSION}.zip" + done for file in ${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/*/*.dylib ; do - lipo -thin ${OSX_ARCH} ${file} -output ${file}.thin + lipo -extract_family ${OSX_ARCH} ${file} -output ${file}.thin mv ${file}.thin ${file} done fi if test -n "$MIXBUS"; then - if file ${PRODUCT_PKG_DIR}/$APPROOT/MacOS/$MAIN_EXECUTABLE | grep -q x86_64; then - OSX_ARCH=osx64 - else - OSX_ARCH=osx32 - fi - - echo "deploying harrison tools for $OSX_ARCH" + echo "deploying harrison channelstrip for $OSX_BENSID" mkdir -p "${PRODUCT_PKG_DIR}/${APPROOT}/lib/ladspa/strip" curl -s -S --fail -# \ - -z "${CACHEDIR}/harrison_channelstrip.${OSX_ARCH}.so" \ - -o "${CACHEDIR}/harrison_channelstrip.${OSX_ARCH}.so" \ - http://www.harrisonconsoles.com/mixbus/mb3/${OSX_ARCH}/harrison_channelstrip.so + -z "${CACHEDIR}/${HARRISONCHANNELSTRIP}.${OSX_BENSID}.so" \ + -o "${CACHEDIR}/${HARRISONCHANNELSTRIP}.${OSX_BENSID}.so" \ + "${HARRISONDSPURL}/${HARRISONCHANNELSTRIP}.${OSX_BENSID}.so" + + cp "${CACHEDIR}/${HARRISONCHANNELSTRIP}.${OSX_BENSID}.so" \ + "${PRODUCT_PKG_DIR}/${APPROOT}/lib/ladspa/strip/${HARRISONCHANNELSTRIP}.so" + + echo "deploying harrison vamp plugins for $OSX_BENSID" + + curl -s -S --fail -# \ + -z "${CACHEDIR}/harrison_vamp.${OSX_BENSID}.dylib" \ + -o "${CACHEDIR}/harrison_vamp.${OSX_BENSID}.dylib" \ + "${HARRISONDSPURL}/harrison_vamp.${OSX_BENSID}.dylib" - cp "${CACHEDIR}/harrison_channelstrip.${OSX_ARCH}.so" \ - "${PRODUCT_PKG_DIR}/${APPROOT}/lib/ladspa/strip/harrison_channelstrip.so" + cp "${CACHEDIR}/harrison_vamp.${OSX_BENSID}.dylib" \ + "${PRODUCT_PKG_DIR}/${APPROOT}/lib/harrison_vamp.dylib" fi + +################################################################################ + +if test x$DEMO_SESSION_URL != x ; then + mkdir -p $Shared/sessions + DEMO_SESSIONS=$(curl -s -S --fail $DEMO_SESSION_URL/index.txt) + for demo in $DEMO_SESSIONS; do + curl -s -S --fail -# -o $Shared/sessions/$demo $DEMO_SESSION_URL/$demo + done +fi + ################################################################################ ( cd $PRODUCT_PKG_DIR ; find . ) > file_list.txt @@ -704,9 +771,8 @@ TMPDMG="${TMPDMG}.dmg" trap "rm -rf $MNTPATH $TMPDMG ${TMPDMG}.dmg $ICNSTMP" EXIT -hdiutil create -megabytes $DMGMEGABYTES "$TMPDMG" +hdiutil create -megabytes $DMGMEGABYTES -fs HFS+ -volname "${VOLNAME}" "$TMPDMG" DiskDevice=$(hdid -nomount "$TMPDMG" | grep Apple_HFS | cut -f 1 -d ' ') -newfs_hfs -v "${VOLNAME}" "${DiskDevice}" mount -t hfs -o nobrowse "${DiskDevice}" "${MNTPATH}" cp -r ${PRODUCT_PKG_DIR}/* "${MNTPATH}" || exit @@ -764,6 +830,7 @@ hdiutil eject "${DiskDevice}" || true # Create a read-only version, use zlib compression hdiutil convert -format UDZO "${TMPDMG}" -imagekey zlib-level=9 -o "${UC_DMG}" +if test $(sw_vers -productVersion | cut -d '.' -f 2) -gt 5; then echo "setting file icon ..." cp ${PRODUCT_PKG_DIR}/$Resources/appIcon.icns ${ICNSTMP}.icns @@ -773,6 +840,8 @@ Rez -append ${ICNSTMP}.rsrc -o "$UC_DMG" SetFile -a C "$UC_DMG" rm ${ICNSTMP}.icns ${ICNSTMP}.rsrc +fi + rm -rf ${PRODUCT_PKG_DIR} echo