Convert CONFIG_STANDALONE_LOAD_ADDR to Kconfig
[platform/kernel/u-boot.git] / scripts / Makefile.autoconf
index 01a739d..5a4a148 100644 (file)
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0
 # This helper makefile is used for creating
 #  - symbolic links (arch/$ARCH/include/asm/arch
 #  - include/autoconf.mk, {spl,tpl}/include/autoconf.mk
@@ -6,9 +7,6 @@
 # When our migration to Kconfig is done
 # (= When we move all CONFIGs from header files to Kconfig)
 # this makefile can be deleted.
-#
-# SPDX-License-Identifier:     GPL-2.0
-#
 
 __all: include/autoconf.mk include/autoconf.mk.dep
 
@@ -20,6 +18,10 @@ ifeq ($(shell grep -q '^CONFIG_TPL=y' include/config/auto.conf 2>/dev/null && ec
 __all: tpl/include/autoconf.mk
 endif
 
+ifeq ($(shell grep -q '^CONFIG_VPL=y' include/config/auto.conf 2>/dev/null && echo y),y)
+__all: vpl/include/autoconf.mk
+endif
+
 include include/config/auto.conf
 
 include scripts/Kbuild.include
@@ -46,7 +48,7 @@ quiet_cmd_autoconf_dep = GEN     $@
        -MQ include/config/auto.conf $(srctree)/include/common.h > $@ || {      \
                rm $@; false;                                                   \
        }
-include/autoconf.mk.dep: FORCE
+include/autoconf.mk.dep: include/config.h FORCE
        $(call cmd,autoconf_dep)
 
 # We are migrating from board headers to Kconfig little by little.
@@ -58,46 +60,63 @@ include/autoconf.mk.dep: FORCE
 # same CONFIG macros
 quiet_cmd_autoconf = GEN     $@
       cmd_autoconf = \
-       $(CPP) $(c_flags) $2 -DDO_DEPS_ONLY -dM $(srctree)/include/common.h > $@.tmp && { \
-               sed -n -f $(srctree)/tools/scripts/define2mk.sed $@.tmp |               \
+               sed -n -f $(srctree)/tools/scripts/define2mk.sed $< |                   \
                while read line; do                                                     \
                        if [ -n "${KCONFIG_IGNORE_DUPLICATES}" ] ||                     \
                           ! grep -q "$${line%=*}=" include/config/auto.conf; then      \
                                echo "$$line";                                          \
-                       fi                                                              \
-               done > $@;                                                              \
-               rm $@.tmp;                                                              \
-       } || {                                                                          \
-               rm $@.tmp; false;                                                       \
+                       fi;                                                             \
+               done > $@
+
+quiet_cmd_u_boot_cfg = CFG     $@
+      cmd_u_boot_cfg = \
+       $(CPP) $(c_flags) $2 -DDO_DEPS_ONLY -dM $(srctree)/include/common.h > $@.tmp && { \
+               grep 'define CONFIG_' $@.tmp | \
+                       sed '/define CONFIG_IS_ENABLED(/d;/define CONFIG_IF_ENABLED_INT(/d;/define CONFIG_VAL(/d;' > $@; \
+               rm $@.tmp;                                              \
+       } || {                                                          \
+               rm $@.tmp; false;                                       \
        }
 
-include/autoconf.mk: FORCE
+u-boot.cfg: include/config.h FORCE
+       $(call cmd,u_boot_cfg)
+
+spl/u-boot.cfg: include/config.h FORCE
+       $(Q)mkdir -p $(dir $@)
+       $(call cmd,u_boot_cfg,-DCONFIG_SPL_BUILD)
+
+tpl/u-boot.cfg: include/config.h FORCE
+       $(Q)mkdir -p $(dir $@)
+       $(call cmd,u_boot_cfg,-DCONFIG_SPL_BUILD -DCONFIG_TPL_BUILD)
+
+vpl/u-boot.cfg: include/config.h FORCE
+       $(Q)mkdir -p $(dir $@)
+       $(call cmd,u_boot_cfg,-DCONFIG_SPL_BUILD -DCONFIG_VPL_BUILD)
+
+include/autoconf.mk: u-boot.cfg
        $(call cmd,autoconf)
 
-spl/include/autoconf.mk: FORCE
+spl/include/autoconf.mk: spl/u-boot.cfg
        $(Q)mkdir -p $(dir $@)
-       $(call cmd,autoconf,-DCONFIG_SPL_BUILD)
+       $(call cmd,autoconf)
 
-tpl/include/autoconf.mk: FORCE
+tpl/include/autoconf.mk: tpl/u-boot.cfg
        $(Q)mkdir -p $(dir $@)
-       $(call cmd,autoconf,-DCONFIG_SPL_BUILD -DCONFIG_TPL_BUILD)
+       $(call cmd,autoconf)
 
-include/autoconf.mk include/autoconf.mk.dep \
-       spl/include/autoconf.mk tpl/include/autoconf.mk: include/config.h
+vpl/include/autoconf.mk: vpl/u-boot.cfg
+       $(Q)mkdir -p $(dir $@)
+       $(call cmd,autoconf)
 
 # include/config.h
 # Prior to Kconfig, it was generated by mkconfig. Now it is created here.
 define filechk_config_h
        (echo "/* Automatically generated - do not edit */";            \
-       for i in $$(echo $(CONFIG_SYS_EXTRA_OPTIONS) | sed 's/,/ /g'); do \
-               echo \#define CONFIG_$$i                                \
-               | sed '/=/ {s/=/        /;q; } ; { s/$$/        1/; }'; \
-       done;                                                           \
        echo \#define CONFIG_BOARDDIR board/$(if $(VENDOR),$(VENDOR)/)$(BOARD);\
-       echo \#include \<config_defaults.h\>;                           \
        echo \#include \<config_uncmd_spl.h\>;                          \
        echo \#include \<configs/$(CONFIG_SYS_CONFIG_NAME).h\>;         \
        echo \#include \<asm/config.h\>;                                \
+       echo \#include \<linux/kconfig.h\>;                             \
        echo \#include \<config_fallbacks.h\>;)
 endef