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, 3 months ago) by root
Branch: MAIN
Changes since 1.14: +26 -14 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 #!/bin/sh
2    
3 root 1.13 # 1. build
4     # 2. gendist
5     # 3. ota_publish
6    
7 root 1.15 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 root 1.2 #############################################################################
17     # copy and install modules
18    
19 root 1.5 if ! [ "$SKIP_INSTALL" ] ; then
20 root 1.15 cpan="Win32::Exe Pod::POM LWP PPI Getopt::Long"
21 root 1.12 mods="common-sense Guard JSON-XS AnyEvent EV BDB Coro Compress-LZF"
22 root 1.15 mods="$mods IO-AIO AnyEvent-AIO AnyEvent-BDB Perl-Strip Perl-LibExtractor Urlader"
23 root 1.12 mods="$mods deliantra/Deliantra deliantra/Deliantra-Client"
24 root 1.2
25 root 1.15 cpan=""
26    
27     copy_to() {
28     host="$1"; shift
29    
30 root 1.2 (
31 root 1.7 cd /root/src
32 root 1.2 cvsfind $mods
33     echo Urlader/liblzf/lzfP.h
34     echo Urlader/liblzf/lzf_c_best.c
35     echo Urlader/liblzf/lzf_d.c
36 root 1.15 ) | rsync --files-from=- -aessh /root/src --chmod=a+rwX $host:src/. || exit
37     }
38 root 1.2
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 root 1.15 [ "'"$cpan"'" ] && '"$PERL"' -MCPAN -e "CPAN::Shell->notest (install => @ARGV)" '"$cpan"' </dev/null >log 2>&1 || { cat log; exit 68; }
50 root 1.14 export EV_EVENTFD=0
51     export EV_INOTIFY=0
52     export EV_SIGNALFD=0
53 root 1.2 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 root 1.15 [ "$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 root 1.8
84     wait
85    
86 root 1.9 # can't run parallel to 64 bit
87 root 1.15 [ "$do_l32" ] && ( ( upd make /usr/bin/perl linux32 ) >log.linux32 2>&1; cat log.linux32 ) &
88 root 1.9
89     wait
90    
91 root 1.8 rm -f log.*
92 root 1.2 fi
93    
94     #############################################################################
95     # gather
96    
97 root 1.1 mkdir -p dist
98 root 1.15 [ "$do_l32" -o "$do_l64" ] && util/build.linux
99     [ "$do_osx" ] && util/build.osx
100     [ "$do_win" ] && util/build.windows
101 root 1.7