summaryrefslogtreecommitdiffstats
path: root/core/modules/dnbd3/module.build
blob: 48fa7c7baf44d31986068b29a2670f77811017f5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/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=ON \
		-DBUILD_SERVER=ON \
		-DBUILD_STRESSTEST=OFF \
		"$MODULE_WORK_DIR/src/dnbd3" || perror "Could not cmake"
	make dnbd3-client || perror "Could not make dnbd3-client"
	make dnbd3-fuse || perror "Could not make dnbd3-fuse"
	make dnbd3-server || perror "Could not make dnbd3-server"
	chown root:root "dnbd3-client" "dnbd3-fuse" "dnbd3-server"
	chmod +xs "dnbd3-client"
	chmod +x "dnbd3-fuse" "dnbd3-server"
	add_group "fuse"
	cd "$MODULE_WORK_DIR"

	COPYLIST="list_dpkg_output"
	[ -e "$COPYLIST" ] && rm "$COPYLIST"
	list_packet_files >> "$COPYLIST"
	tarcopy "$(cat "$COPYLIST" | sort -u)" "${MODULE_BUILD_DIR}"
}

post_copy() {
	:
}