Use order only prerequisites to avoid re-linking
The prerequisites at the start of the build process are order-only so that the trget don't link again. Also added as a dependency to the compilation to force the messages to be printed at the start
This commit is contained in:
parent
e8e300d5c4
commit
6911ead027
1 changed files with 11 additions and 9 deletions
|
@ -360,49 +360,51 @@ gccversion :
|
||||||
$(eval CMD=$(AR) $@ $(OBJ) )
|
$(eval CMD=$(AR) $@ $(OBJ) )
|
||||||
@$(BUILD_CMD)
|
@$(BUILD_CMD)
|
||||||
|
|
||||||
|
BEGIN = gccversion check_submodule sizebefore
|
||||||
|
|
||||||
# Link: create ELF output file from object files.
|
# Link: create ELF output file from object files.
|
||||||
.SECONDARY : $(BUILD_DIR)/$(TARGET).elf
|
.SECONDARY : $(BUILD_DIR)/$(TARGET).elf
|
||||||
.PRECIOUS : $(OBJ)
|
.PRECIOUS : $(OBJ)
|
||||||
%.elf: gccversion sizebefore check_submodule $(OBJ)
|
%.elf: $(OBJ) | $(BEGIN)
|
||||||
@$(SILENT) || printf "$(MSG_LINKING) $@" | $(AWK_CMD)
|
@$(SILENT) || printf "$(MSG_LINKING) $@" | $(AWK_CMD)
|
||||||
$(eval CMD=$(CC) $(ALL_CFLAGS) $(filter-out gccversion sizebefore check_submodule,$^) --output $@ $(LDFLAGS))
|
$(eval CMD=$(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS))
|
||||||
@$(BUILD_CMD)
|
@$(BUILD_CMD)
|
||||||
|
|
||||||
# Compile: create object files from C source files.
|
# Compile: create object files from C source files.
|
||||||
$(OBJDIR)/%.o : %.c
|
$(OBJDIR)/%.o : %.c | $(BEGIN)
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@$(SILENT) || printf "$(MSG_COMPILING) $<" | $(AWK_CMD)
|
@$(SILENT) || printf "$(MSG_COMPILING) $<" | $(AWK_CMD)
|
||||||
$(eval CMD=$(CC) -c $(ALL_CFLAGS) $< -o $@)
|
$(eval CMD=$(CC) -c $(ALL_CFLAGS) $< -o $@)
|
||||||
@$(BUILD_CMD)
|
@$(BUILD_CMD)
|
||||||
|
|
||||||
# Compile: create object files from C++ source files.
|
# Compile: create object files from C++ source files.
|
||||||
$(OBJDIR)/%.o : %.cpp
|
$(OBJDIR)/%.o : %.cpp | $(BEGIN)
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@$(SILENT) || printf "$(MSG_COMPILING_CPP) $<" | $(AWK_CMD)
|
@$(SILENT) || printf "$(MSG_COMPILING_CPP) $<" | $(AWK_CMD)
|
||||||
$(eval CMD=$(CC) -c $(ALL_CPPFLAGS) $< -o $@)
|
$(eval CMD=$(CC) -c $(ALL_CPPFLAGS) $< -o $@)
|
||||||
@$(BUILD_CMD)
|
@$(BUILD_CMD)
|
||||||
|
|
||||||
# Compile: create assembler files from C source files.
|
# Compile: create assembler files from C source files.
|
||||||
%.s : %.c
|
%.s : %.c | $(BEGIN)
|
||||||
@$(SILENT) || printf "$(MSG_ASSEMBLING) $<" | $(AWK_CMD)
|
@$(SILENT) || printf "$(MSG_ASSEMBLING) $<" | $(AWK_CMD)
|
||||||
$(eval CMD=$(CC) -S $(ALL_CFLAGS) $< -o $@)
|
$(eval CMD=$(CC) -S $(ALL_CFLAGS) $< -o $@)
|
||||||
@$(BUILD_CMD)
|
@$(BUILD_CMD)
|
||||||
|
|
||||||
# Compile: create assembler files from C++ source files.
|
# Compile: create assembler files from C++ source files.
|
||||||
%.s : %.cpp
|
%.s : %.cpp | $(BEGIN)
|
||||||
@$(SILENT) || printf "$(MSG_ASSEMBLING) $<" | $(AWK_CMD)
|
@$(SILENT) || printf "$(MSG_ASSEMBLING) $<" | $(AWK_CMD)
|
||||||
$(eval CMD=$(CC) -S $(ALL_CPPFLAGS) $< -o $@)
|
$(eval CMD=$(CC) -S $(ALL_CPPFLAGS) $< -o $@)
|
||||||
@$(BUILD_CMD)
|
@$(BUILD_CMD)
|
||||||
|
|
||||||
# Assemble: create object files from assembler source files.
|
# Assemble: create object files from assembler source files.
|
||||||
$(OBJDIR)/%.o : %.S
|
$(OBJDIR)/%.o : %.S | $(BEGIN)
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@$(SILENT) || printf "$(MSG_ASSEMBLING) $<" | $(AWK_CMD)
|
@$(SILENT) || printf "$(MSG_ASSEMBLING) $<" | $(AWK_CMD)
|
||||||
$(eval CMD=$(CC) -c $(ALL_ASFLAGS) $< -o $@)
|
$(eval CMD=$(CC) -c $(ALL_ASFLAGS) $< -o $@)
|
||||||
@$(BUILD_CMD)
|
@$(BUILD_CMD)
|
||||||
|
|
||||||
# Create preprocessed source for use in sending a bug report.
|
# Create preprocessed source for use in sending a bug report.
|
||||||
%.i : %.c
|
%.i : %.c | $(BEGIN)
|
||||||
$(CC) -E -mmcu=$(MCU) $(CFLAGS) $< -o $@
|
$(CC) -E -mmcu=$(MCU) $(CFLAGS) $< -o $@
|
||||||
|
|
||||||
# Target: clean project.
|
# Target: clean project.
|
||||||
|
@ -492,7 +494,7 @@ $(shell mkdir $(OBJDIR) 2>/dev/null)
|
||||||
|
|
||||||
# Listing of phony targets.
|
# Listing of phony targets.
|
||||||
.PHONY : all quick finish sizebefore sizeafter gccversion \
|
.PHONY : all quick finish sizebefore sizeafter gccversion \
|
||||||
build elf hex eep lss sym coff extcoff \
|
build elf hex eep lss sym coff extcoff check_submodule \
|
||||||
clean clean_list debug gdb-config show_path \
|
clean clean_list debug gdb-config show_path \
|
||||||
program teensy dfu flip dfu-ee flip-ee dfu-start \
|
program teensy dfu flip dfu-ee flip-ee dfu-start \
|
||||||
all-keyboards-defaults all-keyboards all-keymaps \
|
all-keyboards-defaults all-keyboards all-keymaps \
|
||||||
|
|
Loading…
Reference in a new issue