mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
examples: Move sdkconfig.defaults support into build system
Is used fairly widely, and a little bit buggy in the form where it was in each Makefile (didn't always get copied in place).
This commit is contained in:
parent
d0fccbce15
commit
2350288a33
@ -477,3 +477,12 @@ is set then the component can instruct the linker to link other binaries instead
|
|||||||
.. _esp-idf-template: https://github.com/espressif/esp-idf-template
|
.. _esp-idf-template: https://github.com/espressif/esp-idf-template
|
||||||
.. _GNU Make Manual: https://www.gnu.org/software/make/manual/make.html
|
.. _GNU Make Manual: https://www.gnu.org/software/make/manual/make.html
|
||||||
.. _[_f1]: Actually, some components in esp-idf are "pure configuration" components that don't have a component.mk file, only a Makefile.projbuild and/or Kconfig.projbuild file. However, these components are unusual and most components have a component.mk file.
|
.. _[_f1]: Actually, some components in esp-idf are "pure configuration" components that don't have a component.mk file, only a Makefile.projbuild and/or Kconfig.projbuild file. However, these components are unusual and most components have a component.mk file.
|
||||||
|
|
||||||
|
|
||||||
|
Custom sdkconfig defaults
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
For example projects or other projects where you don't want to specify a full sdkconfig configuration, but you do want to override some key values from the esp-idf defaults, it is possible to create a file ``sdkconfig.defaults`` in the project directory. This file will be used when running ``make defconfig``, or creating a new config from scratch.
|
||||||
|
|
||||||
|
To override the name of this file, set the ``SDKCONFIG_DEFAULTS`` environment variable.
|
||||||
|
|
||||||
|
@ -6,11 +6,3 @@
|
|||||||
PROJECT_NAME := ble_adv
|
PROJECT_NAME := ble_adv
|
||||||
|
|
||||||
include $(IDF_PATH)/make/project.mk
|
include $(IDF_PATH)/make/project.mk
|
||||||
|
|
||||||
# Copy some defaults into the sdkconfig by default
|
|
||||||
# so BT stack is enabled
|
|
||||||
sdkconfig: sdkconfig.defaults
|
|
||||||
$(Q) cp $< $@
|
|
||||||
|
|
||||||
menuconfig: sdkconfig
|
|
||||||
defconfig: sdkconfig
|
|
||||||
|
@ -8,11 +8,3 @@ PROJECT_NAME := blufi_demo
|
|||||||
COMPONENT_ADD_INCLUDEDIRS := components/include
|
COMPONENT_ADD_INCLUDEDIRS := components/include
|
||||||
|
|
||||||
include $(IDF_PATH)/make/project.mk
|
include $(IDF_PATH)/make/project.mk
|
||||||
|
|
||||||
# Copy some defaults into the sdkconfig by default
|
|
||||||
# so BT stack is enabled
|
|
||||||
sdkconfig: sdkconfig.defaults
|
|
||||||
$(Q) cp $< $@
|
|
||||||
|
|
||||||
menuconfig: sdkconfig
|
|
||||||
defconfig: sdkconfig
|
|
||||||
|
@ -8,11 +8,3 @@ PROJECT_NAME := gatt_server_demos
|
|||||||
COMPONENT_ADD_INCLUDEDIRS := components/include
|
COMPONENT_ADD_INCLUDEDIRS := components/include
|
||||||
|
|
||||||
include $(IDF_PATH)/make/project.mk
|
include $(IDF_PATH)/make/project.mk
|
||||||
|
|
||||||
# Copy some defaults into the sdkconfig by default
|
|
||||||
# so BT stack is enabled
|
|
||||||
sdkconfig: sdkconfig.defaults
|
|
||||||
$(Q) cp $< $@
|
|
||||||
|
|
||||||
menuconfig: sdkconfig
|
|
||||||
defconfig: sdkconfig
|
|
||||||
|
@ -8,11 +8,3 @@ PROJECT_NAME := gatt_client_demo
|
|||||||
COMPONENT_ADD_INCLUDEDIRS := components/include
|
COMPONENT_ADD_INCLUDEDIRS := components/include
|
||||||
|
|
||||||
include $(IDF_PATH)/make/project.mk
|
include $(IDF_PATH)/make/project.mk
|
||||||
|
|
||||||
# Copy some defaults into the sdkconfig by default
|
|
||||||
# so BT stack is enabled
|
|
||||||
sdkconfig: sdkconfig.defaults
|
|
||||||
$(Q) cp $< $@
|
|
||||||
|
|
||||||
menuconfig: sdkconfig
|
|
||||||
defconfig: sdkconfig
|
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
# Some sdkconfig parameters overriden from the defaults for this example,
|
|
||||||
# This file is in git but will be overwritten with the autogenerated file
|
|
||||||
# the first time "menuconfig" is run (changes ignored by git).
|
|
||||||
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
|
||||||
CONFIG_PARTITION_TABLE_TWO_OTA=y
|
|
4
examples/18_ota/sdkconfig.defaults
Normal file
4
examples/18_ota/sdkconfig.defaults
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Default sdkconfig parameters to use the OTA
|
||||||
|
# partition table layout, with a 4MB flash size
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
||||||
|
CONFIG_PARTITION_TABLE_TWO_OTA=y
|
@ -11,6 +11,10 @@ KCONFIG_TOOL_DIR=$(IDF_PATH)/tools/kconfig
|
|||||||
# unless it's overriden (happens for bootloader)
|
# unless it's overriden (happens for bootloader)
|
||||||
SDKCONFIG ?= $(PROJECT_PATH)/sdkconfig
|
SDKCONFIG ?= $(PROJECT_PATH)/sdkconfig
|
||||||
|
|
||||||
|
# SDKCONFIG_DEFAULTS is an optional file containing default
|
||||||
|
# overrides (usually used for esp-idf examples)
|
||||||
|
SDKCONFIG_DEFAULTS ?= $(PROJECT_PATH)/sdkconfig.defaults
|
||||||
|
|
||||||
# reset MAKEFLAGS as the menuconfig makefile uses implicit compile rules
|
# reset 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=$(ORIGINAL_MAKEFLAGS) CC=$(HOSTCC) LD=$(HOSTLD) \
|
MAKEFLAGS=$(ORIGINAL_MAKEFLAGS) CC=$(HOSTCC) LD=$(HOSTLD) \
|
||||||
@ -21,21 +25,29 @@ KCONFIG_TOOL_ENV=KCONFIG_AUTOHEADER=$(abspath $(BUILD_DIR_BASE)/include/sdkconfi
|
|||||||
COMPONENT_KCONFIGS="$(COMPONENT_KCONFIGS)" KCONFIG_CONFIG=$(SDKCONFIG) \
|
COMPONENT_KCONFIGS="$(COMPONENT_KCONFIGS)" KCONFIG_CONFIG=$(SDKCONFIG) \
|
||||||
COMPONENT_KCONFIGS_PROJBUILD="$(COMPONENT_KCONFIGS_PROJBUILD)"
|
COMPONENT_KCONFIGS_PROJBUILD="$(COMPONENT_KCONFIGS_PROJBUILD)"
|
||||||
|
|
||||||
menuconfig: $(KCONFIG_TOOL_DIR)/mconf $(IDF_PATH)/Kconfig
|
menuconfig: $(KCONFIG_TOOL_DIR)/mconf $(IDF_PATH)/Kconfig | defconfig
|
||||||
$(summary) MENUCONFIG
|
$(summary) MENUCONFIG
|
||||||
$(KCONFIG_TOOL_ENV) $(KCONFIG_TOOL_DIR)/mconf $(IDF_PATH)/Kconfig
|
$(KCONFIG_TOOL_ENV) $(KCONFIG_TOOL_DIR)/mconf $(IDF_PATH)/Kconfig
|
||||||
|
|
||||||
ifeq ("$(wildcard $(SDKCONFIG))","")
|
ifeq ("$(wildcard $(SDKCONFIG))","")
|
||||||
ifeq ("$(call prereq_if_explicit,defconfig)","")
|
ifeq ("$(call prereq_if_explicit,defconfig)","")
|
||||||
# if not configuration is present and defconfig is not a target, run makeconfig
|
# if not configuration is present and defconfig is not a target, run defconfig then menuconfig
|
||||||
$(SDKCONFIG): menuconfig
|
$(SDKCONFIG): defconfig menuconfig
|
||||||
else
|
else
|
||||||
|
# otherwise, just defconfig
|
||||||
$(SDKCONFIG): defconfig
|
$(SDKCONFIG): defconfig
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
$(wildcard $(PROJECT_PATH)/sdkconfig.defaults): | menuconfig defconfig
|
||||||
|
cp $< $@
|
||||||
|
|
||||||
|
# defconfig creates a default config, based on SDKCONFIG_DEFAULTS if present
|
||||||
defconfig: $(KCONFIG_TOOL_DIR)/mconf $(IDF_PATH)/Kconfig $(BUILD_DIR_BASE)
|
defconfig: $(KCONFIG_TOOL_DIR)/mconf $(IDF_PATH)/Kconfig $(BUILD_DIR_BASE)
|
||||||
$(summary) DEFCONFIG
|
$(summary) DEFCONFIG
|
||||||
|
ifneq ("$(wildcard $(SDKCONFIG_DEFAULTS))","")
|
||||||
|
cp $(SDKCONFIG_DEFAULTS) $(SDKCONFIG)
|
||||||
|
endif
|
||||||
mkdir -p $(BUILD_DIR_BASE)/include/config
|
mkdir -p $(BUILD_DIR_BASE)/include/config
|
||||||
$(KCONFIG_TOOL_ENV) $(KCONFIG_TOOL_DIR)/conf --olddefconfig $(IDF_PATH)/Kconfig
|
$(KCONFIG_TOOL_ENV) $(KCONFIG_TOOL_DIR)/conf --olddefconfig $(IDF_PATH)/Kconfig
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user