xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-kernel/kmod/kmod_29.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
2*4882a593Smuzhiyun# Released under the MIT license (see COPYING.MIT for the terms)
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunSUMMARY = "Tools for managing Linux kernel modules"
5*4882a593SmuzhiyunDESCRIPTION = "kmod is a set of tools to handle common tasks with Linux kernel modules like \
6*4882a593Smuzhiyun               insert, remove, list, check properties, resolve dependencies and aliases."
7*4882a593SmuzhiyunHOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kmod/"
8*4882a593SmuzhiyunLICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
9*4882a593SmuzhiyunLICENSE:libkmod = "LGPL-2.1-or-later"
10*4882a593SmuzhiyunSECTION = "base"
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
13*4882a593Smuzhiyun                    file://libkmod/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
14*4882a593Smuzhiyun                    file://tools/COPYING;md5=751419260aa954499f7abaabaa882bbe \
15*4882a593Smuzhiyun                   "
16*4882a593Smuzhiyuninherit autotools bash-completion gtk-doc pkgconfig manpages update-alternatives
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunSRCREV = "b6ecfc916a17eab8f93be5b09f4e4f845aabd3d1"
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunSRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git;branch=master \
21*4882a593Smuzhiyun           file://depmod-search.conf \
22*4882a593Smuzhiyun           file://avoid_parallel_tests.patch \
23*4882a593Smuzhiyun           file://0001-depmod-Add-support-for-excluding-a-directory.patch \
24*4882a593Smuzhiyun           "
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunS = "${WORKDIR}/git"
27*4882a593Smuzhiyun
28*4882a593SmuzhiyunEXTRA_OECONF += "--enable-tools"
29*4882a593Smuzhiyun
30*4882a593SmuzhiyunPACKAGECONFIG ??= "zlib xz"
31*4882a593SmuzhiyunPACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
32*4882a593SmuzhiyunPACKAGECONFIG[logging] = " --enable-logging,--disable-logging"
33*4882a593SmuzhiyunPACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native"
34*4882a593SmuzhiyunPACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
35*4882a593SmuzhiyunPACKAGECONFIG[xz] = "--with-xz,--without-xz,xz"
36*4882a593SmuzhiyunPACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
37*4882a593SmuzhiyunPACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
38*4882a593Smuzhiyun
39*4882a593SmuzhiyunGTKDOC_DOCDIR = "${S}/libkmod/docs"
40*4882a593Smuzhiyun
41*4882a593SmuzhiyunPROVIDES += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
42*4882a593SmuzhiyunRPROVIDES:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
43*4882a593SmuzhiyunRCONFLICTS:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
44*4882a593SmuzhiyunRREPLACES:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun# to force user to remove old module-init-tools and replace them with kmod variants
47*4882a593SmuzhiyunRCONFLICTS:libkmod2 += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun# autotools set prefix to /usr, however we want them in /bin and /sbin
50*4882a593SmuzhiyunEXTRA_OECONF += "--bindir=${base_bindir} --sbindir=${base_sbindir}"
51*4882a593Smuzhiyun
52*4882a593Smuzhiyundo_install:append () {
53*4882a593Smuzhiyun        install -dm755 ${D}${base_bindir}
54*4882a593Smuzhiyun        install -dm755 ${D}${base_sbindir}
55*4882a593Smuzhiyun        # add symlinks to kmod
56*4882a593Smuzhiyun        ln -rs ${D}${base_bindir}/kmod ${D}${base_bindir}/lsmod
57*4882a593Smuzhiyun        for tool in insmod rmmod depmod modinfo modprobe; do
58*4882a593Smuzhiyun                ln -rs ${D}${base_bindir}/kmod ${D}${base_sbindir}/${tool}
59*4882a593Smuzhiyun        done
60*4882a593Smuzhiyun        # configuration directories
61*4882a593Smuzhiyun        install -dm755 ${D}${nonarch_base_libdir}/depmod.d
62*4882a593Smuzhiyun        install -dm755 ${D}${nonarch_base_libdir}/modprobe.d
63*4882a593Smuzhiyun        install -dm755 ${D}${sysconfdir}/depmod.d
64*4882a593Smuzhiyun        install -dm755 ${D}${sysconfdir}/modprobe.d
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun        # install depmod.d file for search/ dir
67*4882a593Smuzhiyun        install -Dm644 "${WORKDIR}/depmod-search.conf" "${D}${nonarch_base_libdir}/depmod.d/search.conf"
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun        # Add .debug to the exclude path for depmod
70*4882a593Smuzhiyun        echo "exclude .debug" > ${D}${nonarch_base_libdir}/depmod.d/exclude.conf
71*4882a593Smuzhiyun}
72*4882a593Smuzhiyun
73*4882a593SmuzhiyunALTERNATIVE_PRIORITY = "70"
74*4882a593Smuzhiyun
75*4882a593SmuzhiyunALTERNATIVE:kmod = "insmod modprobe rmmod modinfo bin-lsmod lsmod depmod"
76*4882a593Smuzhiyun
77*4882a593SmuzhiyunALTERNATIVE_LINK_NAME[depmod] = "${base_sbindir}/depmod"
78*4882a593SmuzhiyunALTERNATIVE_LINK_NAME[insmod] = "${base_sbindir}/insmod"
79*4882a593SmuzhiyunALTERNATIVE_LINK_NAME[modprobe] = "${base_sbindir}/modprobe"
80*4882a593SmuzhiyunALTERNATIVE_LINK_NAME[rmmod] = "${base_sbindir}/rmmod"
81*4882a593SmuzhiyunALTERNATIVE_LINK_NAME[modinfo] = "${base_sbindir}/modinfo"
82*4882a593SmuzhiyunALTERNATIVE_LINK_NAME[bin-lsmod] = "${base_bindir}/lsmod"
83*4882a593SmuzhiyunALTERNATIVE_LINK_NAME[lsmod] = "${base_sbindir}/lsmod"
84*4882a593SmuzhiyunALTERNATIVE_TARGET[lsmod] = "${base_bindir}/lsmod.${BPN}"
85*4882a593Smuzhiyun
86*4882a593SmuzhiyunPACKAGES =+ "libkmod"
87*4882a593SmuzhiyunFILES:libkmod = "${base_libdir}/libkmod*${SOLIBS} ${libdir}/libkmod*${SOLIBS}"
88*4882a593SmuzhiyunFILES:${PN} += "${nonarch_base_libdir}/depmod.d ${nonarch_base_libdir}/modprobe.d"
89*4882a593Smuzhiyun
90*4882a593SmuzhiyunBBCLASSEXTEND = "native nativesdk"
91