]> git.proxmox.com Git - mirror_frr.git/blame - buildtest.sh
build/lib: Check for and include stdbool.h by default
[mirror_frr.git] / buildtest.sh
CommitLineData
f6295c29
DL
1#!/bin/bash
2# written 2012-2013 by David Lamparter, placed in Public Domain.
3#
4# builds some git commit of Quagga in some different configurations
5# usage: buildtest.sh [commit [configurations...]]
6
467ffeed 7basecfg="--prefix=/usr --enable-user=quagga --enable-group=quagga --enable-vty-group=quagga --enable-configfile-mask=0660 --enable-logfile-mask=0640 --enable-vtysh --sysconfdir=/etc/quagga --enable-exampledir=/etc/quagga/samples --localstatedir=/var/run/quagga --libdir=/usr/lib64/quagga --enable-ipv6 --enable-ripngd --enable-ospf6d --enable-rtadv --disable-static --enable-isisd --enable-multipath=0 --enable-pimd --enable-werror"
f6295c29
DL
8
9configs_base="gcc|$basecfg"
10
11configs_nov6="gcc|$basecfg"
12configs_nov6="${configs_nov6/enable-ipv6/disable-ipv6}"
13configs_nov6="${configs_nov6/enable-ospf6d/disable-ospf6d}"
14configs_nov6="${configs_nov6/enable-ripngd/disable-ripngd}"
f6295c29
DL
15
16configs_ext="gcc|$basecfg --enable-opaque-lsa --enable-ospf-te --enable-ospfclient --enable-isis-topology"
17configs_snmp="gcc|$basecfg --enable-opaque-lsa --enable-ospf-te --enable-ospfclient --enable-isis-topology --enable-snmp"
18configs_clang="clang|$basecfg --enable-opaque-lsa --enable-ospf-te --enable-ospfclient --enable-isis-topology"
19configs_icc="icc|$basecfg --enable-opaque-lsa --enable-ospf-te --enable-ospfclient --enable-isis-topology"
20
21defconfigs="base nov6 ext"
22net-snmp-config --version &> /dev/null && defconfigs="$defconfigs snmp"
23clang --version &> /dev/null && defconfigs="$defconfigs clang"
24icc --version &> /dev/null && defconfigs="$defconfigs icc"
25
26echo "enabled configurations: $defconfigs"
27
28cc_gcc="CC=gcc; export CC"
29cc_clang="CC=clang; export CC"
30cc_icc="CC=icc; export CC"
31
32###############################
33
34errfunc() {
35 echo "something went wrong! check $TEMP"
36 exit 1
37}
38
39set -e
40trap errfunc ERR
41
42COMMITREF="$1"
43COMMITISH="`git rev-list --max-count=1 ${COMMITREF:-HEAD}`"
44TEMP="`mktemp -t -d quaggabuild.XXXXXX`"
45BASE="`pwd`"
46CONFIGS="$2"
47
48echo using temporary directory: $TEMP
49echo git commit used:
50git --no-pager log -n 1 --pretty=oneline "$COMMITISH"
51
52cd "$TEMP"
53git clone "$BASE" "source"
54cd "source"
55git checkout -b build "$COMMITISH"
56git clean -d -f -x
57sh bootstrap.sh
58
59cd ..
60
61echo -e "\n\n\n\n\033[33;1mmaking dist tarball\033[m"
62
63mkdir build_dist
64cd build_dist
65../source/configure
66make distdir=sdist dist-gzip
67cd ..
68tar zxvf build_dist/sdist.tar.gz
69
70for cfg in ${CONFIGS:-$defconfigs}; do
71 echo -e "\n\n\n\n\033[33;1mbuilding configuration $cfg\033[m"
72 config="\${configs_$cfg}"
73 eval "config=$config"
74
75 cc="${config%%|*}"
76 args="${config#*|}"
77
78 ccset="\${cc_$cc}"
79 eval "ccset=$ccset"
80 eval "$ccset"
81
82 bdir="build_$cfg"
83 mkdir "$bdir"
84 cd "$bdir"
85 ../sdist/configure $args
86 make -j5
f281ab97 87 make check
f6295c29
DL
88 make DESTDIR="$TEMP/inst_$cfg" install
89 cd ..
90done
91
92echo -e "\n\n\n\neverything seems ok. you may now\n\trm -rf $TEMP"