ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/util/build
Revision: 1.16
Committed: Fri Jan 27 23:13:38 2012 UTC (12 years, 3 months ago) by root
Branch: MAIN
CVS Tags: HEAD
Changes since 1.15: +13 -2 lines
Log Message:
*** empty log message ***

File Contents

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