ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/misc/scripts/shell/build.sh
Revision: 1.6
Committed: Sat Mar 29 16:30:37 2003 UTC (21 years, 8 months ago) by tdb
Content type: application/x-sh
Branch: MAIN
Changes since 1.5: +4 -1 lines
Log Message:
libukcprog is now a seperate package. I doubt this will be much use to
anyone other than us, but I see no reason why we can't package it up
and distribute it. Obviously we can't attach the GPL to this, as we
don't own it.

File Contents

# User Rev Content
1 tdb 1.1 #!/bin/sh
2    
3     # Build script
4     # builds new-style dists from cvs source, and puts them
5     # in a single location for download (eg. snapshots)
6     #
7 tdb 1.6 # $Id: build.sh,v 1.5 2003/03/28 20:06:53 tdb Exp $
8 tdb 1.1
9 tdb 1.3 # base directory for staging
10 tdb 1.1 STAGING=/u1/i-scream/staging
11    
12 tdb 1.3 # log everything :-)
13 tdb 1.1 LOG=$STAGING/build.log
14     exec > $LOG 2>&1
15     set -x
16    
17 tdb 1.3 # various directories
18 tdb 1.1 CMSSOURCE=$STAGING/cms/source
19     BUILDS=$STAGING/builds
20 tdb 1.3 DISTFILES=$STAGING/distfiles
21 tdb 1.1 CVSROOT=/u1/i-scream/cvsmirror
22     WEBSNAPSHOTS=/u1/i-scream/httpd/htdocs/snapshots
23 tdb 1.3 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 tdb 1.1
97     echo "+ Build started on `date`"
98    
99 tdb 1.3 # remove any old files so we have a fresh start
100 tdb 1.1 echo "+ Cleaning up"
101     rm -Rf cms
102     rm -Rf $BUILDS/*
103    
104 tdb 1.3 # pull the latest source from our local cvs
105 tdb 1.1 echo "+ Updating CVS"
106     cvs -d $CVSROOT checkout cms/source
107     cd $CMSSOURCE
108    
109 tdb 1.3 # 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     rrdgraphing)
125     iscreambuild $CMSSOURCE/reports/rrdgraphing $BUILDS/rrdgraphing no
126     ;;
127     php)
128     iscreambuild $CMSSOURCE/reports/php $BUILDS/php no
129     ;;
130     libstatgrab)
131     gnubuild $CMSSOURCE/libstatgrab $BUILDS/libstatgrab yes
132     ;;
133     ihost)
134 tdb 1.5 gnubuild $CMSSOURCE/ihost $BUILDS/ihost no
135 tdb 1.6 ;;
136     libukcprog)
137     gnubuild $CMSSOURCE/libukcprog $BUILDS/libukcprog yes
138 tdb 1.3 ;;
139     esac
140     done
141 tdb 1.1
142 tdb 1.3 # sync builds to the web tree
143 tdb 1.1 echo "+ Copying to snapshots web tree"
144 tdb 1.4 rsync -rlpogtxHv $BUILDS/. $WEBSNAPSHOTS
145 tdb 1.1
146     echo "+ Done"
147    
148     echo "+ Build completed on `date`"