Merge pull request #7623 from betaflight/bf-allow-per-file-compilation-without-optimization
Allow files to compiled without optimization.
This commit is contained in:
commit
022d2708c8
35
Makefile
35
Makefile
|
@ -215,6 +215,7 @@ CC_DEBUG_OPTIMISATION := $(OPTIMISE_DEFAULT)
|
||||||
CC_DEFAULT_OPTIMISATION := $(OPTIMISATION_BASE) $(OPTIMISE_DEFAULT)
|
CC_DEFAULT_OPTIMISATION := $(OPTIMISATION_BASE) $(OPTIMISE_DEFAULT)
|
||||||
CC_SPEED_OPTIMISATION := $(OPTIMISATION_BASE) $(OPTIMISE_SPEED)
|
CC_SPEED_OPTIMISATION := $(OPTIMISATION_BASE) $(OPTIMISE_SPEED)
|
||||||
CC_SIZE_OPTIMISATION := $(OPTIMISATION_BASE) $(OPTIMISE_SIZE)
|
CC_SIZE_OPTIMISATION := $(OPTIMISATION_BASE) $(OPTIMISE_SIZE)
|
||||||
|
CC_NO_OPTIMISATION :=
|
||||||
|
|
||||||
CFLAGS += $(ARCH_FLAGS) \
|
CFLAGS += $(ARCH_FLAGS) \
|
||||||
$(addprefix -D,$(OPTIONS)) \
|
$(addprefix -D,$(OPTIONS)) \
|
||||||
|
@ -314,19 +315,33 @@ $(TARGET_ELF): $(TARGET_OBJS) $(LD_SCRIPT)
|
||||||
ifeq ($(DEBUG),GDB)
|
ifeq ($(DEBUG),GDB)
|
||||||
$(OBJECT_DIR)/$(TARGET)/%.o: %.c
|
$(OBJECT_DIR)/$(TARGET)/%.o: %.c
|
||||||
$(V1) mkdir -p $(dir $@)
|
$(V1) mkdir -p $(dir $@)
|
||||||
$(V1) echo "%% (debug) $(notdir $<)" "$(STDOUT)" && \
|
$(V1) $(if $(findstring $<,$(NOT_OPTIMISED_SRC)), \
|
||||||
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_DEBUG_OPTIMISATION) $<
|
echo "%% (not optimised) $<" "$(STDOUT)" && \
|
||||||
|
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_NO_OPTIMISATION) $< \
|
||||||
|
, \
|
||||||
|
echo "%% (debug) $<" "$(STDOUT)" && \
|
||||||
|
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_DEBUG_OPTIMISATION) $< \
|
||||||
|
)
|
||||||
else
|
else
|
||||||
$(OBJECT_DIR)/$(TARGET)/%.o: %.c
|
$(OBJECT_DIR)/$(TARGET)/%.o: %.c
|
||||||
$(V1) mkdir -p $(dir $@)
|
$(V1) mkdir -p $(dir $@)
|
||||||
$(V1) $(if $(findstring $(subst ./src/main/,,$<),$(SPEED_OPTIMISED_SRC)), \
|
$(V1) $(if $(findstring $<,$(NOT_OPTIMISED_SRC)), \
|
||||||
echo "%% (speed optimised) $(notdir $<)" "$(STDOUT)" && \
|
echo "%% (not optimised) $<" "$(STDOUT)" && \
|
||||||
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_SPEED_OPTIMISATION) $<, \
|
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_NO_OPTIMISATION) $< \
|
||||||
$(if $(findstring $(subst ./src/main/,,$<),$(SIZE_OPTIMISED_SRC)), \
|
, \
|
||||||
echo "%% (size optimised) $(notdir $<)" "$(STDOUT)" && \
|
$(if $(findstring $(subst ./src/main/,,$<),$(SPEED_OPTIMISED_SRC)), \
|
||||||
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_SIZE_OPTIMISATION) $<, \
|
echo "%% (speed optimised) $<" "$(STDOUT)" && \
|
||||||
echo "%% $(notdir $<)" "$(STDOUT)" && \
|
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_SPEED_OPTIMISATION) $< \
|
||||||
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_DEFAULT_OPTIMISATION) $<))
|
, \
|
||||||
|
$(if $(findstring $(subst ./src/main/,,$<),$(SIZE_OPTIMISED_SRC)), \
|
||||||
|
echo "%% (size optimised) $<" "$(STDOUT)" && \
|
||||||
|
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_SIZE_OPTIMISATION) $< \
|
||||||
|
, \
|
||||||
|
echo "%% (optimised) $<" "$(STDOUT)" && \
|
||||||
|
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_DEFAULT_OPTIMISATION) $< \
|
||||||
|
) \
|
||||||
|
) \
|
||||||
|
)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Assemble
|
# Assemble
|
||||||
|
|
|
@ -336,6 +336,10 @@ endif #!F1
|
||||||
# check if target.mk supplied
|
# check if target.mk supplied
|
||||||
SRC := $(STARTUP_SRC) $(MCU_COMMON_SRC) $(TARGET_SRC) $(VARIANT_SRC)
|
SRC := $(STARTUP_SRC) $(MCU_COMMON_SRC) $(TARGET_SRC) $(VARIANT_SRC)
|
||||||
|
|
||||||
|
# Files that should not be optimized, useful for debugging IMPRECISE cpu faults.
|
||||||
|
# Specify FULL PATH, e.g. "./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_ll_sdmmc.c"
|
||||||
|
NOT_OPTIMISED_SRC := $(NOT_OPTIMISED_SRC) \
|
||||||
|
|
||||||
ifneq ($(DSP_LIB),)
|
ifneq ($(DSP_LIB),)
|
||||||
|
|
||||||
INCLUDE_DIRS += $(DSP_LIB)/Include
|
INCLUDE_DIRS += $(DSP_LIB)/Include
|
||||||
|
|
Loading…
Reference in New Issue