diff options
Diffstat (limited to 'core/modules/dnbd3/module.build')
-rw-r--r-- | core/modules/dnbd3/module.build | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/core/modules/dnbd3/module.build b/core/modules/dnbd3/module.build index 8ebc1983..66c19abc 100644 --- a/core/modules/dnbd3/module.build +++ b/core/modules/dnbd3/module.build @@ -1,16 +1,39 @@ #!/bin/bash fetch_source() { + mkdir -p "src/kmod" autoclone + cp src/dnbd3/Kbuild.in src/dnbd3/src/*.{c,h} src/dnbd3/src/kernel/*.{c,h} src/kmod/ || perror "Could not copy kernel module source files" + cat > "src/kmod/Makefile" <<HEREEND +include \$(PWD)/Kbuild.in + +ifndef KDIR + KDIR = /lib/modules/\$(shell uname -r)/build +endif + +all: + make -C "\$(KDIR)" "M=\$(PWD)" modules + +clean: + make -C "\$(KDIR)" "M=\$(PWD)" clean +HEREEND } build() { + cd "${MODULE_WORK_DIR}/src/kmod" \ + || perror "Could not CD to standalone dnbd3 kmod dir" + make MODULE_NAME=dnbd3 KDIR="$KERNEL_HEADERS_DIR" \ + || perror "Could not compile kernel module" + mkdir -p "${MODULE_BUILD_DIR}/lib/modules/${TARGET_KERNEL_LONG}/kernel/drivers/block" \ + || perror "Could not create lib/modules/${TARGET_KERNEL_LONG}/kernel/drivers/block" mkdir -p "${MODULE_BUILD_DIR}/opt/openslx/bin" \ || perror "Could not create opt/openslx/bin" + cp "${MODULE_WORK_DIR}/src/kmod/dnbd3.ko" "${MODULE_BUILD_DIR}/lib/modules/${TARGET_KERNEL_LONG}/kernel/drivers/block/" \ + || perror "Could not copy dnbd3.ko" cd "${MODULE_BUILD_DIR}/opt/openslx/bin" \ || perror "Could not cd to build dir for client binary" cmake \ -DBUILD_FUSE_CLIENT=ON \ - -DBUILD_KERNEL_MODULE=OFF \ + -DBUILD_KERNEL_MODULE=ON \ -DBUILD_SERVER=ON \ -DBUILD_SERVER_FUSE=ON \ -DBUILD_STRESSTEST=OFF \ |