mirror of
https://github.com/kdave/btrfs-progs
synced 2025-01-05 21:19:33 +00:00
43f18c6776
Building 32bit binaries on 64bit hosts is tedious due to all the required libraries with the right target, also the static versions. Limit the build only to the native arch. Signed-off-by: David Sterba <dsterba@suse.com>
119 lines
1.7 KiB
Bash
Executable File
119 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
# Test various compilation options:
|
|
# - native arch
|
|
# - dynamic, static
|
|
# - various configure options
|
|
#
|
|
# Arguments: anything will be passed to 'make', eg. define CC, D, V
|
|
#
|
|
# Requirements for full coverage:
|
|
# - static version of all libs
|
|
|
|
make=make
|
|
opts="-j16 $@"
|
|
|
|
conf=
|
|
target=
|
|
|
|
die() {
|
|
echo "ERROR: $@"
|
|
exit 1
|
|
}
|
|
|
|
check_result() {
|
|
local ret
|
|
local str
|
|
|
|
ret=$1
|
|
|
|
str="RESULT of target($target) conf($conf): "
|
|
case $ret in
|
|
0) str="$str OK";;
|
|
*) str="$str FAIL";;
|
|
esac
|
|
echo "$str"
|
|
verdict="$verdict
|
|
$str"
|
|
}
|
|
|
|
buildme() {
|
|
make clean-all
|
|
|
|
./autogen.sh && configure "$conf" || die "configure not working with: $@"
|
|
$make clean
|
|
$make $opts $target
|
|
check_result "$?"
|
|
echo "VERDICT: $verdict"
|
|
}
|
|
|
|
build_make_targets() {
|
|
# defaults
|
|
target=
|
|
buildme
|
|
# defaults, static
|
|
target=static
|
|
buildme
|
|
# defaults, busybox
|
|
target='btrfs.box btrfs.box.static'
|
|
buildme
|
|
# defaults, library
|
|
target="library-test"
|
|
buildme
|
|
# defaults, static library
|
|
target="library-test.static"
|
|
buildme
|
|
}
|
|
|
|
# main()
|
|
if ! [ -f configure.ac ]; then
|
|
echo "Please run me from the top directory"
|
|
exit 1
|
|
fi
|
|
|
|
verdict=
|
|
conf=
|
|
build_make_targets
|
|
|
|
conf='--disable-documentation'
|
|
build_make_targets
|
|
|
|
conf='--disable-backtrace'
|
|
build_make_targets
|
|
|
|
conf='--disable-convert'
|
|
build_make_targets
|
|
|
|
conf='--disable-zoned'
|
|
build_make_targets
|
|
|
|
conf='--disable-udev'
|
|
build_make_targets
|
|
|
|
conf='--disable-python'
|
|
build_make_targets
|
|
|
|
conf='--with-convert=ext2'
|
|
build_make_targets
|
|
|
|
conf='--with-convert=ext2,reiserfs'
|
|
build_make_targets
|
|
|
|
conf='--enable-zstd'
|
|
build_make_targets
|
|
|
|
# debugging builds, just the default targets
|
|
target='D=1'
|
|
buildme
|
|
|
|
target='D=asan'
|
|
buildme
|
|
|
|
target='D=tsan'
|
|
buildme
|
|
|
|
target='D=ubsan'
|
|
buildme
|
|
|
|
echo "---------------------------------------------------"
|
|
echo "$verdict"
|