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