diff options
author | Bertrand Jacquin <bertrand@jacquin.bzh> | 2024-04-09 21:27:06 +0100 |
---|---|---|
committer | Bertrand Jacquin <bertrand@jacquin.bzh> | 2024-10-05 01:30:01 +0100 |
commit | cc31469d85e6ad988471fd24338c8bee58a32c20 (patch) | |
tree | b67b994344346fedd23f24ec00ce10c13f91c8a7 /eclass | |
parent | eclass/linux-build: simplify module install (diff) | |
download | portage-cc31469d85e6ad988471fd24338c8bee58a32c20.tar.xz |
eclass/linux-build: handle USE="build source" for external module
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/linux-build.eclass | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/eclass/linux-build.eclass b/eclass/linux-build.eclass index c534facc..328f336c 100644 --- a/eclass/linux-build.eclass +++ b/eclass/linux-build.eclass @@ -58,7 +58,7 @@ BDEPEND="${BDEPEND} sys-devel/lld:= ) rust? ( !arm? ( !x86? ( - dev-lang/rust:=[rust-src] + dev-lang/rust:=[rust-src,rustfmt] dev-util/bindgen ) ) )" DEPEND="${DEPEND} @@ -555,6 +555,18 @@ _linux-build_src_prepare_build() { fi emake prepare "${myopt[@]}" + + if _linux-build_configval MODULES ; then + emake modules_prepare "${myopt[@]}" + fi + + cp -R "${BUILDDIR}" "${WORKDIR}/prepare" || die + + rm -r "${WORKDIR}/prepare/Makefile" + rm -r "${WORKDIR}/prepare/certs" + rm -r "${WORKDIR}/prepare/source" + find "${WORKDIR}/prepare" -type f -name '.*' -delete + find "${WORKDIR}/prepare" -type f -name '*.o' -delete } linux-build_src_prepare() { @@ -647,6 +659,16 @@ _linux-build_src_install_sources() { insinto "/usr/src/linux-${KV_FULL}" doins "${BUILDDIR}/.config" + + if use build ; then + cp -R -T "${WORKDIR}/prepare" "${ED}/usr/src/linux-${KV_FULL}" || die + + insinto "/usr/src/linux-${KV_FULL}" + doins "${BUILDDIR}/Module.symvers" + doins "${BUILDDIR}/System.map" + + dosym "/usr/src/linux-${KV_FULL}" "/lib/modules/${KV_FULL}/build" + fi } _linux-build_src_install_build() { @@ -697,7 +719,6 @@ _linux-build_src_install_build() { || die "depmod failed" rm "${WORKDIR}/lib/modules/${KV_FULL}/build" - rm "${WORKDIR}/lib/modules/${KV_FULL}/source" insinto /lib/modules doins -r "${WORKDIR}/lib/modules/${KV_FULL}" |