From 127296bc455beff15cdc3830e66fc6d2311e6057 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 3 Mar 2009 13:54:29 +0000 Subject: [PATCH] speed up metadata scanning a lot by avoiding unnecessary shell commands and make recursions SVN-Revision: 14734 --- include/host.mk | 4 +- include/kernel-version.mk | 6 ++- include/package-dumpinfo.mk | 73 +++++++++++++++++++++---------------- include/quilt.mk | 3 +- include/target.mk | 12 ++++-- rules.mk | 2 + 6 files changed, 60 insertions(+), 40 deletions(-) diff --git a/include/host.mk b/include/host.mk index b6a58248fdb..497d044503b 100644 --- a/include/host.mk +++ b/include/host.mk @@ -6,7 +6,9 @@ # TMP_DIR ?= $(TOPDIR)/tmp --include $(TMP_DIR)/.host.mk +ifndef DUMP + -include $(TMP_DIR)/.host.mk +endif export TAR FIND diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 45139a6a776..003fc085b38 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -38,6 +38,8 @@ endif # disable the md5sum check for unknown kernel versions LINUX_KERNEL_MD5SUM?=x -KERNEL?=2.$(word 2,$(subst ., ,$(strip $(LINUX_VERSION)))) -KERNEL_PATCHVER=$(shell echo '$(LINUX_VERSION)' | cut -d. -f1,2,3 | cut -d- -f1) +split_version=$(subst ., ,$(1)) +merge_version=$(subst $(space),.,$(1)) +KERNEL=$(call merge_version,$(wordlist 1,2,$(call split_version,$(LINUX_VERSION)))) +KERNEL_PATCHVER=$(call merge_version,$(wordlist 1,3,$(call split_version,$(LINUX_VERSION)))) diff --git a/include/package-dumpinfo.mk b/include/package-dumpinfo.mk index f5f1200ba2c..f08788bbb17 100644 --- a/include/package-dumpinfo.mk +++ b/include/package-dumpinfo.mk @@ -6,37 +6,48 @@ # ifneq ($(DUMP),) - define Config - preconfig_$$(1) += echo "Preconfig: $(1)"; echo "Preconfig-Type: $(2)"; echo "Preconfig-Default: $(3)"; echo "Preconfig-Label: $(4)"; - endef - define Dumpinfo - dumpinfo: dumpinfo-$(1) - .SILENT: dumpinfo-$(1) - dumpinfo-$(1): FORCE - @echo "Package: $(1)" ; \ - $(if $(MENU),echo "Menu: $(MENU)";) \ - $(if $(SUBMENU),echo "Submenu: $(SUBMENU)";) \ - $(if $(SUBMENUDEP),echo "Submenu-Depends: $(SUBMENUDEP)";) \ - $(if $(DEFAULT),echo "Default: $(DEFAULT)";) \ - if [ "$$$$PREREQ_CHECK" = 1 ]; then echo "Prereq-Check: 1"; fi; \ - echo "Version: $(VERSION)"; \ - echo "Depends: $(DEPENDS)"; \ - echo "Provides: $(PROVIDES)"; \ - echo "Build-Depends: $(PKG_BUILD_DEPENDS)"; \ - echo "Section: $(SECTION)"; \ - echo "Category: $(CATEGORY)"; \ - echo "Title: $(TITLE)"; \ - echo "Maintainer: $(MAINTAINER)"; \ - echo "Source: $(PKG_SOURCE)"; \ - echo "Type: $(if $(Package/$(1)/targets),$(Package/$(1)/targets),$(if $(PKG_TARGETS),$(PKG_TARGETS),ipkg))"; \ - $(if $(KCONFIG),echo "Kernel-Config: $(KCONFIG)";) \ - $(if $(BUILDONLY),echo "Build-Only: $(BUILDONLY)";) \ - echo -n "Description: "; \ - getvar $(call shvar,Package/$(1)/description); \ - $(if $(URL),echo;echo "$(URL)";) \ - echo "@@" ; \ - $$(if $$(Package/$(1)/config),echo "Config: "; getvar $(call shvar,Package/$(1)/config); echo "@@"; ) \ - $$(if $$(preconfig_$(1)),$$(preconfig_$(1)) echo "") +dumpinfo: FORCE + +define Config/template +Preconfig: $(1) +Preconfig-Type: $(2) +Preconfig-Default: $(3) +Preconfig-Label: $(4) + +endef + +define Config + Preconfig/$(1) = $$(call Config/template,$(1),$(2),$(3),$(4)) + preconfig_$$(1) += $(1) +endef + +define Dumpinfo +$(info Package: $(1) +$(if $(MENU),Menu: $(MENU) +)$(if $(SUBMENU),Submenu: $(SUBMENU) +)$(if $(SUBMENUDEP),Submenu-Depends: $(SUBMENUDEP) +)$(if $(DEFAULT),Default: $(DEFAULT) +)$(if $(findstring $(PREREQ_CHECK),1),Prereq-Check: 1 +)Version: $(VERSION) +Depends: $(DEPENDS) +Provides: $(PROVIDES) +Build-Depends: $(PKG_BUILD_DEPENDS) +Section: $(SECTION) +Category: $(CATEGORY) +Title: $(TITLE) +Maintainer: $(MAINTAINER) +Source: $(PKG_SOURCE) +Type: $(if $(Package/$(1)/targets),$(Package/$(1)/targets),$(if $(PKG_TARGETS),$(PKG_TARGETS),ipkg)) +$(if $(KCONFIG),Kernel-Config: $(KCONFIG) +)$(if $(BUILDONLY),Build-Only: $(BUILDONLY) +)Description: $(if $(Package/$(1)/description),$(Package/$(1)/description),$(TITLE)) +$(if $(URL),$(URL) +)@@ +$(if $(Package/$(1)/config),Config: +$(Package/$(1)/config) +@@ +)$(foreach pc,$(preconfig_$(1)), +$(Preconfig/$(pc)))) endef endif diff --git a/include/quilt.mk b/include/quilt.mk index 71fee06f14a..c5245a8aeec 100644 --- a/include/quilt.mk +++ b/include/quilt.mk @@ -3,9 +3,8 @@ # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. -# -ifneq ($(__quilt_inc),1) +ifneq ($(if $(DUMP),1,$(__quilt_inc)),1) __quilt_inc:=1 ifeq ($(TARGET_BUILD),1) diff --git a/include/target.mk b/include/target.mk index ee373aa19e0..d3c149aa18a 100644 --- a/include/target.mk +++ b/include/target.mk @@ -40,9 +40,11 @@ TARGETID:=$(BOARD)$(if $(SUBTARGET),/$(SUBTARGET)) PLATFORM_SUBDIR:=$(PLATFORM_DIR)$(if $(SUBTARGET),/$(SUBTARGET)) ifneq ($(TARGET_BUILD),1) - include $(PLATFORM_DIR)/Makefile - ifneq ($(PLATFORM_DIR),$(PLATFORM_SUBDIR)) - include $(PLATFORM_SUBDIR)/target.mk + ifndef DUMP + include $(PLATFORM_DIR)/Makefile + ifneq ($(PLATFORM_DIR),$(PLATFORM_SUBDIR)) + include $(PLATFORM_SUBDIR)/target.mk + endif endif else ifneq ($(SUBTARGET),) @@ -102,7 +104,9 @@ endif $(eval $(call shexport,Target/Description)) -include $(INCLUDE_DIR)/kernel-version.mk +ifneq ($(TARGET_BUILD)$(if $(DUMP),,1),) + include $(INCLUDE_DIR)/kernel-version.mk +endif GENERIC_PLATFORM_DIR := $(TOPDIR)/target/linux/generic-$(KERNEL) GENERIC_PATCH_DIR := $(GENERIC_PLATFORM_DIR)/patches$(shell [ -d "$(GENERIC_PLATFORM_DIR)/patches-$(KERNEL_PATCHVER)" ] && printf -- "-$(KERNEL_PATCHVER)" || true ) diff --git a/rules.mk b/rules.mk index 1bd8667fda4..1ccaf41595e 100644 --- a/rules.mk +++ b/rules.mk @@ -73,6 +73,7 @@ TARGET_CPPFLAGS:=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include TARGET_LDFLAGS:=-L$(TOOLCHAIN_DIR)/usr/lib -L$(TOOLCHAIN_DIR)/lib -L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib LIBGCC_S=$(if $(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so),-lgcc_s,$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.a)) +ifndef DUMP ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) -include $(TOOLCHAIN_DIR)/info.mk REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-openwrt-linux$(if $(TARGET_SUFFIX),-$(TARGET_SUFFIX)) @@ -80,6 +81,7 @@ ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) TARGET_CROSS:=$(if $(TARGET_CROSS),$(TARGET_CROSS),$(OPTIMIZE_FOR_CPU)-openwrt-linux$(if $(TARGET_SUFFIX),-$(TARGET_SUFFIX))-) TARGET_CFLAGS+= -fhonour-copts endif +endif ifeq ($(CONFIG_SOFT_FLOAT),y) SOFT_FLOAT_CONFIG_OPTION:=--with-float=soft