Commit aaed5c77 authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

kbuild: slim down package for building external modules



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: default avatarMasahiro Yamada <masahiroy@kernel.org>
Reviewed-by: default avatarNicolas Schier <nicolas@fjasle.eu>
parent a660deb0
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -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