blob: 861ed3a8d59481f45551dad10d39d6bf50ec76be [file] [log] [blame]
#!/usr/bin/env bash
# This script expects to be invoked from the base fio directory.
set -eu
SCRIPT_DIR=$(dirname "$0")
# shellcheck disable=SC1091
. "${SCRIPT_DIR}/common.sh"
main() {
local extra_cflags="-Werror"
local configure_flags=()
set_ci_target_os
case "${CI_TARGET_BUILD}/${CI_TARGET_OS}" in
android*/*)
export UNAME=Android
if [ -z "${CI_TARGET_ARCH}" ]; then
echo "Error: CI_TARGET_ARCH has not been set"
return 1
fi
NDK=$PWD/android-ndk-r24/toolchains/llvm/prebuilt/linux-x86_64/bin
export PATH="${NDK}:${PATH}"
if [ "${CI_TARGET_BUILD}" = "android" ]; then
export LIBS="-landroid"
fi
CC=${NDK}/${CI_TARGET_ARCH}-clang
if [ ! -e "${CC}" ]; then
echo "Error: could not find ${CC}"
return 1
fi
;;
*/linux | */ubuntu)
case "${CI_TARGET_ARCH}" in
"x86_64")
configure_flags+=(
"--enable-cuda"
)
;;
esac
;;&
*/linux | */ubuntu | */debian | */fedora | */alma | */oracle | */rocky)
case "${CI_TARGET_ARCH}" in
"i686")
extra_cflags="${extra_cflags} -m32"
export LDFLAGS="-m32"
;;
"x86_64")
configure_flags+=(
"--enable-libiscsi"
"--enable-libnbd"
)
;;
esac
;;
*/windows)
configure_flags+=("--disable-native")
case "${CI_TARGET_ARCH}" in
"i686")
configure_flags+=("--build-32bit-win")
;;
"x86_64")
;;
esac
if [ "${CI_TARGET_BUILD}" = "windows-msys2-64" ]; then
configure_flags+=("--disable-tls")
fi
;;
esac
configure_flags+=(--extra-cflags="${extra_cflags}")
./configure "${configure_flags[@]}"
make -j "$(nproc 2>/dev/null || sysctl -n hw.logicalcpu)"
# macOS does not have nproc, so we have to use sysctl to obtain the number of
# logical CPUs.
}
main