NetworkManager/tools/test-build.sh
Thomas Haller d38e5c3b38 tools: add test script to build various configurations
Script to schedule out-of-tree builds
2016-11-24 15:59:27 +01:00

60 lines
1.4 KiB
Bash
Executable file

#!/bin/bash
set -e
die() {
echo "$@"
exit 1
}
if [[ "x$(LANG=C git clean -ndx)" != x ]]; then
die "The working directory is not clean. Refuse to run. Try \`git clean -dx -n\`"
fi
if [[ "x$(git status --porcelain)" != x ]]; then
die "The working directory has local changes. Refuse to run. Try \`git reset --hard\`"
fi
build_out_of_tree() {
local TARGET="$1"
local C="$2"
local M="$3"
(
git clean -fdx || return 1
NOCONFIGURE=x ./autogen.sh || return 1
mkdir -p x/y || return 1
cd x/y || return 1
../../configure $C $NMTST_CONFIGURE || return 1
make $TARGET $M $NMTST_MAKE || return 1
)
}
TARGETS=("$@")
if [ "${#TARGETS}" -lt 1 ]; then
TARGETS=(
src/NetworkManager
src/nm-iface-helper
src/dhcp/nm-dhcp-helper
dispatcher/nm-dispatcher
clients/nm-online
clients/cli/nmcli
clients/tui/nmtui
src/platform/tests/monitor
src/ndisc/tests/test-ndisc-linux
libnm-util/tests/test-libnm-linking
libnm-glib/libnm-glib-test
$(git grep -h '\.l\?a\>' Makefile.am | sed 's/[a-zA-Z.0-9_-/]\+/\n\0\n/g' | sort -u | grep '\.l\?a$')
)
fi
set -x
cd "$(dirname "$(readlink -f "$0")")/.."
IDX=($(seq 0 $((${#TARGETS[@]} - 1))))
IDX=($(printf '%s\n' "${IDX[@]}" | sort -R))
for idx in "${IDX[@]}"; do
TARGET="${TARGETS[$idx]}"
echo "### $idx: TARGET=$TARGET"
build_out_of_tree "$TARGET" "--enable-gtk-doc" "-j 5"
done