mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
66fb5a29bb
Apply the pre-commit hook whitespace fixes to all files in the repo. (Line endings, blank lines at end of file, trailing whitespace)
99 lines
3.0 KiB
Makefile
99 lines
3.0 KiB
Makefile
ifndef COMPONENT
|
|
COMPONENT := wl
|
|
endif
|
|
|
|
COMPONENT_LIB := lib$(COMPONENT).a
|
|
TEST_PROGRAM := test_$(COMPONENT)
|
|
|
|
STUBS_LIB_DIR := ../../../components/spi_flash/sim/stubs
|
|
STUBS_LIB_BUILD_DIR := $(STUBS_LIB_DIR)/build
|
|
STUBS_LIB := libstubs.a
|
|
|
|
SPI_FLASH_SIM_DIR := ../../../components/spi_flash/sim
|
|
SPI_FLASH_SIM_BUILD_DIR := $(SPI_FLASH_SIM_DIR)/build
|
|
SPI_FLASH_SIM_LIB := libspi_flash.a
|
|
|
|
include Makefile.files
|
|
|
|
all: test
|
|
|
|
|
|
ifndef SDKCONFIG
|
|
SDKCONFIG_DIR := $(dir $(realpath sdkconfig/sdkconfig.h))
|
|
SDKCONFIG := $(SDKCONFIG_DIR)sdkconfig.h
|
|
else
|
|
SDKCONFIG_DIR := $(dir $(realpath $(SDKCONFIG)))
|
|
endif
|
|
|
|
INCLUDE_FLAGS := $(addprefix -I, $(INCLUDE_DIRS) $(SDKCONFIG_DIR) ../../../tools/catch)
|
|
|
|
CPPFLAGS += $(INCLUDE_FLAGS) -g -m32
|
|
CXXFLAGS += $(INCLUDE_FLAGS) -std=c++11 -g -m32
|
|
|
|
# Build libraries that this component is dependent on
|
|
$(STUBS_LIB_BUILD_DIR)/$(STUBS_LIB): force
|
|
$(MAKE) -C $(STUBS_LIB_DIR) lib SDKCONFIG=$(SDKCONFIG)
|
|
|
|
$(SPI_FLASH_SIM_BUILD_DIR)/$(SPI_FLASH_SIM_LIB): force
|
|
$(MAKE) -C $(SPI_FLASH_SIM_DIR) lib SDKCONFIG=$(SDKCONFIG)
|
|
|
|
# Create target for building this component as a library
|
|
CFILES := $(filter %.c, $(SOURCE_FILES))
|
|
CPPFILES := $(filter %.cpp, $(SOURCE_FILES))
|
|
|
|
CTARGET = ${2}/$(patsubst %.c,%.o,$(notdir ${1}))
|
|
CPPTARGET = ${2}/$(patsubst %.cpp,%.o,$(notdir ${1}))
|
|
|
|
ifndef BUILD_DIR
|
|
BUILD_DIR := build
|
|
endif
|
|
|
|
OBJ_FILES := $(addprefix $(BUILD_DIR)/, $(filter %.o, $(notdir $(SOURCE_FILES:.cpp=.o) $(SOURCE_FILES:.c=.o))))
|
|
|
|
define COMPILE_C
|
|
$(call CTARGET, ${1}, $(BUILD_DIR)) : ${1} $(SDKCONFIG)
|
|
mkdir -p $(BUILD_DIR)
|
|
$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $(call CTARGET, ${1}, $(BUILD_DIR)) ${1}
|
|
endef
|
|
|
|
define COMPILE_CPP
|
|
$(call CPPTARGET, ${1}, $(BUILD_DIR)) : ${1} $(SDKCONFIG)
|
|
mkdir -p $(BUILD_DIR)
|
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $(call CPPTARGET, ${1}, $(BUILD_DIR)) ${1}
|
|
endef
|
|
|
|
$(BUILD_DIR)/$(COMPONENT_LIB): $(OBJ_FILES) $(SDKCONFIG)
|
|
mkdir -p $(BUILD_DIR)
|
|
$(AR) rcs $@ $^
|
|
|
|
clean:
|
|
$(MAKE) -C $(STUBS_LIB_DIR) clean
|
|
$(MAKE) -C $(SPI_FLASH_SIM_DIR) clean
|
|
rm -f $(OBJ_FILES) $(TEST_OBJ_FILES) $(TEST_PROGRAM) $(COMPONENT_LIB) partition_table.bin
|
|
|
|
lib: $(BUILD_DIR)/$(COMPONENT_LIB)
|
|
|
|
$(foreach cfile, $(CFILES), $(eval $(call COMPILE_C, $(cfile))))
|
|
$(foreach cxxfile, $(CPPFILES), $(eval $(call COMPILE_CPP, $(cxxfile))))
|
|
|
|
# Create target for building this component as a test
|
|
TEST_SOURCE_FILES = \
|
|
test_wl.cpp \
|
|
main.cpp \
|
|
|
|
TEST_OBJ_FILES = $(filter %.o, $(TEST_SOURCE_FILES:.cpp=.o) $(TEST_SOURCE_FILES:.c=.o))
|
|
|
|
$(TEST_PROGRAM): lib $(TEST_OBJ_FILES) $(SPI_FLASH_SIM_BUILD_DIR)/$(SPI_FLASH_SIM_LIB) $(STUBS_LIB_BUILD_DIR)/$(STUBS_LIB) partition_table.bin $(SDKCONFIG)
|
|
g++ $(LDFLAGS) $(CXXFLAGS) -o $@ $(TEST_OBJ_FILES) -L$(BUILD_DIR) -l:$(COMPONENT_LIB) -L$(SPI_FLASH_SIM_BUILD_DIR) -l:$(SPI_FLASH_SIM_LIB) -L$(STUBS_LIB_BUILD_DIR) -l:$(STUBS_LIB)
|
|
|
|
test: $(TEST_PROGRAM)
|
|
./$(TEST_PROGRAM)
|
|
|
|
# Create other necessary targets
|
|
partition_table.bin: partition_table.csv
|
|
python ../../../components/partition_table/gen_esp32part.py --verify $< $@
|
|
|
|
force:
|
|
|
|
.PHONY: all lib test clean force
|