summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-03-03 13:54:29 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-03-03 13:54:29 +0000
commit7f3b481ec937e79225ef78f167070b2249e2f62a (patch)
tree25549d2e0786b41556505af3b5e9bb0520da1d15
parent82171215c1192a83de04760e499c7f9ec72845be (diff)
speed up metadata scanning a lot by avoiding unnecessary shell commands and make recursions
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@14734 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--include/host.mk4
-rw-r--r--include/kernel-version.mk6
-rw-r--r--include/package-dumpinfo.mk73
-rw-r--r--include/quilt.mk3
-rw-r--r--include/target.mk12
-rw-r--r--rules.mk2
6 files changed, 60 insertions, 40 deletions
diff --git a/include/host.mk b/include/host.mk
index b6a58248f..497d04450 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 45139a6a7..003fc085b 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 f5f1200ba..f08788bbb 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 71fee06f1..c5245a8ae 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 ee373aa19..d3c149aa1 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 1bd8667fd..1ccaf4159 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