mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
config system: Fix configuration when BUILD_DIR_BASE out-of-tree
Ref #38. Also no longer generates bootloader sdkconfig in source tree.
This commit is contained in:
parent
66882347e8
commit
477d71e589
3
.gitignore
vendored
3
.gitignore
vendored
@ -19,6 +19,3 @@ GPATH
|
|||||||
examples/*/sdkconfig
|
examples/*/sdkconfig
|
||||||
examples/*/sdkconfig.old
|
examples/*/sdkconfig.old
|
||||||
examples/*/build
|
examples/*/build
|
||||||
|
|
||||||
# Bootloader files
|
|
||||||
components/bootloader/src/sdkconfig.old
|
|
@ -13,19 +13,21 @@ ifeq ("$(IS_BOOTLOADER_BUILD)","")
|
|||||||
BOOTLOADER_COMPONENT_PATH := $(COMPONENT_PATH)
|
BOOTLOADER_COMPONENT_PATH := $(COMPONENT_PATH)
|
||||||
BOOTLOADER_BUILD_DIR=$(BUILD_DIR_BASE)/bootloader
|
BOOTLOADER_BUILD_DIR=$(BUILD_DIR_BASE)/bootloader
|
||||||
BOOTLOADER_BIN=$(BOOTLOADER_BUILD_DIR)/bootloader.bin
|
BOOTLOADER_BIN=$(BOOTLOADER_BUILD_DIR)/bootloader.bin
|
||||||
|
BOOTLOADER_SDKCONFIG=$(BOOTLOADER_BUILD_DIR)/sdkconfig
|
||||||
|
|
||||||
# Custom recursive make for bootloader sub-project
|
# Custom recursive make for bootloader sub-project
|
||||||
BOOTLOADER_MAKE=$(MAKE) -C $(BOOTLOADER_COMPONENT_PATH)/src \
|
BOOTLOADER_MAKE=$(MAKE) -C $(BOOTLOADER_COMPONENT_PATH)/src \
|
||||||
MAKEFLAGS= V=$(V) \
|
MAKEFLAGS= V=$(V) SDKCONFIG=$(BOOTLOADER_SDKCONFIG) \
|
||||||
BUILD_DIR_BASE=$(BOOTLOADER_BUILD_DIR) \
|
BUILD_DIR_BASE=$(BOOTLOADER_BUILD_DIR) \
|
||||||
|
|
||||||
.PHONY: bootloader-clean bootloader-flash bootloader $(BOOTLOADER_BIN)
|
.PHONY: bootloader-clean bootloader-flash bootloader $(BOOTLOADER_BIN)
|
||||||
|
|
||||||
$(BOOTLOADER_BIN): $(COMPONENT_PATH)/src/sdkconfig
|
$(BOOTLOADER_BIN): | $(BOOTLOADER_BUILD_DIR)/sdkconfig
|
||||||
$(Q) $(BOOTLOADER_MAKE) $@
|
$(Q) $(BOOTLOADER_MAKE) $@
|
||||||
|
|
||||||
bootloader-clean:
|
bootloader-clean:
|
||||||
$(Q) $(BOOTLOADER_MAKE) app-clean
|
$(Q) $(BOOTLOADER_MAKE) app-clean config-clean
|
||||||
|
$(Q) rm -f $(BOOTLOADER_SDKCONFIG) $(BOOTLOADER_SDKCONFIG).old
|
||||||
|
|
||||||
clean: bootloader-clean
|
clean: bootloader-clean
|
||||||
|
|
||||||
@ -37,15 +39,17 @@ all_binaries: $(BOOTLOADER_BIN)
|
|||||||
|
|
||||||
ESPTOOL_ALL_FLASH_ARGS += 0x1000 $(BOOTLOADER_BIN)
|
ESPTOOL_ALL_FLASH_ARGS += 0x1000 $(BOOTLOADER_BIN)
|
||||||
|
|
||||||
# synchronise the project level config to the component's
|
|
||||||
# config
|
|
||||||
$(COMPONENT_PATH)/src/sdkconfig: $(PROJECT_PATH)/sdkconfig
|
|
||||||
$(Q) cp $< $@
|
|
||||||
|
|
||||||
# bootloader-flash calls flash in the bootloader dummy project
|
# bootloader-flash calls flash in the bootloader dummy project
|
||||||
bootloader-flash: $(BOOTLOADER_BIN)
|
bootloader-flash: $(BOOTLOADER_BIN)
|
||||||
$(BOOTLOADER_MAKE) flash
|
$(BOOTLOADER_MAKE) flash
|
||||||
|
|
||||||
|
# synchronise the project level config to the bootloader's
|
||||||
|
# config
|
||||||
|
$(BOOTLOADER_SDKCONFIG): $(PROJECT_PATH)/sdkconfig | $(BOOTLOADER_BUILD_DIR)
|
||||||
|
$(Q) cp $< $@
|
||||||
|
|
||||||
|
$(BOOTLOADER_BUILD_DIR):
|
||||||
|
$(Q) mkdir -p $@
|
||||||
|
|
||||||
else
|
else
|
||||||
CFLAGS += -D BOOTLOADER_BUILD=1 -I $(IDF_PATH)/components/esp32/include
|
CFLAGS += -D BOOTLOADER_BUILD=1 -I $(IDF_PATH)/components/esp32/include
|
||||||
|
@ -7,6 +7,10 @@ COMPONENT_KCONFIGS_PROJBUILD := $(foreach component,$(COMPONENT_PATHS),$(wildcar
|
|||||||
#For doing make menuconfig etc
|
#For doing make menuconfig etc
|
||||||
KCONFIG_TOOL_DIR=$(IDF_PATH)/tools/kconfig
|
KCONFIG_TOOL_DIR=$(IDF_PATH)/tools/kconfig
|
||||||
|
|
||||||
|
# set SDKCONFIG to the project's sdkconfig,
|
||||||
|
# unless it's overriden (happens for bootloader)
|
||||||
|
SDKCONFIG ?= $(PROJECT_PATH)/sdkconfig
|
||||||
|
|
||||||
# clear MAKEFLAGS as the menuconfig makefile uses implicit compile rules
|
# clear MAKEFLAGS as the menuconfig makefile uses implicit compile rules
|
||||||
$(KCONFIG_TOOL_DIR)/mconf $(KCONFIG_TOOL_DIR)/conf:
|
$(KCONFIG_TOOL_DIR)/mconf $(KCONFIG_TOOL_DIR)/conf:
|
||||||
MAKEFLAGS="" \
|
MAKEFLAGS="" \
|
||||||
@ -15,17 +19,16 @@ $(KCONFIG_TOOL_DIR)/mconf $(KCONFIG_TOOL_DIR)/conf:
|
|||||||
|
|
||||||
# use a wrapper environment for where we run Kconfig tools
|
# use a wrapper environment for where we run Kconfig tools
|
||||||
KCONFIG_TOOL_ENV=KCONFIG_AUTOHEADER=$(BUILD_DIR_BASE)/include/sdkconfig.h \
|
KCONFIG_TOOL_ENV=KCONFIG_AUTOHEADER=$(BUILD_DIR_BASE)/include/sdkconfig.h \
|
||||||
KCONFIG_CONFIG=$(PROJECT_PATH)/sdkconfig \
|
COMPONENT_KCONFIGS="$(COMPONENT_KCONFIGS)" KCONFIG_CONFIG=$(SDKCONFIG) \
|
||||||
COMPONENT_KCONFIGS="$(COMPONENT_KCONFIGS)" \
|
|
||||||
COMPONENT_KCONFIGS_PROJBUILD="$(COMPONENT_KCONFIGS_PROJBUILD)"
|
COMPONENT_KCONFIGS_PROJBUILD="$(COMPONENT_KCONFIGS_PROJBUILD)"
|
||||||
|
|
||||||
menuconfig: $(KCONFIG_TOOL_DIR)/mconf $(IDF_PATH)/Kconfig $(BUILD_DIR_BASE)
|
menuconfig: $(KCONFIG_TOOL_DIR)/mconf $(IDF_PATH)/Kconfig $(BUILD_DIR_BASE)
|
||||||
$(summary) MENUCONFIG
|
$(summary) MENUCONFIG
|
||||||
$(Q) $(KCONFIG_TOOL_ENV) $(KCONFIG_TOOL_DIR)/mconf $(IDF_PATH)/Kconfig
|
$(Q) $(KCONFIG_TOOL_ENV) $(KCONFIG_TOOL_DIR)/mconf $(IDF_PATH)/Kconfig
|
||||||
|
|
||||||
ifeq ("$(wildcard $(PROJECT_PATH)/sdkconfig)","")
|
ifeq ("$(wildcard $(SDKCONFIG))","")
|
||||||
#No sdkconfig found. Need to run menuconfig to make this if we need it.
|
#No sdkconfig found. Need to run menuconfig to make this if we need it.
|
||||||
$(PROJECT_PATH)/sdkconfig: menuconfig
|
$(SDKCONFIG): menuconfig
|
||||||
endif
|
endif
|
||||||
|
|
||||||
defconfig: $(KCONFIG_TOOL_DIR)/mconf $(IDF_PATH)/Kconfig $(BUILD_DIR_BASE)
|
defconfig: $(KCONFIG_TOOL_DIR)/mconf $(IDF_PATH)/Kconfig $(BUILD_DIR_BASE)
|
||||||
@ -48,7 +51,7 @@ $(BUILD_DIR_BASE)/include/config/auto.conf:
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(AUTO_CONF_REGEN_TARGET) $(BUILD_DIR_BASE)/include/sdkconfig.h: $(PROJECT_PATH)/sdkconfig $(KCONFIG_TOOL_DIR)/conf $(COMPONENT_KCONFIGS) $(COMPONENT_KCONFIGS_PROJBUILD)
|
$(AUTO_CONF_REGEN_TARGET) $(BUILD_DIR_BASE)/include/sdkconfig.h: $(SDKCONFIG) $(KCONFIG_TOOL_DIR)/conf $(COMPONENT_KCONFIGS) $(COMPONENT_KCONFIGS_PROJBUILD)
|
||||||
$(summary) GENCONFIG
|
$(summary) GENCONFIG
|
||||||
$(Q) mkdir -p $(BUILD_DIR_BASE)/include/config
|
$(Q) mkdir -p $(BUILD_DIR_BASE)/include/config
|
||||||
$(Q) cd $(BUILD_DIR_BASE); $(KCONFIG_TOOL_ENV) $(KCONFIG_TOOL_DIR)/conf --silentoldconfig $(IDF_PATH)/Kconfig
|
$(Q) cd $(BUILD_DIR_BASE); $(KCONFIG_TOOL_ENV) $(KCONFIG_TOOL_DIR)/conf --silentoldconfig $(IDF_PATH)/Kconfig
|
||||||
|
Loading…
Reference in New Issue
Block a user