#!/bin/sh # perl-strip strips Time::HiRes to {use 5.006} which 5.10.1 cannot pasre, but 5.8 and 5.12 can # 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 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="" 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 --chmod=a+rwX $host:src/. || exit } osx105() { ssh osx105 "$1"; } linux32() { s32 bash -c "$1"; } linux64() { s64 bash -c "$1"; } windows() { ssh vm ". .setenv; $1"; } upd() { MAKE="$1"; shift PERL="$1"; shift echo "building on platform <$@>" "$@" ' if [ "'"$cpan"'" ]; then '"$PERL"' -MCPAN -e "CPAN::Shell->notest (install => @ARGV)" '"$cpan"' log 2>&1 || { cat log; exit 68; } fi 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 rm -rf blib '$PERL' Makefile.PL /dev/null 2>&1 '$MAKE' clean >/dev/null '$PERL' Makefile.PL log 2>&1 if { '$PERL' Makefile.PL && '$MAKE' install } >log 2>&1 /dev/null true done ' || touch errorflag } [ "$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 if rm errorflag 2>/dev/null; then echo prebuild error exit fi ############################################################################# # gather mkdir -p dist [ "$do_l32" -o "$do_l64" ] && util/build.linux [ "$do_osx" ] && util/build.osx [ "$do_win" ] && util/build.windows util/checkdiff --show