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, 2 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

# Content
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 # $Id$
8
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=eval `grep "LIBRARIES=" configure`
36 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 CONFIGUREARGS=$4
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 $CONFIGUREARGS
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 # 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 # 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
113 echo "+ Build started on `date`"
114
115 # remove any old files so we have a fresh start
116 echo "+ Cleaning up"
117 rm -Rf cms
118 rm -Rf $BUILDS/*
119
120 # make sure our local cvs is up-to-date
121 /usr/local/packages/cvsup/bin/cvsup -L 2 /u1/i-scream/cvsup/supfile
122
123 # pull the latest source from our local cvs
124 echo "+ Updating CVS"
125 cvs -d $CVSROOT checkout cms/source
126 cd $CMSSOURCE
127
128 # 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 gnubuild $CMSSOURCE/ihost $BUILDS/ihost no --with-libstatgrab-prefix=/usr/local/packages/libstatgrab
154 ;;
155 libukcprog)
156 gnubuild $CMSSOURCE/libukcprog $BUILDS/libukcprog yes
157 ;;
158 idar)
159 gnubuild $CMSSOURCE/idar $BUILDS/idar no --with-curses-prefix=/usr/local/packages/ncurses
160 ;;
161 pystatgrab)
162 pydistbuild $CMSSOURCE/pystatgrab $BUILDS/libstatgrab
163 ;;
164 esac
165 done
166
167 # sync builds to the web tree
168 echo "+ Copying to snapshots web tree"
169 rsync -rlpogtxHv $BUILDS/. $WEBSNAPSHOTS
170
171 echo "+ Done"
172
173 echo "+ Build completed on `date`"