diff options
author | Denis Ovsienko <denis@ovsienko.info> | 2021-07-22 00:22:19 +0100 |
---|---|---|
committer | Denis Ovsienko <denis@ovsienko.info> | 2021-07-22 00:31:45 +0100 |
commit | 21daf3d59f1705de935dfa31bfc3abe2b0df6ab6 (patch) | |
tree | d5392a3319de92106a3374df7cfaafc0635a9c86 /build_matrix.sh | |
parent | 0d1d99c1a4e0fba5173bc0d77e1e6ce86446262a (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-x | build_matrix.sh | 46 |
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 : |