From c676934e88034d7ca523729713a0257c0c7b1930 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer <mschiffer@universe-factory.net> Date: Fri, 20 Mar 2015 01:34:02 +0100 Subject: [PATCH] build: don't enable all kernel modules in the general OpenWrt .config With this change, there are two OpenWrt config files: one for the packages actually used by Gluon, and one with all kernel modules enabled (like it was since we removed the static kernel configs). The config with all kernel modules is only used to generate the kernel configuration (so it is compatible with the upstream kernel). This should bring the build times back to what they were before the static configs were removed. --- Makefile | 19 +++++++++++++++---- include/Makefile.target | 15 ++++++++++++++- include/config | 2 -- include/gluon.mk | 2 ++ 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index ba07ae00f..4999ff1ed 100644 --- a/Makefile +++ b/Makefile @@ -183,6 +183,9 @@ gluon-tools: FORCE +$(GLUONMAKE_EARLY) tools/sed/install +$(GLUONMAKE_EARLY) package/lua/host/install +scripts/config/conf: + @$(_SINGLE)$(SUBMAKE) -s -C scripts/config conf CC="$(HOSTCC_WRAPPER)" + prepare-tmpinfo: FORCE mkdir -p tmp/info $(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f include/scan.mk SCAN_TARGET="packageinfo" SCAN_DIR="package" SCAN_NAME="package" SCAN_DEPS="$(TOPDIR)/include/package*.mk $(TOPDIR)/overlay/*/*.mk" SCAN_EXTRA="" @@ -191,7 +194,9 @@ prepare-tmpinfo: FORCE f=tmp/.$${type}info; t=tmp/.config-$${type}.in; \ [ "$$t" -nt "$$f" ] || ./scripts/metadata.pl $${type}_config "$$f" > "$$t" || { rm -f "$$t"; echo "Failed to build $$t"; false; break; }; \ done + [ tmp/.config-feeds.in -nt tmp/.packagefeeds ] || ./scripts/feeds feed_config > tmp/.config-feeds.in ./scripts/metadata.pl package_mk tmp/.packageinfo > tmp/.packagedeps || { rm -f tmp/.packagedeps; false; } + ./scripts/metadata.pl package_feeds tmp/.packageinfo > tmp/.packagefeeds || { rm -f tmp/.packagefeeds; false; } touch $(TOPDIR)/tmp/.build feeds: FORCE @@ -201,7 +206,7 @@ feeds: FORCE . $(GLUONDIR)/modules && for feed in $$GLUON_FEEDS; do ln -s ../../../packages/$$feed $(TOPDIR)/package/feeds/$$feed; done +$(GLUONMAKE_EARLY) prepare-tmpinfo -config: FORCE +config: scripts/config/conf FORCE +$(GLUONMAKE) prepare-tmpinfo ( \ cat $(GLUONDIR)/include/config $(GLUONDIR)/targets/$(GLUON_TARGET)/config; \ @@ -209,8 +214,15 @@ config: FORCE | sed -e 's/ /\n/g'; \ echo '$(patsubst %,CONFIG_GLUON_LANG_%=y,$(GLUON_LANGS))' \ | sed -e 's/ /\n/g'; \ - ) > .config - +$(NO_TRACE_MAKE) defconfig OPENWRT_BUILD=0 + ) > $(BOARD_BUILDDIR)/config.tmp + scripts/config/conf --defconfig=$(BOARD_BUILDDIR)/config.tmp Config.in + mv .config $(BOARD_BUILDDIR)/config + + echo 'CONFIG_ALL_KMODS=y' >> $(BOARD_BUILDDIR)/config.tmp + scripts/config/conf --defconfig=$(BOARD_BUILDDIR)/config.tmp Config.in + mv .config $(BOARD_BUILDDIR)/config-allmods + + cp $(BOARD_BUILDDIR)/config .config prepare-target: FORCE rm $(GLUON_OPENWRTDIR)/tmp || true @@ -299,7 +311,6 @@ PROFILE_BUILDDIR = $(BOARD_BUILDDIR)/$(PROFILE) PROFILE_KDIR = $(PROFILE_BUILDDIR)/kernel BIN_DIR = $(PROFILE_BUILDDIR)/images -TMP_DIR = $(PROFILE_BUILDDIR)/tmp TARGET_DIR = $(PROFILE_BUILDDIR)/root PREPARED_RELEASE = $$(cat $(gluon_prepared_stamp)) diff --git a/include/Makefile.target b/include/Makefile.target index f2b898da9..19370e52e 100644 --- a/include/Makefile.target +++ b/include/Makefile.target @@ -1,5 +1,18 @@ +# code adjusted from openwrt/include/kernel-defaults.mk + override define Kernel/Configure - $(call Kernel/Configure/Default) + $(LINUX_CONF_CMD) > $(LINUX_DIR)/.config.target +# copy CONFIG_KERNEL_* settings over to .config.target + awk '/^(#[[:space:]]+)?CONFIG_KERNEL/{sub("CONFIG_KERNEL_","CONFIG_");print}' $(BOARD_BUILDDIR)/config-allmods >> $(LINUX_DIR)/.config.target + echo "# CONFIG_KALLSYMS_EXTRA_PASS is not set" >> $(LINUX_DIR)/.config.target + echo "# CONFIG_KALLSYMS_ALL is not set" >> $(LINUX_DIR)/.config.target + echo "# CONFIG_KALLSYMS_UNCOMPRESSED is not set" >> $(LINUX_DIR)/.config.target + echo "# CONFIG_KPROBES is not set" >> $(LINUX_DIR)/.config.target + $(SCRIPT_DIR)/metadata.pl kconfig $(TMP_DIR)/.packageinfo $(BOARD_BUILDDIR)/config-allmods > $(LINUX_DIR)/.config.override + $(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_DIR)/.config.target /dev/null $(LINUX_DIR)/.config.override > $(LINUX_DIR)/.config + $(call Kernel/SetNoInitramfs) + rm -rf $(KERNEL_BUILD_DIR)/modules + $(_SINGLE) [ -d $(LINUX_DIR)/user_headers ] || $(MAKE) $(KERNEL_MAKEOPTS) INSTALL_HDR_PATH=$(LINUX_DIR)/user_headers headers_install cp $(GLUONDIR)/targets/$(GLUON_TARGET)/vermagic $(LINUX_DIR)/.vermagic endef diff --git a/include/config b/include/config index 8a74d0470..ac7543915 100644 --- a/include/config +++ b/include/config @@ -1,5 +1,3 @@ -CONFIG_ALL_KMODS=y - CONFIG_IMAGEOPT=y # CONFIG_PER_FEED_REPO is not set diff --git a/include/gluon.mk b/include/gluon.mk index e0c6b49bb..88db6f42a 100644 --- a/include/gluon.mk +++ b/include/gluon.mk @@ -14,6 +14,8 @@ export GLUONDIR GLUON_SITEDIR GLUON_SITE_CONFIG GLUON_IMAGEDIR GLUON_BUILDDIR BOARD_BUILDDIR = $(GLUON_BUILDDIR)/$(GLUON_TARGET) BOARD_KDIR = $(BOARD_BUILDDIR)/kernel +export BOARD_BUILDDIR + GLUON_OPENWRTDIR = $(BOARD_BUILDDIR)/openwrt -- GitLab