mirror of https://github.com/rusefi/bldc.git
60 lines
1.6 KiB
Makefile
60 lines
1.6 KiB
Makefile
|
CCACHE :=
|
||
|
|
||
|
|
||
|
# Define toolchain component names.
|
||
|
CC = $(CCACHE) $(TCHAIN_PREFIX)gcc
|
||
|
CXX = $(CCACHE) $(TCHAIN_PREFIX)g++
|
||
|
AR = $(TCHAIN_PREFIX)ar
|
||
|
OBJCOPY = $(TCHAIN_PREFIX)objcopy
|
||
|
OBJDUMP = $(TCHAIN_PREFIX)objdump
|
||
|
SIZE = $(TCHAIN_PREFIX)size
|
||
|
NM = $(TCHAIN_PREFIX)nm
|
||
|
STRIP = $(TCHAIN_PREFIX)strip
|
||
|
GCOV = $(TCHAIN_PREFIX)gcov
|
||
|
|
||
|
THUMB = -mthumb
|
||
|
|
||
|
toprel = $(subst $(realpath $(ROOT_DIR))/,,$(abspath $(1)))
|
||
|
|
||
|
|
||
|
|
||
|
# Compile: create object files from C source files.
|
||
|
define COMPILE_C_TEMPLATE
|
||
|
$(OUTDIR)/$(notdir $(basename $(1))).o : EXTRA_FLAGS := $(2)
|
||
|
$(OUTDIR)/$(notdir $(basename $(1))).o : $(1)
|
||
|
@echo $(MSG_COMPILING) $$(call toprel, $$<)
|
||
|
$(V1) $(CC) -c $(THUMB) $$(CFLAGS) $$(CONLYFLAGS) $$(EXTRA_FLAGS) $$< -o $$@
|
||
|
endef
|
||
|
|
||
|
# Compile: create object files from C++ source files.
|
||
|
define COMPILE_CXX_TEMPLATE
|
||
|
$(OUTDIR)/$(notdir $(basename $(1))).o : EXTRA_FLAGS := $(2)
|
||
|
$(OUTDIR)/$(notdir $(basename $(1))).o : $(1)
|
||
|
@echo $(MSG_COMPILINGCXX) $$(call toprel, $$<)
|
||
|
$(V1) $(CXX) -c $(THUMB) $$(CFLAGS) $$(CPPFLAGS) $$(CXXFLAGS) $$(EXTRA_FLAGS) $$< -o $$@
|
||
|
endef
|
||
|
|
||
|
# Link: create ELF output file from object files.
|
||
|
# $1 = elf file to produce
|
||
|
# $2 = list of object files that make up the elf file
|
||
|
define LINK_CXX_TEMPLATE
|
||
|
.SECONDARY : $(1)
|
||
|
.PRECIOUS : $(2)
|
||
|
$(1): $(2)
|
||
|
@echo $(MSG_LINKING) $$(call toprel, $$@)
|
||
|
$(V1) $(CXX) $(THUMB) $$(CFLAGS) $(2) --output $$@ $$(LDFLAGS)
|
||
|
endef
|
||
|
|
||
|
|
||
|
# Generate GCOV summary
|
||
|
# $(1) = name of source file to analyze with gcov
|
||
|
define GCOV_TEMPLATE
|
||
|
$(OUTDIR)/$(1).gcov: $(OUTDIR)/$$(basename $(1)).gcda
|
||
|
$(V0) @echo $(MSG_GCOV) $$(call toprel, $$@)
|
||
|
$(V1) ( \
|
||
|
cd $(OUTDIR) && \
|
||
|
$(GCOV) $(1) 2>&1 > /dev/null ; \
|
||
|
)
|
||
|
endef
|
||
|
|