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