--- deliantra/Deliantra-Client/util/build 2012/01/26 20:11:14 1.14 +++ deliantra/Deliantra-Client/util/build 2012/01/27 01:43:03 1.15 @@ -4,25 +4,37 @@ # 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" - cpan="" + 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 Getopt::Long Perl-Strip Perl-LibExtractor Urlader" + mods="$mods IO-AIO AnyEvent-AIO AnyEvent-BDB Perl-Strip Perl-LibExtractor Urlader" mods="$mods deliantra/Deliantra deliantra/Deliantra-Client" - for host in vm osx105; do + 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 $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"; } @@ -34,7 +46,7 @@ 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 @@ -65,14 +77,14 @@ ' || exit } - ( ( upd make /usr/bin/perl linux64 ) >log.linux64 2>&1; cat log.linux64 ) & - ( ( upd make /opt/local/bin/perl osx105 ) >log.osx105 2>&1; cat log.osx105 ) & - ( ( upd nmake /c/perl/bin/perl windows ) >log.windows 2>&1; cat log.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 - ( ( upd make /usr/bin/perl linux32 ) >log.linux32 2>&1; cat log.linux32 ) & + [ "$do_l32" ] && ( ( upd make /usr/bin/perl linux32 ) >log.linux32 2>&1; cat log.linux32 ) & wait @@ -83,7 +95,7 @@ # 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