ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/misc/scripts/shell/build.sh
Revision: 1.9
Committed: Tue Feb 10 20:28:13 2004 UTC (20 years, 3 months ago) by tdb
Content type: application/x-sh
Branch: MAIN
Changes since 1.8: +2 -2 lines
Log Message:
Be more verbose with cvsup of repo.

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: build.sh,v 1.8 2003/04/10 12:47:02 tdb Exp $
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=
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 CONFIGUREARGS=$4
55 cd $SOURCEDIR
56 if [ "X$TAG" != "X" ]; then
57 cvs -d $CVSROOT update -dPr $TAG
58 cvs2cl --stdout --no-wrap -r -t -w -S -g "-d $CVSROOT" -g "-q" -l "-r::$TAG" > ChangeLog
59 fi
60 aclocal
61 autoheader
62 autoconf
63 if [ "X$LIBTOOL" = "Xyes" ]; then
64 libtoolize -c
65 fi
66 automake -a -c
67 ./configure $CONFIGUREARGS
68 gnumake dist
69 TARBALL=`ls *.tar.gz`
70 mkdir -p $DESTDIR
71 cp $TARBALL $DESTDIR
72 gpg -abs --default-key=0x135D6B0A $DESTDIR/$TARBALL
73 }
74
75 # grab a required library off the web to maintain a local copy
76 fetchlib() {
77 LIB=$1
78 if [ ! -f $DISTFILES/$LIB ]; then
79 wget -P $DISTFILES $LIBURL/$LIB
80 fi
81 if [ ! -f $DISTFILES/$LIB ]; then
82 echo Required library $LIB does not exist at $LIBURL
83 exit 1
84 fi
85 }
86
87 # Full set of programs to be built
88 PROGS="server util corbaservices conient dbreporter rrdgraphing php winhost libstatgrab ihost"
89
90 # Read command line args
91 if [ "X$1" != "X" ]; then
92 PROGS=$1
93 fi
94 if [ "X$2" != "X" ]; then
95 TAG=$2
96 fi
97
98 echo "+ Build started on `date`"
99
100 # remove any old files so we have a fresh start
101 echo "+ Cleaning up"
102 rm -Rf cms
103 rm -Rf $BUILDS/*
104
105 # make sure our local cvs is up-to-date
106 /usr/local/packages/cvsup/bin/cvsup -L 2 /u1/i-scream/cvsup/supfile
107
108 # pull the latest source from our local cvs
109 echo "+ Updating CVS"
110 cvs -d $CVSROOT checkout cms/source
111 cd $CMSSOURCE
112
113 # Build all listed programs
114 for PROG in $PROGS; do
115 case $PROG in
116 server)
117 iscreambuild $CMSSOURCE/server $BUILDS/server yes
118 ;;
119 util)
120 iscreambuild $CMSSOURCE/util $BUILDS/util yes
121 ;;
122 corbaservices)
123 iscreambuild $CMSSOURCE/corbaservices $BUILDS/corbaservices yes
124 ;;
125 conient)
126 iscreambuild $CMSSOURCE/conient $BUILDS/conient yes
127 ;;
128 rrdgraphing)
129 iscreambuild $CMSSOURCE/reports/rrdgraphing $BUILDS/rrdgraphing no
130 ;;
131 php)
132 iscreambuild $CMSSOURCE/reports/php $BUILDS/php no
133 ;;
134 libstatgrab)
135 gnubuild $CMSSOURCE/libstatgrab $BUILDS/libstatgrab yes
136 ;;
137 ihost)
138 gnubuild $CMSSOURCE/ihost $BUILDS/ihost no
139 ;;
140 libukcprog)
141 gnubuild $CMSSOURCE/libukcprog $BUILDS/libukcprog yes
142 ;;
143 idar)
144 gnubuild $CMSSOURCE/idar $BUILDS/idar no --with-curses-prefix=/usr/local/packages/ncurses
145 ;;
146 esac
147 done
148
149 # sync builds to the web tree
150 echo "+ Copying to snapshots web tree"
151 rsync -rlpogtxHv $BUILDS/. $WEBSNAPSHOTS
152
153 echo "+ Done"
154
155 echo "+ Build completed on `date`"