forked from SynoCommunity/spksrc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspksrc.kernel-modules.mk
84 lines (64 loc) · 2.15 KB
/
spksrc.kernel-modules.mk
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# Constants
SHELL := $(SHELL) -e
default: all
WORK_DIR := $(shell pwd)/work
include ../../mk/spksrc.directories.mk
# Configure the included makefiles
URLS = $(PKG_DIST_SITE)/$(PKG_DIST_NAME)
NAME = $(PKG_NAME)
COOKIE_PREFIX = $(PKG_NAME)-
DIST_FILE = $(DISTRIB_DIR)/$(PKG_DIST_NAME)
DIST_EXT = $(PKG_EXT)
DISTRIB_DIR = $(KERNELS_DIR)/$(PKG_BRANCH)
COMPILE_TARGET = kernel_module_compile_target
EXTRACT_TARGET = kernel_extract_target
CONFIGURE_TARGET = kernel_configure_target
COPY_TARGET = nop
TC ?= syno-$(ARCH)-$(TCVERSION)
include ../../mk/spksrc.cross-env.mk
#####
KERNEL_ENV ?=
KERNEL_ENV += PATH=$$PATH
RUN = cd $(KERNEL_DIR) && env -i $(KERNEL_ENV)
MSG = echo "===> "
.PHONY: kernel_module_compile_target kernel_extract_target kernel_configure_target
include ../../mk/spksrc.download.mk
checksum: download
include ../../mk/spksrc.checksum.mk
extract: checksum
include ../../mk/spksrc.extract.mk
patch: extract
include ../../mk/spksrc.patch.mk
configure: patch
include ../../mk/spksrc.configure.mk
compile: configure
include ../../mk/spksrc.compile.mk
all: compile
### Clean rules
clean:
rm -fr $(WORK_DIR)
$(DIGESTS_FILE): download
@$(MSG) "Generating digests for $(PKG_NAME)"
@rm -f $@ && touch -f $@
@for type in SHA1 SHA256 MD5; do \
case $$type in \
SHA1|sha1) tool=sha1sum ;; \
SHA256|sha256) tool=sha256sum ;; \
MD5|md5) tool=md5sum ;; \
esac ; \
echo "$(PKG_DIST_NAME) $$type `$$tool $(DISTRIB_DIR)/$(PKG_DIST_NAME) | cut -d\" \" -f1`" >> $@ ; \
done
kernel_module_compile_target:
$(RUN) $(MAKE) modules
kernel_extract_target:
mkdir -p $(KERNEL_DIR)
rm -rf $(KERNEL_DIR)
tar -xpf $(DIST_FILE) -C $(EXTRACT_PATH) $(PKG_EXTRACT)
mv $(EXTRACT_PATH)/$(PKG_EXTRACT) $(KERNEL_DIR)
kernel_configure_target:
@$(MSG) "Configuring depended kernel source"
cp $(KERNEL_DIR)/$(SYNO_CONFIG) $(KERNEL_DIR)/.config
# Update the Makefile
sed -i -r 's,^ARCH\s*.+,ARCH\t= $(BASE_ARCH),' $(KERNEL_DIR)/Makefile
sed -i -r 's,^CROSS_COMPILE\s*.+,CROSS_COMPILE\t= $(TC_PATH)$(TC_PREFIX),' $(KERNEL_DIR)/Makefile
test -e $(WORK_DIR)/$(KERNEL_DIR)/arch/$(ARCH) || ln -sf $(BASE_ARCH) $(KERNEL_DIR)/arch/$(ARCH)