ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/util/build
Revision: 1.15
Committed: Fri Jan 27 01:43:03 2012 UTC (12 years, 4 months ago) by root
Branch: MAIN
Changes since 1.14: +26 -14 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 #!/bin/sh
2
3 # 1. build
4 # 2. gendist
5 # 3. ota_publish
6
7 if [ "$1" ]; then
8 eval "do_$1=1"
9 else
10 do_l32=1
11 do_l64=1
12 do_osx=1
13 do_win=1
14 fi
15
16 #############################################################################
17 # copy and install modules
18
19 if ! [ "$SKIP_INSTALL" ] ; then
20 cpan="Win32::Exe Pod::POM LWP PPI Getopt::Long"
21 mods="common-sense Guard JSON-XS AnyEvent EV BDB Coro Compress-LZF"
22 mods="$mods IO-AIO AnyEvent-AIO AnyEvent-BDB Perl-Strip Perl-LibExtractor Urlader"
23 mods="$mods deliantra/Deliantra deliantra/Deliantra-Client"
24
25 cpan=""
26
27 copy_to() {
28 host="$1"; shift
29
30 (
31 cd /root/src
32 cvsfind $mods
33 echo Urlader/liblzf/lzfP.h
34 echo Urlader/liblzf/lzf_c_best.c
35 echo Urlader/liblzf/lzf_d.c
36 ) | rsync --files-from=- -aessh /root/src --chmod=a+rwX $host:src/. || exit
37 }
38
39 osx105() { ssh osx105 "$1"; }
40 linux32() { s32 bash -c "$1"; }
41 linux64() { s64 bash -c "$1"; }
42 windows() { ssh vm ". .setenv; $1"; }
43
44 upd() {
45 MAKE="$1"; shift
46 PERL="$1"; shift
47 echo "building on platform <$@>"
48 "$@" '
49 [ "'"$cpan"'" ] && '"$PERL"' -MCPAN -e "CPAN::Shell->notest (install => @ARGV)" '"$cpan"' </dev/null >log 2>&1 || { cat log; exit 68; }
50 export EV_EVENTFD=0
51 export EV_INOTIFY=0
52 export EV_SIGNALFD=0
53 for mod in '"$mods"'; do
54 echo building $mod
55 cd /root/src/$mod || exit 69
56 rm -rf blib
57 '$PERL' Makefile.PL </dev/null >/dev/null 2>&1
58 '$MAKE' clean >/dev/null
59 '$PERL' Makefile.PL </dev/null >log 2>&1
60 if
61 {
62 '$PERL' Makefile.PL &&
63 '$MAKE' install
64 } >log 2>&1 </dev/null
65 then
66 : echo ok
67 else
68 echo
69 echo error while building $mod
70 cat log
71 exit 1
72 fi
73 rm -f log
74 '$MAKE' clean >/dev/null
75 true
76 done
77 ' || exit
78 }
79
80 [ "$do_l64" ] && ( ( upd make /usr/bin/perl linux64 ) >log.linux64 2>&1; cat log.linux64 ) &
81 [ "$do_osx" ] && ( copy_to osx105; ( upd make /opt/local/bin/perl osx105 ) >log.osx105 2>&1; cat log.osx105 ) &
82 [ "$do_win" ] && ( copy_to vm ; ( upd nmake /c/perl/bin/perl windows ) >log.windows 2>&1; cat log.windows ) &
83
84 wait
85
86 # can't run parallel to 64 bit
87 [ "$do_l32" ] && ( ( upd make /usr/bin/perl linux32 ) >log.linux32 2>&1; cat log.linux32 ) &
88
89 wait
90
91 rm -f log.*
92 fi
93
94 #############################################################################
95 # gather
96
97 mkdir -p dist
98 [ "$do_l32" -o "$do_l64" ] && util/build.linux
99 [ "$do_osx" ] && util/build.osx
100 [ "$do_win" ] && util/build.windows
101