minor optimizations
[util-vserver.git] / util-vserver / build-all
1 #! /bin/sh
2
3 # Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
4 #  
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; version 2 of the License.
8 #  
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13 #  
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18 set -e
19
20 confflags="-C --enable-maintainer-mode --prefix=/usr --sysconfdir=/etc --localstatedir=/var"
21 configure="`pwd`/configure $confflags"
22 make=eval\ "${CLEAN:+make -j2 silent.clean}${CLEAN:-:}; \
23             echo -e \"== executing 'make all'...\" && \
24             make -j2 ${SILENT:+-s silent.}all && \
25             echo -e \"\n== executing 'make check'...\" && \
26             make -j2 ${SILENT:+-s silent.}check"
27
28 LANG=C
29
30 ## Usage: xtermTitle <title>
31 function xtermTitle
32 {
33     tty -s || return 0
34     echo -ne "\e]0;$@\007"
35 }
36
37 ## Usage: operate <dir> <configure-opts>*
38 function operate()
39 {
40     d=$1
41     shift
42     
43     echo  "******************"
44     echo $"** Operating in directory '$d'..."
45     xtermTitle "Operating in directory '$d'... ($@)"
46     
47     mkdir -p $d && cd $d
48
49     test -e Makefile || $configure "$@"
50     $make
51     cd -
52 }
53
54 case "$1" in
55     dist)
56         test -e Makefile || ./configure $confflags
57         $make
58         exit
59         ;;
60     debian-woody|debian-sarge|fc-1-90|fc-1|fc-2)
61         cat util-vserver-"$2".tar.bz2 | \
62             ssh $1 "cd /tmp && rm -rf /tmp/util-vserver-* && \
63                     tar xjf - && cd util-vserver-$2 && \
64                     export PATH=/usr/lib/ccache:/usr/lib/ccache/bin:\$PATH && \
65                         ./configure && \
66                     make ${SILENT:+-s silent.}all && \
67                     echo -e '\n\n\n' &&
68                     make ${SILENT:+-s silent.}check"
69         exit
70         ;;
71     *)  test -z "$1" || {
72             echo $"Unknown option '$1'" >&2
73             exit 1
74         }
75 esac
76
77 test -d "Build" || {
78     d=$(mktemp -d /tmp/build-ensc.XXXXXX)
79     rm -f Build
80     ln -sf $d Build
81 }
82
83 operate Build/diet-noopt   CFLAGS='-O0 -g3' CXXFLAGS='-O0 -g3'
84 operate Build/diet-opt     --enable-release
85 operate Build/nodiet-noopt --disable-dietlibc CFLAGS='-O0 -g3' CXXFLAGS='-O0 -g3' 
86 operate Build/nodiet-opt   --enable-release --disable-dietlibc
87 operate Build/gcc32-opt    --enable-release --disable-dietlibc CC='ccache gcc32'  CXX='ccache g++'
88 operate Build/gcc35-opt    --enable-release --disable-dietlibc CC='ccache gcc35'  CXX='ccache g++35'