-$(eval $(call kernel_template,2.4,brcm,2_4_BRCM))
-$(eval $(call kernel_template,2.4,ar7,2_4_AR7))
-$(eval $(call kernel_template,2.4,x86,2_4_X86))
-$(eval $(call kernel_template,2.6,brcm,2_6_BRCM))
-$(eval $(call kernel_template,2.6,rb532,2_6_RB532))
-$(eval $(call kernel_template,2.6,x86,2_6_X86))
-$(eval $(call kernel_template,2.4,ar531x,2_4_AR531X))
-$(eval $(call kernel_template,2.6,aruba,2_6_ARUBA))
-$(eval $(call kernel_template,2.6,au1000,2_6_AU1000))
-$(eval $(call kernel_template,2.6,xscale,2_6_XSCALE))
-$(eval $(call kernel_template,2.6,sibyte,2_6_SIBYTE))
+ifneq ($(PLATFORM_DIR),$(PLATFORM_SUBDIR))
+ define IncludeProfiles
+ -include $(PLATFORM_DIR)/profiles/*.mk
+ -include $(PLATFORM_SUBDIR)/profiles/*.mk
+ endef
+else
+ define IncludeProfiles
+ -include $(PLATFORM_DIR)/profiles/*.mk
+ endef
+endif
+
+ifeq ($(TARGET_BUILD),1)
+ $(eval $(call IncludeProfiles))
+else
+ ifeq ($(DUMP),)
+ $(eval $(call IncludeProfiles))
+ endif
+endif
+
+$(eval $(call shexport,Target/Description))
+
+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$(if $(wildcard $(GENERIC_PLATFORM_DIR)/patches-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER))
+GENERIC_FILES_DIR := $(foreach dir,$(wildcard $(GENERIC_PLATFORM_DIR)/files $(GENERIC_PLATFORM_DIR)/files-$(KERNEL_PATCHVER)),"$(dir)")
+
+GENERIC_LINUX_CONFIG?=$(firstword $(wildcard $(GENERIC_PLATFORM_DIR)/config-$(KERNEL_PATCHVER) $(GENERIC_PLATFORM_DIR)/config-default))
+LINUX_CONFIG?=$(firstword $(wildcard $(foreach subdir,$(PLATFORM_DIR) $(PLATFORM_SUBDIR),$(subdir)/config-$(KERNEL_PATCHVER) $(subdir)/config-default)) $(PLATFORM_DIR)/config-$(KERNEL_PATCHVER))
+LINUX_SUBCONFIG?=$(firstword $(wildcard $(PLATFORM_SUBDIR)/config-$(KERNEL_PATCHVER) $(PLATFORM_SUBDIR)/config-default))
+ifeq ($(LINUX_CONFIG),$(LINUX_SUBCONFIG))
+ LINUX_SUBCONFIG:=
+endif
+LINUX_CONFCMD=$(if $(LINUX_CONFIG), \
+ $(if $(GENERIC_LINUX_CONFIG),,$(error The generic kernel config for your kernel version is missing)) \
+ $(if $(LINUX_CONFIG),,$(error The target kernel config for your kernel version is missing)) \
+ $(SCRIPT_DIR)/kconfig.pl \
+ + $(GENERIC_LINUX_CONFIG) \
+ $(if $(LINUX_SUBCONFIG),+ $(LINUX_CONFIG) $(LINUX_SUBCONFIG),$(LINUX_CONFIG)), \
+ true)
+
+ifeq ($(DUMP),1)
+ BuildTarget=$(BuildTargets/DumpCurrent)
+
+ ifneq ($(BOARD),)
+ TMP_CONFIG:=$(TMP_DIR)/.kconfig-$(call target_conf,$(TARGETID))
+ $(TMP_CONFIG): $(GENERIC_LINUX_CONFIG) $(LINUX_CONFIG) $(LINUX_SUBCONFIG)
+ $(LINUX_CONFCMD) > $@ || rm -f $@
+ -include $(TMP_CONFIG)
+ .SILENT: $(TMP_CONFIG)
+ .PRECIOUS: $(TMP_CONFIG)
+
+ ifneq ($(CONFIG_GENERIC_GPIO),)
+ FEATURES += gpio
+ endif
+ ifneq ($(CONFIG_PCI),)
+ FEATURES += pci
+ endif
+ ifneq ($(CONFIG_PCIEPORTBUS),)
+ FEATURES += pcie
+ endif
+ ifneq ($(CONFIG_USB)$(CONFIG_USB_SUPPORT),)
+ FEATURES += usb
+ endif
+ ifneq ($(CONFIG_PCMCIA)$(CONFIG_PCCARD),)
+ FEATURES += pcmcia
+ endif
+ ifneq ($(CONFIG_VGA_CONSOLE)$(CONFIG_FB),)
+ FEATURES += display
+ endif