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_SPEED_OPTIMISATION := $(OPTIMISATION_BASE) $(OPTIMISE_SPEED)
|
||||
CC_SIZE_OPTIMISATION := $(OPTIMISATION_BASE) $(OPTIMISE_SIZE)
|
||||
CC_NO_OPTIMISATION :=
|
||||
|
||||
CFLAGS += $(ARCH_FLAGS) \
|
||||
$(addprefix -D,$(OPTIONS)) \
|
||||
|
@ -314,19 +315,33 @@ $(TARGET_ELF): $(TARGET_OBJS) $(LD_SCRIPT)
|
|||
ifeq ($(DEBUG),GDB)
|
||||
$(OBJECT_DIR)/$(TARGET)/%.o: %.c
|
||||
$(V1) mkdir -p $(dir $@)
|
||||
$(V1) echo "%% (debug) $(notdir $<)" "$(STDOUT)" && \
|
||||
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_DEBUG_OPTIMISATION) $<
|
||||
$(V1) $(if $(findstring $<,$(NOT_OPTIMISED_SRC)), \
|
||||
echo "%% (not optimised) $<" "$(STDOUT)" && \
|
||||
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_NO_OPTIMISATION) $< \
|
||||
, \
|
||||
echo "%% (debug) $<" "$(STDOUT)" && \
|
||||
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_DEBUG_OPTIMISATION) $< \
|
||||
)
|
||||
else
|
||||
$(OBJECT_DIR)/$(TARGET)/%.o: %.c
|
||||
$(V1) mkdir -p $(dir $@)
|
||||
$(V1) $(if $(findstring $(subst ./src/main/,,$<),$(SPEED_OPTIMISED_SRC)), \
|
||||
echo "%% (speed optimised) $(notdir $<)" "$(STDOUT)" && \
|
||||
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_SPEED_OPTIMISATION) $<, \
|
||||
$(if $(findstring $(subst ./src/main/,,$<),$(SIZE_OPTIMISED_SRC)), \
|
||||
echo "%% (size optimised) $(notdir $<)" "$(STDOUT)" && \
|
||||
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_SIZE_OPTIMISATION) $<, \
|
||||
echo "%% $(notdir $<)" "$(STDOUT)" && \
|
||||
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_DEFAULT_OPTIMISATION) $<))
|
||||
$(V1) $(if $(findstring $<,$(NOT_OPTIMISED_SRC)), \
|
||||
echo "%% (not optimised) $<" "$(STDOUT)" && \
|
||||
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_NO_OPTIMISATION) $< \
|
||||
, \
|
||||
$(if $(findstring $(subst ./src/main/,,$<),$(SPEED_OPTIMISED_SRC)), \
|
||||
echo "%% (speed optimised) $<" "$(STDOUT)" && \
|
||||
$(CROSS_CC) -c -o $@ $(CFLAGS) $(CC_SPEED_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
|
||||
|
||||
# Assemble
|
||||
|
|
|
@ -336,6 +336,10 @@ endif #!F1
|
|||
# check if target.mk supplied
|
||||
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),)
|
||||
|
||||
INCLUDE_DIRS += $(DSP_LIB)/Include
|
||||
|
|
Loading…
Reference in New Issue