ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/misc/scripts/shell/build.sh
Revision: 1.11
Committed: Sat Mar 20 22:56:38 2004 UTC (20 years, 7 months ago) by tdb
Content type: application/x-sh
Branch: MAIN
Changes since 1.10: +8 -2 lines
Log Message:
Always do cvs2cl.
pystatgrab installs in own dir.

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.11 # $Id: build.sh,v 1.10 2004/03/20 20:08:04 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 tdb 1.11 else
35     cvs2cl --stdout --no-wrap -r -t -w -S -g "-d $CVSROOT" -g "-q" > build/ChangeLog
36 tdb 1.3 fi
37 tdb 1.10 LIBRARIES=eval `grep "LIBRARIES=" configure`
38 tdb 1.3 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 tdb 1.8 CONFIGUREARGS=$4
56 tdb 1.3 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 tdb 1.11 else
61     cvs2cl --stdout --no-wrap -r -t -w -S -g "-d $CVSROOT" -g "-q" > ChangeLog
62 tdb 1.3 fi
63     aclocal
64     autoheader
65     autoconf
66     if [ "X$LIBTOOL" = "Xyes" ]; then
67     libtoolize -c
68     fi
69     automake -a -c
70 tdb 1.8 ./configure $CONFIGUREARGS
71 tdb 1.3 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 tdb 1.10 # 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 tdb 1.11 else
87     cvs2cl --stdout --no-wrap -r -t -w -S -g "-d $CVSROOT" -g "-q" > ChangeLog
88 tdb 1.10 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 tdb 1.3 # 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 tdb 1.1
119     echo "+ Build started on `date`"
120    
121 tdb 1.3 # remove any old files so we have a fresh start
122 tdb 1.1 echo "+ Cleaning up"
123     rm -Rf cms
124     rm -Rf $BUILDS/*
125    
126 tdb 1.8 # make sure our local cvs is up-to-date
127 tdb 1.9 /usr/local/packages/cvsup/bin/cvsup -L 2 /u1/i-scream/cvsup/supfile
128 tdb 1.8
129 tdb 1.3 # pull the latest source from our local cvs
130 tdb 1.1 echo "+ Updating CVS"
131     cvs -d $CVSROOT checkout cms/source
132     cd $CMSSOURCE
133    
134 tdb 1.3 # 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 tdb 1.10 gnubuild $CMSSOURCE/ihost $BUILDS/ihost no --with-libstatgrab-prefix=/usr/local/packages/libstatgrab
160 tdb 1.6 ;;
161     libukcprog)
162     gnubuild $CMSSOURCE/libukcprog $BUILDS/libukcprog yes
163 tdb 1.7 ;;
164     idar)
165 tdb 1.8 gnubuild $CMSSOURCE/idar $BUILDS/idar no --with-curses-prefix=/usr/local/packages/ncurses
166 tdb 1.10 ;;
167     pystatgrab)
168 tdb 1.11 pydistbuild $CMSSOURCE/pystatgrab $BUILDS/pystatgrab
169 tdb 1.3 ;;
170     esac
171     done
172 tdb 1.1
173 tdb 1.3 # sync builds to the web tree
174 tdb 1.1 echo "+ Copying to snapshots web tree"
175 tdb 1.4 rsync -rlpogtxHv $BUILDS/. $WEBSNAPSHOTS
176 tdb 1.1
177     echo "+ Done"
178    
179     echo "+ Build completed on `date`"