summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorBertrand Jacquin <bertrand@jacquin.bzh>2024-04-09 21:27:06 +0100
committerBertrand Jacquin <bertrand@jacquin.bzh>2024-10-05 01:30:01 +0100
commitcc31469d85e6ad988471fd24338c8bee58a32c20 (patch)
treeb67b994344346fedd23f24ec00ce10c13f91c8a7 /eclass
parenteclass/linux-build: simplify module install (diff)
downloadportage-cc31469d85e6ad988471fd24338c8bee58a32c20.tar.xz
eclass/linux-build: handle USE="build source" for external module
Diffstat (limited to 'eclass')
-rw-r--r--eclass/linux-build.eclass25
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}"