我現在有一個make文件,其中一部分如下所示。條件編譯Makefile中
####################################################################
# Files #
####################################################################
C_SRC += \
CMSIS/CM3/CoreSupport/core_cm3.c \
CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.c \
efm32lib/src/efm32_assert.c \
efm32lib/src/efm32_system.c \
efm32lib/src/efm32_gpio.c \
efm32lib/src/efm32_cmu.c \
efm32lib/src/efm32_usart.c \
efm32lib/src/efm32_i2c.c \
efm32lib/src/efm32_dma.c \
efm32lib/src/efm32_timer.c \
efm32lib/src/efm32_int.c \
efm32lib/src/efm32_emu.c \
efm32lib/src/efm32_adc.c \
efm32lib/src/efm32_rtc.c \
radio.c \
led.c \
trace.c \
main.c
S_SRC += \
CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/startup/cs3/startup_efm32.s
####################################################################
# Rules #
####################################################################
C_FILES = $(notdir $(C_SRC))
S_FILES = $(notdir $(S_SRC))
#make list of source paths, sort also removes duplicates
C_PATHS = $(sort $(dir $(C_SRC)))
S_PATHS = $(sort $(dir $(S_SRC)))
C_OBJS = $(addprefix $(OBJ_DIR)/, $(C_FILES:.c=.o))
S_OBJS = $(addprefix $(OBJ_DIR)/, $(S_FILES:.s=.o))
C_DEPS = $(addprefix $(OBJ_DIR)/, $(C_FILES:.c=.d))
vpath %.c $(C_PATHS)
vpath %.s $(S_PATHS)
# Default build is debug build
all: debug
debug: CFLAGS += -DDEBUG -O0 -g3
debug: $(OBJ_DIR) $(LST_DIR) $(EXE_DIR) $(EXE_DIR)/$(PROJECTNAME).bin
release: CFLAGS += -DNDEBUG -O3
release: $(OBJ_DIR) $(LST_DIR) $(EXE_DIR) $(EXE_DIR)/$(PROJECTNAME).bin
base: CFLAGS += -DDEBUG -O0 -g3
base: $(OBJ_DIR) $(LST_DIR) $(EXE_DIR) $(EXE_DIR)/$(PROJECTNAME).bin
從本質上講就是我想要做的是,如果它與基本目標運行,那麼我想mainbase.c
我已經嘗試了幾個小時,現在改main.c文件中C_SRC
並沒有得到它的地方。有什麼建議?
謝謝!
還有一個更簡單的方法,但是你有沒有告訴我們的規則,建立事物的實際配方休息。 – Beta