2021-01-25 09:51:51 -06:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
PHASES=(${@:-CONFIGURE MAKE INSTALL CHECK DISTCHECK})
|
|
|
|
COMPILER="${COMPILER:?}"
|
2021-01-29 12:00:56 -06:00
|
|
|
COMPILER_VERSION="${COMPILER_VERSION}"
|
2021-01-26 05:39:22 -06:00
|
|
|
|
|
|
|
if [[ "$COMPILER" == clang ]]; then
|
2021-01-29 12:00:56 -06:00
|
|
|
CC="clang${COMPILER_VERSION:+-$COMPILER_VERSION}"
|
|
|
|
CXX="clang++${COMPILER_VERSION:+-$COMPILER_VERSION}"
|
2021-01-26 05:39:22 -06:00
|
|
|
elif [[ "$COMPILER" == gcc ]]; then
|
2021-01-29 12:00:56 -06:00
|
|
|
CC="gcc${COMPILER_VERSION:+-$COMPILER_VERSION}"
|
|
|
|
CXX="g++${COMPILER_VERSION:+-$COMPILER_VERSION}"
|
2021-01-26 05:39:22 -06:00
|
|
|
fi
|
2021-01-25 09:51:51 -06:00
|
|
|
|
|
|
|
set -ex
|
|
|
|
|
2021-01-26 05:39:22 -06:00
|
|
|
export CC="$CC"
|
|
|
|
export CXX="$CXX"
|
|
|
|
|
2021-01-25 09:51:51 -06:00
|
|
|
for phase in "${PHASES[@]}"; do
|
|
|
|
case $phase in
|
|
|
|
CONFIGURE)
|
2021-01-25 10:32:17 -06:00
|
|
|
opts="--disable-use-tty-group \
|
2021-01-25 09:51:51 -06:00
|
|
|
--disable-makeinstall-chown \
|
|
|
|
--enable-all-programs \
|
|
|
|
--enable-asan \
|
|
|
|
--enable-ubsan \
|
2021-01-25 10:32:17 -06:00
|
|
|
--without-python \
|
2021-01-25 09:51:51 -06:00
|
|
|
--enable-werror"
|
|
|
|
|
2021-01-29 12:00:56 -06:00
|
|
|
if [[ "$COMPILER" == clang* ]]; then
|
2021-01-25 09:51:51 -06:00
|
|
|
opts="$opts --enable-fuzzing-engine"
|
|
|
|
fi
|
|
|
|
|
|
|
|
sudo -E git clean -xdf
|
|
|
|
|
|
|
|
./autogen.sh
|
2021-01-26 04:56:33 -06:00
|
|
|
CC=$CC CXX=$CXX ./configure $opts
|
2021-01-25 09:51:51 -06:00
|
|
|
;;
|
|
|
|
MAKE)
|
2021-01-26 02:44:44 -06:00
|
|
|
make -j
|
|
|
|
make -j check-programs
|
2021-01-25 09:51:51 -06:00
|
|
|
;;
|
|
|
|
INSTALL)
|
|
|
|
make install DESTDIR=/tmp/dest
|
|
|
|
;;
|
|
|
|
CHECK)
|
2021-01-25 10:32:17 -06:00
|
|
|
./tests/run.sh --show-diff
|
2021-01-25 09:51:51 -06:00
|
|
|
;;
|
|
|
|
DISTCHECK)
|
|
|
|
make distcheck
|
|
|
|
;;
|
|
|
|
|
|
|
|
*)
|
|
|
|
echo >&2 "Unknown phase '$phase'"
|
|
|
|
exit 1
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
|