-export HOSTCC := $(CC)
-export CONFIG_SHELL := sh
-export KCONFIG_AUTOHEADER := autoconf.h
-export KCONFIG_CONFIG := $(CURDIR)/.config
-
-$(OUT)autoconf.h : $(KCONFIG_CONFIG)
- $(Q)$(MAKE) silentoldconfig
-
-$(KCONFIG_CONFIG):
- $(Q)$(MAKE) defconfig
-
-%onfig:
- $(Q)mkdir -p $(OUT)/tools/kconfig/lxdialog
- $(Q)mkdir -p $(OUT)/include/config
- $(Q)$(MAKE) -C $(OUT) -f $(CURDIR)/tools/kconfig/Makefile srctree=$(CURDIR) src=tools/kconfig obj=tools/kconfig Q=$(Q) Kconfig=$(CURDIR)/src/Kconfig $@
+define do-kconfig
+$(Q)mkdir -p $(OUT)/tools/kconfig/lxdialog
+$(Q)mkdir -p $(OUT)/include/config
+$(Q)$(MAKE) -C $(OUT) -f $(CURDIR)/tools/kconfig/Makefile srctree=$(CURDIR) src=tools/kconfig obj=tools/kconfig Q=$(Q) Kconfig=$(CURDIR)/src/Kconfig $1
+endef