--- deliantra/Deliantra-Client/makebin.osx 2009/09/28 20:44:01 1.14 +++ deliantra/Deliantra-Client/makebin.osx 2011/12/26 03:58:12 1.20 @@ -1,9 +1,10 @@ -#!/bin/bash +#!/opt/local/bin/bash # Convert a gtk2-perl program to a standalone OS X binary -#port install libsdl libsdl_mixer libsdl_image libvorbis libpng jpeg pango db46 libogg p5-libwww-perl p5-yaml -# need to patch libSDL_image from /opt/local/lib/libjpeg.dylib to ./libjpeg.62.dylib +# port install libsdl +no_x11 libsdl_mixer libsdl_image libvorbis libpng jpeg pango db46 libogg p5-libwww-perl p5-yaml db52 +# port install bash wget +# need to patch libSDL_image from /opt/local/lib/libjpeg.dylib to ./libjpeg.8.dylib # ln -s db46/db.h /opt/local/include # ln -s db46/libdb.dylib /opt/local/lib # /opt/local/bin/cpan Pod::POM @@ -13,19 +14,63 @@ cvs update -PERL=/opt/local -PERLLIB=/usr/lib/perl5 +PREFIX=/opt/local +PERL=$PREFIX +DB1=4 +DB2=6 + +ln -sf $PREFIX/include/db$DB1$DB2/db.h $PREFIX/include/db.h +rm -f $PREFIX/lib/libdb-$DB1.$DB2.dylib +cp -p $PREFIX/lib/db$DB1$DB2/libdb-$DB1.$DB2.dylib $PREFIX/lib/libdb-$DB1.$DB2.dylib + +eval $(perl -V:sitelib) +PERLLIB=$sitelib + +OPTLIBS=( + db-4.6 + glib-2.0.0 gobject-2.0.0 gmodule-2.0.0 + pango-1.0.0 pangoft2-1.0.0 + SDL-1.2.0 SDL_mixer-1.2.0 SDL_image-1.2.0 + vorbisfile vorbis.0 ogg.0 + png14.14 jpeg.8 tiff.3 z.1 + fontconfig.1 expat.1 freetype.6 intl.8 iconv.2 +) + +declare -A deliantrified + +deliantrify_lib() { + local lib="$1" + + [ "${deliantrified["$lib"]}" ] && exit 0 + deliantrified["$lib"]=+ + + ( + cd $PREFIX/lib || exit 69 + echo "deliantrifying $lib" + cp -p lib$lib.dylib libdeliantra-$lib.dylib || exit 68 + install_name_tool -id libdeliantra-$lib.dylib libdeliantra-$lib.dylib + for lib2 in $(otool -L libdeliantra-$lib.dylib | perl -ne 'print "$1\n" if m%'"$PREFIX/lib/lib"'(\S+).dylib%'); do + deliantrify_lib "$lib2" + install_name_tool -change lib$lib2.dylib libdeliantra-$lib2.dylib libdeliantra-$lib.dylib + done + ) || exit +} + +# don't ask... +#for lib in "${OPTLIBS[@]}"; do +# deliantrify_lib "$lib" +#done umask 022 if true; then - for mod in common-sense AnyEvent EV JSON-XS deliantra/Deliantra Compress-LZF BDB Guard; do + for mod in common-sense AnyEvent EV JSON-XS Compress-LZF BDB Guard deliantra/Deliantra; do ( mkdir -p /root/src/$mod || exit 77 cd /root/src/$mod set -x pwd - rsync -avPessh 10.0.0.1:src/$mod/. . --del + rsync -avPessh 10.0.0.1:src/$mod/. . --del --exclude "*.tar.gz" --delete-excluded $PERL/bin/perl Makefile.PL pango.rc echo "pango.rc;root/pango.rc" @@ -60,16 +107,8 @@ ) 5>pango.modules echo "pango.modules;root/pango.modules" - for lib in \ - db-4.6 \ - glib-2.0.0 gobject-2.0.0 gmodule-2.0.0 \ - pango-1.0.0 pangoft2-1.0.0 \ - SDL-1.2.0 SDL_mixer-1.2.0 SDL_image-1.2.0 \ - vorbisfile vorbis.0 ogg.0 \ - png12 jpeg.62 z.1 \ - fontconfig.1 expat.1 freetype.6 intl.8 iconv.2; - do - echo "/opt/local/lib/lib$lib.dylib;shlib/darwin-2level/lib$lib.dylib" + for lib in "${OPTLIBS[@]}"; do + echo "/opt/local/lib/lib$lib.dylib;shlib/darwin-multi-2level/lib$lib.dylib" done ) >addlist @@ -78,8 +117,6 @@ trap "rm -f addlist pango.rc pango.modules fonts.conf" 0 -cd /root/src/deliantra/Deliantra-Client - $PERL/bin/perl Makefile.PL make clean $PERL/bin/perl Makefile.PL @@ -144,7 +181,7 @@ NSAppleScriptEnabled NSHumanReadableCopyright - Deliantra MORPG Client - Copyright 2008 The Deliantra Team + Deliantra MORPG Client - Copyright 2008,2009 The Deliantra Team EOF