1################################################################################
2#
3# kmod
4#
5################################################################################
6
7KMOD_VERSION = 31
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_KMOD_TOOLS),y)
66
67# add license info for kmod tools
68KMOD_LICENSE += , GPL-2.0+ (tools)
69KMOD_LICENSE_FILES += COPYING
70
71# /sbin is really /usr/sbin with merged /usr, so adjust relative symlink
72ifeq ($(BR2_ROOTFS_MERGED_USR),y)
73KMOD_BIN_PATH = ../bin/kmod
74else
75KMOD_BIN_PATH = ../usr/bin/kmod
76endif
77
78define KMOD_INSTALL_TOOLS
79	for i in depmod insmod lsmod modinfo modprobe rmmod; do \
80		ln -sf $(KMOD_BIN_PATH) $(TARGET_DIR)/sbin/$$i; \
81	done
82endef
83
84KMOD_POST_INSTALL_TARGET_HOOKS += KMOD_INSTALL_TOOLS
85else
86KMOD_CONF_OPTS += --disable-tools
87endif
88
89ifeq ($(BR2_PACKAGE_HOST_KMOD_GZ),y)
90HOST_KMOD_DEPENDENCIES += host-zlib
91HOST_KMOD_CONF_OPTS += --with-zlib
92else
93HOST_KMOD_CONF_OPTS += --without-zlib
94endif
95
96ifeq ($(BR2_PACKAGE_HOST_KMOD_ZSTD),y)
97HOST_KMOD_DEPENDENCIES += host-zstd
98HOST_KMOD_CONF_OPTS += --with-zstd
99else
100HOST_KMOD_CONF_OPTS += --without-zstd
101endif
102
103ifeq ($(BR2_PACKAGE_HOST_KMOD_XZ),y)
104HOST_KMOD_DEPENDENCIES += host-xz
105HOST_KMOD_CONF_OPTS += --with-xz
106else
107HOST_KMOD_CONF_OPTS += --without-xz
108endif
109
110# We only install depmod, since that's the only tool used for the
111# host.
112define HOST_KMOD_INSTALL_TOOLS
113	mkdir -p $(HOST_DIR)/sbin/
114	ln -sf ../bin/kmod $(HOST_DIR)/sbin/depmod
115endef
116
117HOST_KMOD_POST_INSTALL_HOOKS += HOST_KMOD_INSTALL_TOOLS
118
119$(eval $(autotools-package))
120$(eval $(host-autotools-package))
121