Skip to content
Snippets Groups Projects
Commit 351997ae authored by Peter A. Jonsson's avatar Peter A. Jonsson
Browse files

Makefile: add support for ccache

This improves build times when source files
are unchanged. On a warm cache, my machine
gets a 98% hitrate for tests/01-compile-base:

cache hit (direct)                  1621
cache hit (preprocessed)               0
cache miss                            33
cache hit rate                     98.00 %
compile failed                         4
couldn't find the compiler             9
cleanups performed                     0

The 9 "couldn't find the compiler" are caused by
not having msp430-gcc installed on my machine,
and the failed compilations are caused by
compiler warnings.
parent 7e431393
Branches
No related tags found
No related merge requests found
...@@ -41,6 +41,12 @@ ifdef CI ...@@ -41,6 +41,12 @@ ifdef CI
endif endif
endif endif
ifndef IAR
ifneq (, $(shell which ccache))
CCACHE ?= ccache
endif
endif
BUILD_DIR = build BUILD_DIR = build
BUILD_DIR_TARGET = $(BUILD_DIR)/$(TARGET) BUILD_DIR_TARGET = $(BUILD_DIR)/$(TARGET)
BUILD_DIR_TARGET_BOARD = $(BUILD_DIR_TARGET)/$(BOARD) BUILD_DIR_TARGET_BOARD = $(BUILD_DIR_TARGET)/$(BOARD)
...@@ -363,14 +369,14 @@ distclean: ...@@ -363,14 +369,14 @@ distclean:
ifndef CUSTOM_RULE_C_TO_OBJECTDIR_O ifndef CUSTOM_RULE_C_TO_OBJECTDIR_O
$(OBJECTDIR)/%.o: %.c | $(OBJECTDIR) $(OBJECTDIR)/%.o: %.c | $(OBJECTDIR)
$(TRACE_CC) $(TRACE_CC)
$(Q)$(CC) $(CFLAGS) -MMD -c $< -o $@ $(Q)$(CCACHE) $(CC) $(CFLAGS) -MMD -c $< -o $@
@$(FINALIZE_DEPENDENCY) @$(FINALIZE_DEPENDENCY)
endif endif
ifndef CUSTOM_RULE_CPP_TO_OBJECTDIR_O ifndef CUSTOM_RULE_CPP_TO_OBJECTDIR_O
$(OBJECTDIR)/%.o: %.cpp | $(OBJECTDIR) $(OBJECTDIR)/%.o: %.cpp | $(OBJECTDIR)
$(TRACE_CXX) $(TRACE_CXX)
$(Q)$(CXX) $(CXXFLAGS) -MMD -c $< -o $@ $(Q)$(CCACHE) $(CXX) $(CXXFLAGS) -MMD -c $< -o $@
@$(FINALIZE_DEPENDENCY) @$(FINALIZE_DEPENDENCY)
endif endif
...@@ -386,55 +392,55 @@ endif ...@@ -386,55 +392,55 @@ endif
ifndef CUSTOM_RULE_C_TO_OBJECTDIR_S ifndef CUSTOM_RULE_C_TO_OBJECTDIR_S
$(OBJECTDIR)/%.s: %.c | $(OBJECTDIR) $(OBJECTDIR)/%.s: %.c | $(OBJECTDIR)
$(TRACE_CC) $(TRACE_CC)
$(Q)$(CC) $(CFLAGS) -S $< -o $@ $(Q)$(CCACHE) $(CC) $(CFLAGS) -S $< -o $@
endif endif
ifndef CUSTOM_RULE_CPP_TO_OBJECTDIR_S ifndef CUSTOM_RULE_CPP_TO_OBJECTDIR_S
$(OBJECTDIR)/%.s: %.cpp | $(OBJECTDIR) $(OBJECTDIR)/%.s: %.cpp | $(OBJECTDIR)
$(TRACE_CXX) $(TRACE_CXX)
$(Q)$(CXX) $(CXXFLAGS) -S $< -o $@ $(Q)$(CCACHE) $(CXX) $(CXXFLAGS) -S $< -o $@
endif endif
ifndef CUSTOM_RULE_C_TO_OBJECTDIR_E ifndef CUSTOM_RULE_C_TO_OBJECTDIR_E
$(OBJECTDIR)/%.e: %.c | $(OBJECTDIR) $(OBJECTDIR)/%.e: %.c | $(OBJECTDIR)
$(TRACE_CC) $(TRACE_CC)
$(Q)$(CC) $(CFLAGS) -E $< -o $@ $(Q)$(CCACHE) $(CC) $(CFLAGS) -E $< -o $@
endif endif
ifndef CUSTOM_RULE_CPP_TO_OBJECTDIR_E ifndef CUSTOM_RULE_CPP_TO_OBJECTDIR_E
$(OBJECTDIR)/%.e: %.cpp | $(OBJECTDIR) $(OBJECTDIR)/%.e: %.cpp | $(OBJECTDIR)
$(TRACE_CXX) $(TRACE_CXX)
$(Q)$(CXX) $(CXXFLAGS) -E $< -o $@ $(Q)$(CCACHE) $(CXX) $(CXXFLAGS) -E $< -o $@
endif endif
ifndef CUSTOM_RULE_C_TO_O ifndef CUSTOM_RULE_C_TO_O
%.o: %.c %.o: %.c
$(TRACE_CC) $(TRACE_CC)
$(Q)$(CC) $(CFLAGS) -c $< -o $@ $(Q)$(CCACHE) $(CC) $(CFLAGS) -c $< -o $@
endif endif
ifndef CUSTOM_RULE_CPP_TO_O ifndef CUSTOM_RULE_CPP_TO_O
%.o: %.cpp %.o: %.cpp
$(TRACE_CXX) $(TRACE_CXX)
$(Q)$(CXX) $(CXXFLAGS) -c $< -o $@ $(Q)$(CCACHE) $(CXX) $(CXXFLAGS) -c $< -o $@
endif endif
ifndef CUSTOM_RULE_C_TO_S ifndef CUSTOM_RULE_C_TO_S
%.s: %.c %.s: %.c
$(TRACE_CC) $(TRACE_CC)
$(Q)$(CC) $(CFLAGS) -S $< -o $@ $(Q)$(CCACHE) $(CC) $(CFLAGS) -S $< -o $@
endif endif
ifndef CUSTOM_RULE_C_TO_E ifndef CUSTOM_RULE_C_TO_E
%.e: %.c %.e: %.c
$(TRACE_CC) $(TRACE_CC)
$(Q)$(CC) $(CFLAGS) -E $< -o $@ $(Q)$(CCACHE) $(CC) $(CFLAGS) -E $< -o $@
endif endif
ifndef CUSTOM_RULE_CPP_TO_E ifndef CUSTOM_RULE_CPP_TO_E
%.e: %.cpp %.e: %.cpp
$(TRACE_CXX) $(TRACE_CXX)
$(Q)$(CXX) $(CXXFLAGS) -E $< -o $@ $(Q)$(CCACHE) $(CXX) $(CXXFLAGS) -E $< -o $@
endif endif
ifndef AROPTS ifndef AROPTS
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment