diff --git a/components/bootloader/src/main/bootloader_config.h b/components/bootloader/src/main/bootloader_config.h index d097083d2..6b37899ac 100644 --- a/components/bootloader/src/main/bootloader_config.h +++ b/components/bootloader/src/main/bootloader_config.h @@ -23,7 +23,6 @@ extern "C" #include "esp_flash_data_types.h" -#define BOOT_VERSION "V0.1" #define SPI_SEC_SIZE 0x1000 #define IROM_LOW 0x400D0000 #define IROM_HIGH 0x40400000 diff --git a/components/bootloader/src/main/bootloader_start.c b/components/bootloader/src/main/bootloader_start.c index dfcfb0a08..a374c4306 100644 --- a/components/bootloader/src/main/bootloader_start.c +++ b/components/bootloader/src/main/bootloader_start.c @@ -242,7 +242,7 @@ void bootloader_main() rtc_set_cpu_freq(CPU_80M); uart_console_configure(); - ESP_LOGI(TAG, "Espressif ESP32 2nd stage bootloader v. %s", BOOT_VERSION); + ESP_LOGI(TAG, "ESP-IDF %s 2nd stage bootloader", IDF_VER); #if defined(CONFIG_SECURE_BOOT_ENABLED) || defined(CONFIG_FLASH_ENCRYPTION_ENABLED) esp_err_t err; #endif diff --git a/docs/build_system.rst b/docs/build_system.rst index 2e388bd49..7a33a4125 100644 --- a/docs/build_system.rst +++ b/docs/build_system.rst @@ -166,6 +166,7 @@ The following variables are set at the project level, but exported for use in th - ``CONFIG_*``: Each value in the project configuration has a corresponding variable available in make. All names begin with ``CONFIG_``. - ``CC``, ``LD``, ``AR``, ``OBJCOPY``: Full paths to each tool from the gcc xtensa cross-toolchain. - ``HOSTCC``, ``HOSTLD``, ``HOSTAR``: Full names of each tool from the host native toolchain. +- ``IDF_VER``: Git version of ESP-IDF (produced by ``git describe``) If you modify any of these variables inside ``component.mk`` then this will not prevent other components from building but it may make your component hard to build and/or debug. @@ -267,6 +268,14 @@ To create a component KConfig file, it is easiest to start with one of the KConf For an example, see `Adding conditional configuration`. +Preprocessor Definitions +------------------------ + +ESP-IDF build systems adds the following C preprocessor definitions on the command line: + +- ``ESP_PLATFORM`` — Can be used to detect that build happens within ESP-IDF. +- ``IDF_VER`` — Defined to a git version string. E.g. ``v2.0`` for a tagged release or ``v1.0-275-g0efaa4f`` for an arbitrary commit. + Build Process Internals ----------------------- diff --git a/make/project.mk b/make/project.mk index 2b8eedeeb..ee8c07794 100644 --- a/make/project.mk +++ b/make/project.mk @@ -176,6 +176,10 @@ else endif @echo $(ESPTOOLPY_WRITE_FLASH) $(ESPTOOL_ALL_FLASH_ARGS) + +# Git version of ESP-IDF (of the form v1.0-285-g5c4f707) +IDF_VER := $(shell git describe) + # Set default LDFLAGS LDFLAGS ?= -nostdlib \ @@ -201,7 +205,7 @@ LDFLAGS ?= -nostdlib \ # CPPFLAGS used by C preprocessor # If any flags are defined in application Makefile, add them at the end. -CPPFLAGS := -DESP_PLATFORM -MMD -MP $(CPPFLAGS) $(EXTRA_CPPFLAGS) +CPPFLAGS := -DESP_PLATFORM -D IDF_VER=\"$(IDF_VER)\" -MMD -MP $(CPPFLAGS) $(EXTRA_CPPFLAGS) # Warnings-related flags relevant both for C and C++ COMMON_WARNING_FLAGS = -Wall -Werror=all \