xref: /OK3568_Linux_fs/buildroot/package/kmod/kmod.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1################################################################################
2#
3# kmod
4#
5################################################################################
6
7KMOD_VERSION = 29
8KMOD_SOURCE = kmod-$(KMOD_VERSION).tar.xz
9KMOD_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kernel/kmod
10KMOD_INSTALL_STAGING = YES
11KMOD_DEPENDENCIES = host-pkgconf
12HOST_KMOD_DEPENDENCIES = host-pkgconf
13
14# license info for libkmod only, conditionally add more below
15KMOD_LICENSE = LGPL-2.1+ (library)
16KMOD_LICENSE_FILES = libkmod/COPYING
17
18KMOD_CPE_ID_VENDOR = kernel
19
20# --gc-sections triggers binutils ld segfault
21# https://sourceware.org/bugzilla/show_bug.cgi?id=21180
22ifeq ($(BR2_microblaze),y)
23KMOD_CONF_ENV += cc_cv_LDFLAGS__Wl___gc_sections=false
24endif
25
26# static linking not supported, see
27# https://git.kernel.org/cgit/utils/kernel/kmod/kmod.git/commit/?id=b7016153ec8
28KMOD_CONF_OPTS = --disable-static --enable-shared
29
30KMOD_CONF_OPTS += --disable-manpages
31HOST_KMOD_CONF_OPTS = --disable-manpages
32
33ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y)
34KMOD_CONF_OPTS += --with-bashcompletiondir=/usr/share/bash-completion/completions
35endif
36
37ifeq ($(BR2_PACKAGE_ZLIB),y)
38KMOD_DEPENDENCIES += zlib
39KMOD_CONF_OPTS += --with-zlib
40else
41KMOD_CONF_OPTS += --without-zlib
42endif
43
44ifeq ($(BR2_PACKAGE_ZSTD),y)
45KMOD_DEPENDENCIES += zstd
46KMOD_CONF_OPTS += --with-zstd
47else
48KMOD_CONF_OPTS += --without-zstd
49endif
50
51ifeq ($(BR2_PACKAGE_XZ),y)
52KMOD_DEPENDENCIES += xz
53KMOD_CONF_OPTS += --with-xz
54else
55KMOD_CONF_OPTS += --without-xz
56endif
57
58ifeq ($(BR2_PACKAGE_OPENSSL),y)
59KMOD_DEPENDENCIES += openssl
60KMOD_CONF_OPTS += --with-openssl
61else
62KMOD_CONF_OPTS += --without-openssl
63endif
64
65ifeq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),y)
66KMOD_DEPENDENCIES += $(if $(BR2_PACKAGE_PYTHON),python,python3)
67KMOD_CONF_OPTS += --enable-python
68endif
69
70ifeq ($(BR2_PACKAGE_KMOD_TOOLS),y)
71
72# add license info for kmod tools
73KMOD_LICENSE += , GPL-2.0+ (tools)
74KMOD_LICENSE_FILES += COPYING
75
76# /sbin is really /usr/sbin with merged /usr, so adjust relative symlink
77ifeq ($(BR2_ROOTFS_MERGED_USR),y)
78KMOD_BIN_PATH = ../bin/kmod
79else
80KMOD_BIN_PATH = ../usr/bin/kmod
81endif
82
83define KMOD_INSTALL_TOOLS
84	for i in depmod insmod lsmod modinfo modprobe rmmod; do \
85		ln -sf $(KMOD_BIN_PATH) $(TARGET_DIR)/sbin/$$i; \
86	done
87endef
88
89KMOD_POST_INSTALL_TARGET_HOOKS += KMOD_INSTALL_TOOLS
90else
91KMOD_CONF_OPTS += --disable-tools
92endif
93
94ifeq ($(BR2_PACKAGE_HOST_KMOD_GZ),y)
95HOST_KMOD_DEPENDENCIES += host-zlib
96HOST_KMOD_CONF_OPTS += --with-zlib
97else
98HOST_KMOD_CONF_OPTS += --without-zlib
99endif
100
101ifeq ($(BR2_PACKAGE_HOST_KMOD_ZSTD),y)
102HOST_KMOD_DEPENDENCIES += host-zstd
103HOST_KMOD_CONF_OPTS += --with-zstd
104else
105HOST_KMOD_CONF_OPTS += --without-zstd
106endif
107
108ifeq ($(BR2_PACKAGE_HOST_KMOD_XZ),y)
109HOST_KMOD_DEPENDENCIES += host-xz
110HOST_KMOD_CONF_OPTS += --with-xz
111else
112HOST_KMOD_CONF_OPTS += --without-xz
113endif
114
115# We only install depmod, since that's the only tool used for the
116# host.
117define HOST_KMOD_INSTALL_TOOLS
118	mkdir -p $(HOST_DIR)/sbin/
119	ln -sf ../bin/kmod $(HOST_DIR)/sbin/depmod
120endef
121
122HOST_KMOD_POST_INSTALL_HOOKS += HOST_KMOD_INSTALL_TOOLS
123
124$(eval $(autotools-package))
125$(eval $(host-autotools-package))
126