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.1 by tdb, Sun Feb 16 18:53:50 2003 UTC vs.
Revision 1.11 by tdb, Sat Mar 20 22:56:38 2004 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 +    else
35 +        cvs2cl --stdout --no-wrap -r -t -w -S -g "-d $CVSROOT" -g "-q" > build/ChangeLog
36 +    fi
37 +    LIBRARIES=eval `grep "LIBRARIES=" configure`
38 +    for LIB in $LIBRARIES; do
39 +        fetchlib $LIB
40 +        cp $DISTFILES/$LIB build/lib
41 +    done
42 +    ./configure
43 +    if [ "X$BIN" = "Xyes" ]; then
44 +        gnumake dist-bin dest=$DESTDIR CVSROOT=$CVSROOT
45 +        gnumake clean
46 +    fi
47 +    gnumake dist dest=$DESTDIR CVSROOT=$CVSROOT
48 + }
49 +
50 + # standard process for a gnu autoconf/automake/libtool style build
51 + gnubuild() {
52 +    SOURCEDIR=$1
53 +    DESTDIR=$2
54 +    LIBTOOL=$3
55 +    CONFIGUREARGS=$4
56 +    cd $SOURCEDIR
57 +    if [ "X$TAG" != "X" ]; then
58 +        cvs -d $CVSROOT update -dPr $TAG
59 +        cvs2cl --stdout --no-wrap -r -t -w -S -g "-d $CVSROOT" -g "-q" -l "-r::$TAG" > ChangeLog
60 +    else
61 +        cvs2cl --stdout --no-wrap -r -t -w -S -g "-d $CVSROOT" -g "-q" > ChangeLog
62 +    fi
63 +    aclocal
64 +    autoheader
65 +    autoconf
66 +    if [ "X$LIBTOOL" = "Xyes" ]; then
67 +        libtoolize -c
68 +    fi
69 +    automake -a -c
70 +    ./configure $CONFIGUREARGS
71 +    gnumake dist
72 +    TARBALL=`ls *.tar.gz`
73 +    mkdir -p $DESTDIR
74 +    cp $TARBALL $DESTDIR
75 +    gpg -abs --default-key=0x135D6B0A $DESTDIR/$TARBALL
76 + }
77 +
78 + # standard process for a python distutils build
79 + pydistbuild() {
80 +    SOURCEDIR=$1
81 +    DESTDIR=$2
82 +    cd $SOURCEDIR
83 +    if [ "X$TAG" != "X" ]; then
84 +        cvs -d $CVSROOT update -dPr $TAG
85 +        cvs2cl --stdout --no-wrap -r -t -w -S -g "-d $CVSROOT" -g "-q" -l "-r::$TAG" > ChangeLog
86 +    else
87 +        cvs2cl --stdout --no-wrap -r -t -w -S -g "-d $CVSROOT" -g "-q" > ChangeLog
88 +    fi
89 +    python setup.py sdist
90 +    TARBALL=`ls dist/*.tar.gz`
91 +    mkdir -p $DESTDIR
92 +    cp $TARBALL $DESTDIR
93 +    gpg -abs --default-key=0x135D6B0A $DESTDIR/`basename $TARBALL`
94 + }
95 +
96 + # grab a required library off the web to maintain a local copy
97 + fetchlib() {
98 +    LIB=$1
99 +    if [ ! -f $DISTFILES/$LIB ]; then
100 +        wget -P $DISTFILES $LIBURL/$LIB
101 +    fi
102 +    if [ ! -f $DISTFILES/$LIB ]; then
103 +        echo Required library $LIB does not exist at $LIBURL
104 +        exit 1
105 +    fi
106 + }
107 +
108 + # Full set of programs to be built
109 + PROGS="server util corbaservices conient dbreporter rrdgraphing php winhost libstatgrab ihost"
110 +
111 + # Read command line args
112 + if [ "X$1" != "X" ]; then
113 +    PROGS=$1
114 + fi
115 + if [ "X$2" != "X" ]; then
116 +    TAG=$2
117 + fi
118 +
119   echo "+ Build started on `date`"
120  
121 + # remove any old files so we have a fresh start
122   echo "+ Cleaning up"
25
123   rm -Rf cms
124   rm -Rf $BUILDS/*
125  
126 < echo "+ Updating CVS"
126 > # make sure our local cvs is up-to-date
127 > /usr/local/packages/cvsup/bin/cvsup -L 2 /u1/i-scream/cvsup/supfile
128  
129 + # pull the latest source from our local cvs
130 + echo "+ Updating CVS"
131   cvs -d $CVSROOT checkout cms/source
132   cd $CMSSOURCE
133  
134 < echo "+ Building Server"
134 > # Build all listed programs
135 > for PROG in $PROGS; do
136 >    case $PROG in
137 >        server)
138 >            iscreambuild $CMSSOURCE/server $BUILDS/server yes
139 >            ;;
140 >        util)
141 >            iscreambuild $CMSSOURCE/util $BUILDS/util yes
142 >            ;;
143 >        corbaservices)
144 >            iscreambuild $CMSSOURCE/corbaservices $BUILDS/corbaservices yes
145 >            ;;
146 >        conient)
147 >            iscreambuild $CMSSOURCE/conient $BUILDS/conient yes
148 >            ;;
149 >        rrdgraphing)
150 >            iscreambuild $CMSSOURCE/reports/rrdgraphing $BUILDS/rrdgraphing no
151 >            ;;
152 >        php)
153 >            iscreambuild $CMSSOURCE/reports/php $BUILDS/php no
154 >            ;;
155 >        libstatgrab)
156 >            gnubuild $CMSSOURCE/libstatgrab $BUILDS/libstatgrab yes
157 >            ;;
158 >        ihost)
159 >            gnubuild $CMSSOURCE/ihost $BUILDS/ihost no --with-libstatgrab-prefix=/usr/local/packages/libstatgrab
160 >            ;;
161 >        libukcprog)
162 >            gnubuild $CMSSOURCE/libukcprog $BUILDS/libukcprog yes
163 >            ;;
164 >        idar)
165 >            gnubuild $CMSSOURCE/idar $BUILDS/idar no --with-curses-prefix=/usr/local/packages/ncurses
166 >            ;;
167 >        pystatgrab)
168 >            pydistbuild $CMSSOURCE/pystatgrab $BUILDS/pystatgrab
169 >            ;;
170 >    esac
171 > done
172  
173 < 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 ihost"
93 <
94 < cd $CMSSOURCE/host/ihost
95 < aclocal
96 < autoheader
97 < autoconf
98 < automake -a -c
99 < ./configure
100 < gnumake dist
101 < IHOST=`ls ihost-*.tar.gz`
102 < mkdir -p $BUILDS/ihost
103 < cp $IHOST $BUILDS/ihost
104 < gpg -abs --default-key=0x135D6B0A $BUILDS/ihost/$IHOST
105 <
173 > # sync builds to the web tree
174   echo "+ Copying to snapshots web tree"
175 <
108 < cp -R $BUILDS/* $WEBSNAPSHOTS
175 > rsync -rlpogtxHv $BUILDS/. $WEBSNAPSHOTS
176  
177   echo "+ Done"
178  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines