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