aboutsummaryrefslogtreecommitdiff
path: root/build_matrix.sh
diff options
context:
space:
mode:
authorDenis Ovsienko <denis@ovsienko.info>2021-07-22 00:22:19 +0100
committerDenis Ovsienko <denis@ovsienko.info>2021-07-22 00:31:45 +0100
commit21daf3d59f1705de935dfa31bfc3abe2b0df6ab6 (patch)
treed5392a3319de92106a3374df7cfaafc0635a9c86 /build_matrix.sh
parent0d1d99c1a4e0fba5173bc0d77e1e6ce86446262a (diff)
CI: Port recent improvements from tcpslice. [skip appveyor]
Start using build_common.sh, make default assignments early and uniformly, use Solaris-compatible command substitution, install bc on linux-amd64. This implements initial support for AIX and Solaris in the libpcap build matrix scripts.
Diffstat (limited to 'build_matrix.sh')
-rwxr-xr-xbuild_matrix.sh46
1 files changed, 22 insertions, 24 deletions
diff --git a/build_matrix.sh b/build_matrix.sh
index dbaec9b6..c2c9e3c6 100755
--- a/build_matrix.sh
+++ b/build_matrix.sh
@@ -1,54 +1,52 @@
#!/bin/sh -e
# This script executes the matrix loops, exclude tests and cleaning.
-# The matrix can be configured with environment variables MATRIX_CC,
-# MATRIX_CMAKE and MATRIX_REMOTE (default: MATRIX_CC='gcc clang',
-# MATRIX_CMAKE='no yes', MATRIX_REMOTE='no yes').
+# The matrix can be configured with the following environment variables: MATRIX_CC,
+# MATRIX_CMAKE and MATRIX_REMOTE.
+: "${MATRIX_CC:=gcc clang}"
+: "${MATRIX_CMAKE:=no yes}"
+: "${MATRIX_REMOTE:=no yes}"
# It calls the build.sh script which runs one build with setup environment
-# variables : CC, CMAKE and REMOTE (default: CC=gcc, CMAKE=no, REMOTE=no).
+# variables: CC, CMAKE and REMOTE.
-uname -a
-date
+. ./build_common.sh
+print_sysinfo
# Install directory prefix
if [ -z "$PREFIX" ]; then
- PREFIX=$(mktemp -d -t libpcap_build_matrix_XXXXXXXX)
+ # shellcheck disable=SC2006
+ PREFIX=`mktempdir libpcap_build_matrix`
echo "PREFIX set to '$PREFIX'"
export PREFIX
fi
COUNT=0
-# Display text in magenta
-echo_magenta() {
- printf '\033[35;1m' # ANSI magenta
- echo "$@"
- printf '\033[0m' # ANSI reset
-}
-
touch .devel configure
-for CC in ${MATRIX_CC:-gcc clang}; do
+for CC in $MATRIX_CC; do
export CC
# Exclude gcc on macOS (it is just an alias for clang).
- if [ "$CC" = gcc ] && [ "$(uname -s)" = Darwin ]; then
+ # shellcheck disable=SC2006
+ if [ "$CC" = gcc ] && [ "`uname -s`" = Darwin ]; then
echo '(skipped)'
continue
fi
- for CMAKE in ${MATRIX_CMAKE:-no yes}; do
+ for CMAKE in $MATRIX_CMAKE; do
export CMAKE
- for REMOTE in ${MATRIX_REMOTE:-no yes}; do
+ for REMOTE in $MATRIX_REMOTE; do
export REMOTE
- COUNT=$((COUNT+1))
+ # shellcheck disable=SC2006
+ COUNT=`increment $COUNT`
echo_magenta "===== SETUP $COUNT: CC=$CC CMAKE=$CMAKE REMOTE=$REMOTE ====="
# Run one build with setup environment variables: CC, CMAKE and REMOTE
- ./build.sh
+ run_after_echo ./build.sh
echo 'Cleaning...'
if [ "$CMAKE" = yes ]; then rm -rf build; else make distclean; fi
- rm -rf "${PREFIX:?}"/*
- git status -suall
+ purge_directory "$PREFIX"
+ run_after_echo git status -suall
# Cancel changes in configure
- git checkout configure
+ run_after_echo git checkout configure
done
done
done
-rm -rf "$PREFIX"
+run_after_echo rm -rf "$PREFIX"
echo_magenta "Tested setup count: $COUNT"
# vi: set tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab autoindent :