ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/misc/scripts/shell/build.sh
Revision: 1.10
Committed: Sat Mar 20 20:08:04 2004 UTC (20 years, 8 months ago) by tdb
Content type: application/x-sh
Branch: MAIN
Changes since 1.9: +22 -4 lines
Log Message:
Add function for building python distutils packages.
Add pystatgrab.
Minor fixes.

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