ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/misc/scripts/shell/build.sh
(Generate patch)

Comparing misc/scripts/shell/build.sh (file contents):
Revision 1.2 by tdb, Mon Mar 10 19:44:27 2003 UTC vs.
Revision 1.8 by tdb, Thu Apr 10 12:47:02 2003 UTC

# Line 6 | Line 6
6   #
7   # $Id$
8  
9 < # todo: ./configure on server pulls from net - make local?
10 <
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"
25
102   rm -Rf cms
103   rm -Rf $BUILDS/*
104  
105 < echo "+ Updating CVS"
105 > # make sure our local cvs is up-to-date
106 > /usr/local/packages/cvsup/bin/cvsup -L 0 /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 < echo "+ Building Server"
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 < cd $CMSSOURCE/server
37 < ./configure
38 < gnumake dist-bin dest=$BUILDS/server
39 < gnumake clean
40 < gnumake dist dest=$BUILDS/server
41 <
42 < echo "+ Building Util Package"
43 <
44 < cd $CMSSOURCE/util
45 < ./configure
46 < gnumake dist-bin dest=$BUILDS/util
47 < gnumake clean
48 < gnumake dist dest=$BUILDS/util
49 <
50 < echo "+ Building Corba Services Package"
51 <
52 < cd $CMSSOURCE/corbaservices
53 < ./configure
54 < gnumake dist-bin dest=$BUILDS/corbaservices
55 < gnumake clean
56 < gnumake dist dest=$BUILDS/corbaservices
57 <
58 < echo "+ Building Conient Package"
59 <
60 < cd $CMSSOURCE/conient
61 < ./configure
62 < gnumake dist-bin dest=$BUILDS/conient
63 < gnumake clean
64 < gnumake dist dest=$BUILDS/conient
65 <
66 < echo "+ Building DBReporter Package"
67 <
68 < cd $CMSSOURCE/reports/DBReporter
69 < ./configure
70 < gnumake dist-bin dest=$BUILDS/dbreporter
71 < gnumake clean
72 < gnumake dist dest=$BUILDS/dbreporter
73 <
74 < echo "+ Building RRD Graphing Package"
75 <
76 < cd $CMSSOURCE/reports/rrdgraphing
77 < ./configure
78 < gnumake dist dest=$BUILDS/rrdgraphing
79 <
80 < echo "+ Building PHP Pages Package"
81 <
82 < cd $CMSSOURCE/reports/php
83 < ./configure
84 < gnumake dist dest=$BUILDS/php
85 <
86 < echo "+ Building Winhost Package"
87 <
88 < cd $CMSSOURCE/host/winhost
89 < ./configure
90 < gnumake dist dest=$BUILDS/winhost
91 <
92 < echo "+ Making libstatgrab"
93 <
94 < cd $CMSSOURCE/libstatgrab
95 < aclocal
96 < autoheader
97 < autoconf
98 < libtoolize -c
99 < automake -a -c
100 < ./configure
101 < gnumake dist
102 < LIBSTATGRAB=`ls libstatgrab-*.tar.gz`
103 < mkdir -p $BUILDS/libstatgrab
104 < cp $LIBSTATGRAB $BUILDS/libstatgrab
105 < gpg -abs --default-key=0x135D6B0A $BUILDS/libstatgrab/$LIBSTATGRAB
106 <
107 < echo "+ Making ihost"
108 <
109 < cd $CMSSOURCE/host/ihost
110 < aclocal
111 < autoheader
112 < autoconf
113 < automake -a -c
114 < ./configure
115 < gnumake dist
116 < IHOST=`ls ihost-*.tar.gz`
117 < mkdir -p $BUILDS/ihost
118 < cp $IHOST $BUILDS/ihost
119 < gpg -abs --default-key=0x135D6B0A $BUILDS/ihost/$IHOST
120 <
149 > # sync builds to the web tree
150   echo "+ Copying to snapshots web tree"
151 <
123 < cp -R $BUILDS/* $WEBSNAPSHOTS
151 > rsync -rlpogtxHv $BUILDS/. $WEBSNAPSHOTS
152  
153   echo "+ Done"
154  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines