ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/misc/scripts/shell/build.sh
(Generate patch)

Comparing misc/scripts/shell/build.sh (file contents):
Revision 1.2 by tdb, Mon Mar 10 19:44:27 2003 UTC vs.
Revision 1.3 by tdb, Wed Mar 12 09:51:02 2003 UTC

# Line 6 | Line 6
6   #
7   # $Id$
8  
9 < # todo: ./configure on server pulls from net - make local?
10 <
9 > # base directory for staging
10   STAGING=/u1/i-scream/staging
11  
12 + # log everything :-)
13   LOG=$STAGING/build.log
14   exec > $LOG 2>&1
15   set -x
16  
17 + # various directories
18   CMSSOURCE=$STAGING/cms/source
19   BUILDS=$STAGING/builds
20 + DISTFILES=$STAGING/distfiles
21   CVSROOT=/u1/i-scream/cvsmirror
22   WEBSNAPSHOTS=/u1/i-scream/httpd/htdocs/snapshots
23 + LIBURL=http://www.i-scream.org.uk/downloads/lib
24  
25 + # standard process for an i-scream style build
26 + iscreambuild() {
27 +    SOURCEDIR=$1
28 +    DESTDIR=$2
29 +    BIN=$3
30 +    cd $SOURCEDIR
31 +    if [ "X$TAG" != "X" ]; then
32 +        cvs -d $CVSROOT update -dPr $TAG
33 +        cvs2cl --stdout --no-wrap -r -t -w -S -g "-d $CVSROOT" -g "-q" -l "-r::$TAG" > build/ChangeLog
34 +    fi
35 +    LIBRARIES=
36 +    eval `grep "LIBRARIES=" configure`
37 +    for LIB in $LIBRARIES; do
38 +        fetchlib $LIB
39 +        cp $DISTFILES/$LIB build/lib
40 +    done
41 +    ./configure
42 +    if [ "X$BIN" = "Xyes" ]; then
43 +        gnumake dist-bin dest=$DESTDIR CVSROOT=$CVSROOT
44 +        gnumake clean
45 +    fi
46 +    gnumake dist dest=$DESTDIR CVSROOT=$CVSROOT
47 + }
48 +
49 + # standard process for a gnu autoconf/automake/libtool style build
50 + gnubuild() {
51 +    SOURCEDIR=$1
52 +    DESTDIR=$2
53 +    LIBTOOL=$3
54 +    cd $SOURCEDIR
55 +    if [ "X$TAG" != "X" ]; then
56 +        cvs -d $CVSROOT update -dPr $TAG
57 +        cvs2cl --stdout --no-wrap -r -t -w -S -g "-d $CVSROOT" -g "-q" -l "-r::$TAG" > ChangeLog
58 +    fi
59 +    aclocal
60 +    autoheader
61 +    autoconf
62 +    if [ "X$LIBTOOL" = "Xyes" ]; then
63 +        libtoolize -c
64 +    fi
65 +    automake -a -c
66 +    ./configure
67 +    gnumake dist
68 +    TARBALL=`ls *.tar.gz`
69 +    mkdir -p $DESTDIR
70 +    cp $TARBALL $DESTDIR
71 +    gpg -abs --default-key=0x135D6B0A $DESTDIR/$TARBALL
72 + }
73 +
74 + # grab a required library off the web to maintain a local copy
75 + fetchlib() {
76 +    LIB=$1
77 +    if [ ! -f $DISTFILES/$LIB ]; then
78 +        wget -P $DISTFILES $LIBURL/$LIB
79 +    fi
80 +    if [ ! -f $DISTFILES/$LIB ]; then
81 +        echo Required library $LIB does not exist at $LIBURL
82 +        exit 1
83 +    fi
84 + }
85 +
86 + # Full set of programs to be built
87 + PROGS="server util corbaservices conient dbreporter rrdgraphing php winhost libstatgrab ihost"
88 +
89 + # Read command line args
90 + if [ "X$1" != "X" ]; then
91 +    PROGS=$1
92 + fi
93 + if [ "X$2" != "X" ]; then
94 +    TAG=$2
95 + fi
96 +
97   echo "+ Build started on `date`"
98  
99 + # remove any old files so we have a fresh start
100   echo "+ Cleaning up"
25
101   rm -Rf cms
102   rm -Rf $BUILDS/*
103  
104 + # pull the latest source from our local cvs
105   echo "+ Updating CVS"
30
106   cvs -d $CVSROOT checkout cms/source
107   cd $CMSSOURCE
108  
109 < echo "+ Building Server"
109 > # Build all listed programs
110 > for PROG in $PROGS; do
111 >    case $PROG in
112 >        server)
113 >            iscreambuild $CMSSOURCE/server $BUILDS/server yes
114 >            ;;
115 >        util)
116 >            iscreambuild $CMSSOURCE/util $BUILDS/util yes
117 >            ;;
118 >        corbaservices)
119 >            iscreambuild $CMSSOURCE/corbaservices $BUILDS/corbaservices yes
120 >            ;;
121 >        conient)
122 >            iscreambuild $CMSSOURCE/conient $BUILDS/conient yes
123 >            ;;
124 >        dbreporter)
125 >            iscreambuild $CMSSOURCE/reports/DBReporter $BUILDS/dbreporter yes
126 >            ;;
127 >        rrdgraphing)
128 >            iscreambuild $CMSSOURCE/reports/rrdgraphing $BUILDS/rrdgraphing no
129 >            ;;
130 >        php)
131 >            iscreambuild $CMSSOURCE/reports/php $BUILDS/php no
132 >            ;;
133 >        winhost)
134 >            iscreambuild $CMSSOURCE/host/winhost $BUILDS/winhost no
135 >            ;;
136 >        libstatgrab)
137 >            gnubuild $CMSSOURCE/libstatgrab $BUILDS/libstatgrab yes
138 >            ;;
139 >        ihost)
140 >            gnubuild $CMSSOURCE/host/ihost $BUILDS/ihost no
141 >            ;;
142 >    esac
143 > done
144  
145 < cd $CMSSOURCE/server
37 < ./configure
38 < gnumake dist-bin dest=$BUILDS/server
39 < gnumake clean
40 < gnumake dist dest=$BUILDS/server
41 <
42 < echo "+ Building Util Package"
43 <
44 < cd $CMSSOURCE/util
45 < ./configure
46 < gnumake dist-bin dest=$BUILDS/util
47 < gnumake clean
48 < gnumake dist dest=$BUILDS/util
49 <
50 < echo "+ Building Corba Services Package"
51 <
52 < cd $CMSSOURCE/corbaservices
53 < ./configure
54 < gnumake dist-bin dest=$BUILDS/corbaservices
55 < gnumake clean
56 < gnumake dist dest=$BUILDS/corbaservices
57 <
58 < echo "+ Building Conient Package"
59 <
60 < cd $CMSSOURCE/conient
61 < ./configure
62 < gnumake dist-bin dest=$BUILDS/conient
63 < gnumake clean
64 < gnumake dist dest=$BUILDS/conient
65 <
66 < echo "+ Building DBReporter Package"
67 <
68 < cd $CMSSOURCE/reports/DBReporter
69 < ./configure
70 < gnumake dist-bin dest=$BUILDS/dbreporter
71 < gnumake clean
72 < gnumake dist dest=$BUILDS/dbreporter
73 <
74 < echo "+ Building RRD Graphing Package"
75 <
76 < cd $CMSSOURCE/reports/rrdgraphing
77 < ./configure
78 < gnumake dist dest=$BUILDS/rrdgraphing
79 <
80 < echo "+ Building PHP Pages Package"
81 <
82 < cd $CMSSOURCE/reports/php
83 < ./configure
84 < gnumake dist dest=$BUILDS/php
85 <
86 < echo "+ Building Winhost Package"
87 <
88 < cd $CMSSOURCE/host/winhost
89 < ./configure
90 < gnumake dist dest=$BUILDS/winhost
91 <
92 < echo "+ Making libstatgrab"
93 <
94 < cd $CMSSOURCE/libstatgrab
95 < aclocal
96 < autoheader
97 < autoconf
98 < libtoolize -c
99 < automake -a -c
100 < ./configure
101 < gnumake dist
102 < LIBSTATGRAB=`ls libstatgrab-*.tar.gz`
103 < mkdir -p $BUILDS/libstatgrab
104 < cp $LIBSTATGRAB $BUILDS/libstatgrab
105 < gpg -abs --default-key=0x135D6B0A $BUILDS/libstatgrab/$LIBSTATGRAB
106 <
107 < echo "+ Making ihost"
108 <
109 < cd $CMSSOURCE/host/ihost
110 < aclocal
111 < autoheader
112 < autoconf
113 < automake -a -c
114 < ./configure
115 < gnumake dist
116 < IHOST=`ls ihost-*.tar.gz`
117 < mkdir -p $BUILDS/ihost
118 < cp $IHOST $BUILDS/ihost
119 < gpg -abs --default-key=0x135D6B0A $BUILDS/ihost/$IHOST
120 <
145 > # sync builds to the web tree
146   echo "+ Copying to snapshots web tree"
147 <
123 < cp -R $BUILDS/* $WEBSNAPSHOTS
147 > echo rsync -rlpogtxHv $BUILDS/. $WEBSNAPSHOTS
148  
149   echo "+ Done"
150  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines