summaryrefslogtreecommitdiffstats
path: root/core/modules/dnbd3/module.build
diff options
context:
space:
mode:
Diffstat (limited to 'core/modules/dnbd3/module.build')
-rw-r--r--core/modules/dnbd3/module.build25
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 \