diff options
author | Samuel Holland <samuel.holland@sifive.com> | 2024-03-18 13:49:40 -0700 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2024-04-07 12:05:37 +0530 |
commit | 268feab2949a08743ffbb4afd9d40cdcafd78376 (patch) | |
tree | b0812acda7a23f3371c8cf857edbd030ed40753b | |
parent | 29ecda9c2065afd3fb2f8cc465bc096d545d825e (diff) | |
download | opensbi-268feab2949a08743ffbb4afd9d40cdcafd78376.zip opensbi-268feab2949a08743ffbb4afd9d40cdcafd78376.tar.gz opensbi-268feab2949a08743ffbb4afd9d40cdcafd78376.tar.bz2 |
Makefile: Respect manual changes to .config
The .config file may be manually edited or copied from another location.
Since genconfig.py is responsible for generating auto.conf (the Makefile
fragment) and autoconf.h (the C header) from .config, it must be run any
time .config changes, not just when running menuconfig.
Fixes: 662e631ccef2 ("Makefile: Add initial kconfig support for each platform")
Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Tested-by: Anup Patel <anup@brainfault.org>
-rw-r--r-- | Makefile | 43 |
1 files changed, 24 insertions, 19 deletions
@@ -79,6 +79,7 @@ export PYTHONDONTWRITEBYTECODE=1 export KCONFIG_DIR=$(platform_build_dir)/kconfig export KCONFIG_AUTOLIST=$(KCONFIG_DIR)/auto.list export KCONFIG_AUTOHEADER=$(KCONFIG_DIR)/autoconf.h +export KCONFIG_AUTOCONFIG=$(KCONFIG_DIR)/auto.conf export KCONFIG_AUTOCMD=$(KCONFIG_DIR)/auto.conf.cmd export KCONFIG_CONFIG=$(KCONFIG_DIR)/.config # Additional exports for include paths in Kconfig files @@ -220,7 +221,6 @@ ifdef PLATFORM menuconfig: $(platform_src_dir)/Kconfig $(src_dir)/Kconfig $(CMD_PREFIX)mkdir -p $(KCONFIG_DIR) $(CMD_PREFIX)$(src_dir)/scripts/Kconfiglib/menuconfig.py $(src_dir)/Kconfig - $(CMD_PREFIX)$(src_dir)/scripts/Kconfiglib/genconfig.py --header-path $(KCONFIG_AUTOHEADER) --sync-deps $(KCONFIG_DIR) --file-list $(KCONFIG_AUTOLIST) $(src_dir)/Kconfig .PHONY: savedefconfig savedefconfig: $(platform_src_dir)/Kconfig $(src_dir)/Kconfig @@ -230,14 +230,19 @@ savedefconfig: $(platform_src_dir)/Kconfig $(src_dir)/Kconfig $(KCONFIG_CONFIG): $(platform_src_dir)/configs/$(PLATFORM_DEFCONFIG) $(platform_src_dir)/Kconfig $(src_dir)/Kconfig $(CMD_PREFIX)mkdir -p $(KCONFIG_DIR) $(CMD_PREFIX)$(src_dir)/scripts/Kconfiglib/defconfig.py --kconfig $(src_dir)/Kconfig $(platform_src_dir)/configs/$(PLATFORM_DEFCONFIG) + +$(KCONFIG_AUTOCONFIG): $(KCONFIG_CONFIG) $(CMD_PREFIX)$(src_dir)/scripts/Kconfiglib/genconfig.py --header-path $(KCONFIG_AUTOHEADER) --sync-deps $(KCONFIG_DIR) --file-list $(KCONFIG_AUTOLIST) $(src_dir)/Kconfig -$(KCONFIG_AUTOCMD): $(KCONFIG_CONFIG) - $(CMD_PREFIX)mkdir -p $(KCONFIG_DIR) +$(KCONFIG_AUTOHEADER): $(KCONFIG_AUTOCONFIG); + +$(KCONFIG_AUTOLIST): $(KCONFIG_AUTOCONFIG); + +$(KCONFIG_AUTOCMD): $(KCONFIG_AUTOLIST) $(CMD_PREFIX)printf "%s: " $(KCONFIG_CONFIG) > $(KCONFIG_AUTOCMD) $(CMD_PREFIX)cat $(KCONFIG_AUTOLIST) | tr '\n' ' ' >> $(KCONFIG_AUTOCMD) -include $(KCONFIG_CONFIG) +include $(KCONFIG_AUTOCONFIG) include $(KCONFIG_AUTOCMD) endif @@ -510,14 +515,14 @@ $(build_dir)/lib/libsbi.a: $(libsbi-objs-path-y) $(platform_build_dir)/lib/libplatsbi.a: $(libsbi-objs-path-y) $(libsbiutils-objs-path-y) $(platform-objs-path-y) $(call compile_ar,$@,$^) -$(build_dir)/%.dep: $(src_dir)/%.carray $(KCONFIG_CONFIG) - $(call compile_gen_dep,$@,.c,$< $(KCONFIG_CONFIG)) +$(build_dir)/%.dep: $(src_dir)/%.carray $(KCONFIG_AUTOHEADER) + $(call compile_gen_dep,$@,.c,$< $(KCONFIG_AUTOHEADER)) $(call compile_gen_dep,$@,.o,$(@:.dep=.c)) $(build_dir)/%.c: $(src_dir)/%.carray $(call compile_carray,$@,$<) -$(build_dir)/%.dep: $(src_dir)/%.c $(KCONFIG_CONFIG) +$(build_dir)/%.dep: $(src_dir)/%.c $(KCONFIG_AUTOHEADER) $(call compile_cc_dep,$@,$<) $(build_dir)/%.o: $(src_dir)/%.c @@ -531,24 +536,24 @@ $(build_dir)/lib/sbi/sbi_init.o: $(libsbi_dir)/sbi_init.c FORCE $(call compile_cc,$@,$<) endif -$(build_dir)/%.dep: $(src_dir)/%.S $(KCONFIG_CONFIG) +$(build_dir)/%.dep: $(src_dir)/%.S $(KCONFIG_AUTOHEADER) $(call compile_as_dep,$@,$<) $(build_dir)/%.o: $(src_dir)/%.S $(call compile_as,$@,$<) # Rules for platform sources -$(platform_build_dir)/%.dep: $(platform_src_dir)/%.carray $(KCONFIG_CONFIG) - $(call compile_gen_dep,$@,.c,$< $(KCONFIG_CONFIG)) +$(platform_build_dir)/%.dep: $(platform_src_dir)/%.carray $(KCONFIG_AUTOHEADER) + $(call compile_gen_dep,$@,.c,$< $(KCONFIG_AUTOHEADER)) $(call compile_gen_dep,$@,.o,$(@:.dep=.c)) $(platform_build_dir)/%.c: $(platform_src_dir)/%.carray $(call compile_carray,$@,$<) -$(platform_build_dir)/%.dep: $(platform_src_dir)/%.c $(KCONFIG_CONFIG) +$(platform_build_dir)/%.dep: $(platform_src_dir)/%.c $(KCONFIG_AUTOHEADER) $(call compile_cc_dep,$@,$<) -$(platform_build_dir)/%.o: $(platform_src_dir)/%.c $(KCONFIG_CONFIG) +$(platform_build_dir)/%.o: $(platform_src_dir)/%.c $(KCONFIG_AUTOHEADER) $(call compile_cc,$@,$<) $(platform_build_dir)/%.dep: $(platform_src_dir)/%.S @@ -557,8 +562,8 @@ $(platform_build_dir)/%.dep: $(platform_src_dir)/%.S $(platform_build_dir)/%.o: $(platform_src_dir)/%.S $(call compile_as,$@,$<) -$(platform_build_dir)/%.dep: $(platform_src_dir)/%.dts $(KCONFIG_CONFIG) - $(call compile_gen_dep,$@,.dtb,$< $(KCONFIG_CONFIG)) +$(platform_build_dir)/%.dep: $(platform_src_dir)/%.dts $(KCONFIG_AUTOHEADER) + $(call compile_gen_dep,$@,.dtb,$< $(KCONFIG_AUTOHEADER)) $(call compile_gen_dep,$@,.c,$(@:.dep=.dtb)) $(call compile_gen_dep,$@,.o,$(@:.dep=.c)) @@ -575,26 +580,26 @@ $(platform_build_dir)/%.bin: $(platform_build_dir)/%.elf $(platform_build_dir)/%.elf: $(platform_build_dir)/%.o $(platform_build_dir)/%.elf.ld $(platform_build_dir)/lib/libplatsbi.a $(call compile_elf,$@,$@.ld,$< $(platform_build_dir)/lib/libplatsbi.a) -$(platform_build_dir)/%.dep: $(src_dir)/%.ldS $(KCONFIG_CONFIG) +$(platform_build_dir)/%.dep: $(src_dir)/%.ldS $(KCONFIG_AUTOHEADER) $(call compile_cpp_dep,$@,.ld,$<) $(platform_build_dir)/%.ld: $(src_dir)/%.ldS $(call compile_cpp,$@,$<) -$(platform_build_dir)/%.dep: $(src_dir)/%.carray $(KCONFIG_CONFIG) - $(call compile_gen_dep,$@,.c,$< $(KCONFIG_CONFIG)) +$(platform_build_dir)/%.dep: $(src_dir)/%.carray $(KCONFIG_AUTOHEADER) + $(call compile_gen_dep,$@,.c,$< $(KCONFIG_AUTOHEADER)) $(call compile_gen_dep,$@,.o,$(@:.dep=.c)) $(platform_build_dir)/%.c: $(src_dir)/%.carray $(call compile_carray,$@,$<) -$(platform_build_dir)/%.dep: $(src_dir)/%.c $(KCONFIG_CONFIG) +$(platform_build_dir)/%.dep: $(src_dir)/%.c $(KCONFIG_AUTOHEADER) $(call compile_cc_dep,$@,$<) $(platform_build_dir)/%.o: $(src_dir)/%.c $(call compile_cc,$@,$<) -$(platform_build_dir)/%.dep: $(src_dir)/%.S $(KCONFIG_CONFIG) +$(platform_build_dir)/%.dep: $(src_dir)/%.S $(KCONFIG_AUTOHEADER) $(call compile_as_dep,$@,$<) $(platform_build_dir)/%.o: $(src_dir)/%.S |