--- deliantra/Deliantra-Client/util/build 2012/01/04 14:58:16 1.7 +++ deliantra/Deliantra-Client/util/build 2012/01/27 01:43:03 1.15 @@ -1,23 +1,40 @@ #!/bin/sh +# 1. build +# 2. gendist +# 3. ota_publish + +if [ "$1" ]; then + eval "do_$1=1" +else + do_l32=1 + do_l64=1 + do_osx=1 + do_win=1 +fi + ############################################################################# # copy and install modules if ! [ "$SKIP_INSTALL" ] ; then - cpan="Win32::Exe Pod::POM LWP" + cpan="Win32::Exe Pod::POM LWP PPI Getopt::Long" + mods="common-sense Guard JSON-XS AnyEvent EV BDB Coro Compress-LZF" + mods="$mods IO-AIO AnyEvent-AIO AnyEvent-BDB Perl-Strip Perl-LibExtractor Urlader" + mods="$mods deliantra/Deliantra deliantra/Deliantra-Client" + cpan="" - mods="common-sense Guard JSON-XS AnyEvent EV BDB Coro Compress-LZF IO-AIO Urlader deliantra/Deliantra deliantra/Deliantra-Client" - #mods="deliantra/Deliantra-Client" - for host in vm osx105; do + copy_to() { + host="$1"; shift + ( cd /root/src cvsfind $mods echo Urlader/liblzf/lzfP.h echo Urlader/liblzf/lzf_c_best.c echo Urlader/liblzf/lzf_d.c - ) | rsync --files-from=- -aessh /root/src $host:src/. || exit - done + ) | rsync --files-from=- -aessh /root/src --chmod=a+rwX $host:src/. || exit + } osx105() { ssh osx105 "$1"; } linux32() { s32 bash -c "$1"; } @@ -29,7 +46,10 @@ PERL="$1"; shift echo "building on platform <$@>" "$@" ' - cpan '"$cpan"' log 2>&1 || { cat log; exit 68; } + [ "'"$cpan"'" ] && '"$PERL"' -MCPAN -e "CPAN::Shell->notest (install => @ARGV)" '"$cpan"' log 2>&1 || { cat log; exit 68; } + export EV_EVENTFD=0 + export EV_INOTIFY=0 + export EV_SIGNALFD=0 for mod in '"$mods"'; do echo building $mod cd /root/src/$mod || exit 69 @@ -57,17 +77,25 @@ ' || exit } - upd make /usr/bin/perl linux64 - upd make /usr/bin/perl linux32 - upd make /opt/local/bin/perl osx105 - upd nmake /c/perl/bin/perl windows + [ "$do_l64" ] && ( ( upd make /usr/bin/perl linux64 ) >log.linux64 2>&1; cat log.linux64 ) & + [ "$do_osx" ] && ( copy_to osx105; ( upd make /opt/local/bin/perl osx105 ) >log.osx105 2>&1; cat log.osx105 ) & + [ "$do_win" ] && ( copy_to vm ; ( upd nmake /c/perl/bin/perl windows ) >log.windows 2>&1; cat log.windows ) & + + wait + + # can't run parallel to 64 bit + [ "$do_l32" ] && ( ( upd make /usr/bin/perl linux32 ) >log.linux32 2>&1; cat log.linux32 ) & + + wait + + rm -f log.* fi ############################################################################# # gather mkdir -p dist -util/build.linux -util/build.osx -util/build.windows +[ "$do_l32" -o "$do_l64" ] && util/build.linux +[ "$do_osx" ] && util/build.osx +[ "$do_win" ] && util/build.windows