--- 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