diff options
Diffstat (limited to 'modules.d/dnbd3-rootfs/helper/build.inc')
-rw-r--r-- | modules.d/dnbd3-rootfs/helper/build.inc | 84 |
1 files changed, 31 insertions, 53 deletions
diff --git a/modules.d/dnbd3-rootfs/helper/build.inc b/modules.d/dnbd3-rootfs/helper/build.inc index d549b8d1..9fe05cbf 100644 --- a/modules.d/dnbd3-rootfs/helper/build.inc +++ b/modules.d/dnbd3-rootfs/helper/build.inc @@ -10,10 +10,10 @@ build_initialize_components() { _deps_base_dir="${_mainmoddir}/binaries" # We might want to move the "binaries" repos from the dnbd3-rootfs module to main repo one day... # TODO check for its existence using modinfo -k <kernel_version> - if [[ ! -f "${_deps_base_dir}/dnbd3/build/dnbd3.ko" ]] || \ - [[ ! -f "${_deps_base_dir}/dnbd3/build/dnbd3-client" ]]; then + if [[ ! -f "${_deps_base_dir}/dnbd3/build/src/kernel/dnbd3/dnbd3.ko" ]] || \ + [[ ! -f "${_deps_base_dir}/dnbd3/build/src/client/dnbd3-client" ]]; then echo "Could not find dnbd3, building it..." - if ! CMAKE_FLAGS="-DKERNEL_DIR=${kernel_headers}" \ + if ! CMAKE_FLAGS="-DKERNEL_BUILD_DIR=${kernel_headers}" \ build_compile_dnbd3 "${_deps_base_dir}/dnbd3/"; then echo "Failed to build dnbd3." return 1 @@ -169,83 +169,61 @@ build_compile_dnbd3() { local __doc__=' Compiles dnbd3 kernel module and client. - Provides the following file: - "$1/build/dnbd3.ko" - "$1/build/dnbd3-client" - Examples: `build_compile_dnbd3 path/to/dnbd3/source/` Passing the kernel version to cmake: - `CMAKE_FLAGS="-DKERNEL_VERSION=4.14.6-openslx+" \ + `CMAKE_FLAGS="-DKERNEL_BUILD_DIR=<path_to_kernel_build_dir>" \ build_compile_dnbd3 path/to/dnbd3/source/` ' + [ -z "$1" ] && return 1 pushd "$1" - # NOTE: The generic way would be: "./build.sh" but this tries to build - # more than we really need and takes more time. - mkdir --parents build - cd build - # Inject CMAKE_FLAGS as a way to control how cmake is called, - # e.g. to pass the kernel version - cmake ${CMAKE_FLAGS} \ - -DBUILD_FUSE_CLIENT=OFF \ - -DBUILD_KERNEL_MODULE=ON \ - -DBUILD_SERVER=OFF \ - -DBUILD_STRESSTEST=OFF \ - ../ - make -j dnbd3 dnbd3-client + ( + mkdir --parents build + cd build + # Inject CMAKE_FLAGS as a way to control how cmake is called, + # e.g. to pass the kernel version + cmake ${CMAKE_FLAGS} \ + -DDNBD3_KERNEL_MODULE=ON \ + -DDNBD3_CLIENT_FUSE=OFF \ + -DDNBD3_SERVER=OFF \ + -DDNBD3_SERVER_FUSE=OFF \ + .. + make -j + ) local ret=$? popd return $ret } build_clean_dnbd3() { - local __doc__='Clean the build of `build_compile_dnbd3`.' - rm --recursive --force "$1/build" - return $? + [ -z "$1" ] && return 1 + rm -rf "$1/build" } build_compile_xloop() { + [ -z "$1" ] && return 1 pushd "$1" - # https://lab.ks.uni-freiburg.de/projects/kernel-qcow2/wiki if [ -z "$kernel_headers" ]; then echo "Kernel header directory not set, ignoring." return 1 fi - make \ - KDIR="$kernel_headers" \ - CONFIG_BLK_DEV_LOOP=m \ - CONFIG_BLK_DEV_LOOP_FILE_FMT_RAW=m \ - CONFIG_BLK_DEV_LOOP_FILE_FMT_QCOW=m - local ret=$? - popd - return $ret -} -build_clean_xloop() { - pushd "$1" - make clean - local ret=$? - popd - return $ret -} -build_compile_xlosetup() { - pushd "$1" ( set -o errexit - ./autogen.sh - ./configure - make -j losetup - gcc -I./libsmartcols/src -O2 -o .libs/losetup sys-utils/losetup-losetup.o .libs/libcommon.a .libs/libsmartcols.a + mkdir -p build + cd build + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DKERNEL_BUILD_DIR="$kernel_headers" \ + .. + make -j ) local ret=$? popd return $ret } -build_clean_xlosetup() { - pushd "$1" - make clean - local ret=$? - popd - return $ret +build_clean_xloop() { + [ -z "$1" ] && return 1 + rm -rf "$1/build" } build_compile_systemd_preserve_process_marker() { local __doc__=' |