123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- # This helper makefile is used for creating
- # - symbolic links (arch/$ARCH/include/asm/arch
- # - include/autoconf.mk, {spl,tpl}/include/autoconf.mk
- # - include/config.h
- #
- # When our migration to Kconfig is done
- # (= When we move all CONFIGs from header files to Kconfig)
- # this makefile can be deleted.
- # obj is "include" or "spl/include" or "tpl/include"
- # for non-SPL, SPL, TPL, respectively
- include $(obj)/config/auto.conf
- include scripts/Kbuild.include
- # Need to define CC and CPP again here in case the top Makefile did not
- # include config.mk. Some architectures expect CROSS_COMPILE to be defined
- # in arch/$(ARCH)/config.mk
- CC = $(CROSS_COMPILE)gcc
- CPP = $(CC) -E
- include config.mk
- UBOOTINCLUDE := \
- -I$(obj) \
- -Iinclude \
- $(if $(KBUILD_SRC), -I$(srctree)/include) \
- -I$(srctree)/arch/$(ARCH)/include \
- -include $(srctree)/include/linux/kconfig.h
- c_flags := $(KBUILD_CFLAGS) $(KBUILD_CPPFLAGS) $(PLATFORM_CPPFLAGS) \
- $(UBOOTINCLUDE) $(NOSTDINC_FLAGS)
- quiet_cmd_autoconf_dep = GEN $@
- cmd_autoconf_dep = $(CC) -x c -DDO_DEPS_ONLY -M -MP $(c_flags) \
- -MQ include/config/auto.conf $(srctree)/include/common.h > $@ || { \
- rm $@; false; \
- }
- include/autoconf.mk.dep: FORCE
- $(call cmd,autoconf_dep)
- # We are migrating from board headers to Kconfig little by little.
- # In the interim, we use both of
- # - include/config/auto.conf (generated by Kconfig)
- # - include/autoconf.mk (used in the U-Boot conventional configuration)
- # The following rule creates autoconf.mk
- # include/config/auto.conf is grepped in order to avoid duplication of the
- # same CONFIG macros
- quiet_cmd_autoconf = GEN $@
- cmd_autoconf = \
- $(CPP) $(c_flags) -DDO_DEPS_ONLY -dM $(srctree)/include/common.h > $@.tmp && { \
- sed -n -f $(srctree)/tools/scripts/define2mk.sed $@.tmp | \
- while read line; do \
- if ! grep -q "$${line%=*}=" $(obj)/config/auto.conf; then \
- echo "$$line"; \
- fi \
- done > $@; \
- rm $@.tmp; \
- } || { \
- rm $@.tmp; false; \
- }
- $(obj)/autoconf.mk: FORCE
- $(call cmd,autoconf)
- include/autoconf.mk include/autoconf.mk.dep: include/config.h
- # 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_cmd_defaults.h\>; \
- echo \#include \<config_defaults.h\>; \
- echo \#include \<configs/$(CONFIG_SYS_CONFIG_NAME).h\>; \
- echo \#include \<asm/config.h\>; \
- echo \#include \<config_fallbacks.h\>; \
- echo \#include \<config_uncmd_spl.h\>; )
- endef
- include/config.h: scripts/Makefile.autoconf create_symlink FORCE
- $(call filechk,config_h)
- # symbolic links
- PHONY += create_symlink
- create_symlink:
- ifneq ($(KBUILD_SRC),)
- $(Q)mkdir -p include/asm
- endif
- $(Q)ln -fsn $(srctree)/arch/$(ARCH)/include/asm/arch-$(if $(SOC),$(SOC),$(CPU)) \
- $(if $(KBUILD_SRC),,arch/$(ARCH)/)include/asm/arch
- PHONY += FORCE
- FORCE:
- .PHONY: $(PHONY)
|