]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
kbuild: slim down package for building external modules
authorMasahiro Yamada <masahiroy@kernel.org>
Sat, 27 Jul 2024 07:42:03 +0000 (16:42 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Sun, 1 Sep 2024 11:33:33 +0000 (20:33 +0900)
Exclude directories and files unnecessary for building external modules:

 - include/config/  (except include/config/{auto.conf,kernel.release})
 - scripts/atomic/
 - scripts/dtc/
 - scripts/kconfig/
 - scripts/mod/mk_elfconfig
 - scripts/package/
 - scripts/unifdef
 - .config
 - *.o
 - .*.cmd

Avoid copying files twice for the following directories:

 - include/generated/
 - arch/*/include/generated/

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
scripts/package/install-extmod-build

index 8cc9e13403ae0a73f27d0754cedb7f80e3583108..9fee4a3236cc9a22fb3b2f1bf239deabd937ff9a 100755 (executable)
@@ -9,15 +9,22 @@ is_enabled() {
        grep -q "^$1=y" include/config/auto.conf
 }
 
+find_in_scripts() {
+       find scripts \
+               \( -name atomic -o -name dtc -o -name kconfig -o -name package \) -prune -o \
+               ! -name unifdef -a ! -name mk_elfconfig -a \( -type f -o -type l \) -print
+}
+
 mkdir -p "${destdir}"
 
 (
        cd "${srctree}"
        echo Makefile
        find "arch/${SRCARCH}" -maxdepth 1 -name 'Makefile*'
-       find include scripts -type f -o -type l
+       find "arch/${SRCARCH}" -name generated -prune -o -name include -type d -print
        find "arch/${SRCARCH}" -name Kbuild.platforms -o -name Platform
-       find "arch/${SRCARCH}" -name include -type d
+       find include \( -name config -o -name generated \) -prune -o \( -type f -o -type l \) -print
+       find_in_scripts
 ) | tar -c -f - -C "${srctree}" -T - | tar -xf - -C "${destdir}"
 
 {
@@ -25,12 +32,16 @@ mkdir -p "${destdir}"
                echo tools/objtool/objtool
        fi
 
-       find "arch/${SRCARCH}/include" Module.symvers include scripts -type f
+       echo Module.symvers
+       echo "arch/${SRCARCH}/include/generated"
+       echo include/config/auto.conf
+       echo include/config/kernel.release
+       echo include/generated
+       find_in_scripts
 
        if is_enabled CONFIG_GCC_PLUGINS; then
                find scripts/gcc-plugins -name '*.so'
        fi
 } | tar -c -f - -T - | tar -xf - -C "${destdir}"
 
-# copy .config manually to be where it's expected to be
-cp "${KCONFIG_CONFIG}" "${destdir}/.config"
+find "${destdir}" \( -name '.*.cmd' -o -name '*.o' \) -delete