speed up metadata scanning a lot by avoiding unnecessary shell commands and make...
authorFelix Fietkau <nbd@openwrt.org>
Tue, 3 Mar 2009 13:54:29 +0000 (13:54 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 3 Mar 2009 13:54:29 +0000 (13:54 +0000)
SVN-Revision: 14734

include/host.mk
include/kernel-version.mk
include/package-dumpinfo.mk
include/quilt.mk
include/target.mk
rules.mk

index b6a5824..497d044 100644 (file)
@@ -6,7 +6,9 @@
 #
 
 TMP_DIR ?= $(TOPDIR)/tmp
--include $(TMP_DIR)/.host.mk
+ifndef DUMP
+  -include $(TMP_DIR)/.host.mk
+endif
 
 export TAR FIND
 
index 45139a6..003fc08 100644 (file)
@@ -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))))
 
index f5f1200..f08788b 100644 (file)
@@ -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
index 71fee06..c5245a8 100644 (file)
@@ -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)
index ee373aa..d3c149a 100644 (file)
@@ -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 )
index 1bd8667..1ccaf41 100644 (file)
--- 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