make: Add support for specifying a different compiler for assembler
This commit is contained in:
parent
f6022a283d
commit
d90f33e654
@ -53,8 +53,8 @@ $(BINDIR)/$(MODULE).a $(OBJ): | $(BINDIR)/$(MODULE)/
|
|||||||
$(BINDIR)/$(MODULE).a: $(OBJ) | ${DIRS:%=ALL--%}
|
$(BINDIR)/$(MODULE).a: $(OBJ) | ${DIRS:%=ALL--%}
|
||||||
$(Q)$(AR) $(ARFLAGS) $@ $?
|
$(Q)$(AR) $(ARFLAGS) $@ $?
|
||||||
|
|
||||||
|
|
||||||
CXXFLAGS = $(filter-out $(CXXUWFLAGS), $(CFLAGS)) $(CXXEXFLAGS)
|
CXXFLAGS = $(filter-out $(CXXUWFLAGS), $(CFLAGS)) $(CXXEXFLAGS)
|
||||||
|
CCASFLAGS = $(filter-out $(CCASUWFLAGS), $(CFLAGS)) $(CCASEXFLAGS)
|
||||||
|
|
||||||
# compile and generate dependency info
|
# compile and generate dependency info
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ $(ASMOBJ): $(BINDIR)/$(MODULE)/%.o: %.s
|
|||||||
$(Q)$(AS) $(ASFLAGS) -o $@ $(abspath $<)
|
$(Q)$(AS) $(ASFLAGS) -o $@ $(abspath $<)
|
||||||
|
|
||||||
$(ASSMOBJ): $(BINDIR)/$(MODULE)/%.o: %.S
|
$(ASSMOBJ): $(BINDIR)/$(MODULE)/%.o: %.S
|
||||||
$(Q)$(CC) $(CFLAGS) $(INCLUDES) -MD -MP -c -o $@ $(abspath $<)
|
$(Q)$(CCAS) $(CCASFLAGS) $(INCLUDES) -MD -MP -c -o $@ $(abspath $<)
|
||||||
|
|
||||||
# pull in dependency info for *existing* .o files
|
# pull in dependency info for *existing* .o files
|
||||||
# deleted header files will be silently ignored
|
# deleted header files will be silently ignored
|
||||||
|
|||||||
@ -27,9 +27,12 @@ export TARGET_ARCH # The target platform name, in GCC triple notation,
|
|||||||
export PREFIX # The prefix of the toolchain commands, usually "$(TARGET_ARCH)-", e.g. "arm-none-eabi-" or "msp430-".
|
export PREFIX # The prefix of the toolchain commands, usually "$(TARGET_ARCH)-", e.g. "arm-none-eabi-" or "msp430-".
|
||||||
export CC # The C compiler to use.
|
export CC # The C compiler to use.
|
||||||
export CXX # The CXX compiler to use.
|
export CXX # The CXX compiler to use.
|
||||||
|
export CCAS # The C compiler to use for assembler files, typically the same as CC.
|
||||||
export CFLAGS # The compiler flags. Must only ever be used with `+=`.
|
export CFLAGS # The compiler flags. Must only ever be used with `+=`.
|
||||||
export CXXUWFLAGS # (Patters of) flags in CFLAGS, that should not be passed to CXX.
|
export CXXUWFLAGS # (Patterns of) flags in CFLAGS that should not be passed to CXX.
|
||||||
export CXXEXFLAGS # Additional flags that should be passed to CXX.
|
export CXXEXFLAGS # Additional flags that should be passed to CXX.
|
||||||
|
export CCASUWFLAGS # (Patterns of) flags in CFLAGS that should not be passed to CCAS.
|
||||||
|
export CCASEXFLAGS # Additional flags that should be passed to CCAS.
|
||||||
export AR # The command to create the object file archives.
|
export AR # The command to create the object file archives.
|
||||||
export ARFLAGS # Command-line options to pass to AR, default `rcs`.
|
export ARFLAGS # Command-line options to pass to AR, default `rcs`.
|
||||||
export AS # The assembler.
|
export AS # The assembler.
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
export GDBPREFIX ?= $(PREFIX)
|
export GDBPREFIX ?= $(PREFIX)
|
||||||
export CC = $(PREFIX)gcc
|
export CC = $(PREFIX)gcc
|
||||||
export CXX = $(PREFIX)g++
|
export CXX = $(PREFIX)g++
|
||||||
|
export CCAS ?= $(CC)
|
||||||
ifeq ($(LTO),1)
|
ifeq ($(LTO),1)
|
||||||
export AR = $(PREFIX)gcc-ar
|
export AR = $(PREFIX)gcc-ar
|
||||||
else
|
else
|
||||||
@ -9,7 +10,7 @@ endif
|
|||||||
export AS = $(PREFIX)as
|
export AS = $(PREFIX)as
|
||||||
export LINK = $(PREFIX)gcc
|
export LINK = $(PREFIX)gcc
|
||||||
export SIZE = $(PREFIX)size
|
export SIZE = $(PREFIX)size
|
||||||
export OBJCOPY = $(shell command -v $(PREFIX)objcopy gobjcopy objcopy | head -n 1)
|
export OBJCOPY ?= $(shell command -v $(PREFIX)objcopy gobjcopy objcopy | head -n 1)
|
||||||
ifeq ($(OBJCOPY),)
|
ifeq ($(OBJCOPY),)
|
||||||
$(warning objcopy not found. Hex file will not be created.)
|
$(warning objcopy not found. Hex file will not be created.)
|
||||||
export OBJCOPY = true
|
export OBJCOPY = true
|
||||||
|
|||||||
@ -9,6 +9,7 @@ export LLVMPREFIX :=
|
|||||||
endif
|
endif
|
||||||
export CC = clang
|
export CC = clang
|
||||||
export CXX = clang++
|
export CXX = clang++
|
||||||
|
export CCAS ?= $(CC)
|
||||||
export LINK = $(CC)
|
export LINK = $(CC)
|
||||||
export AS = $(LLVMPREFIX)as
|
export AS = $(LLVMPREFIX)as
|
||||||
export AR = $(LLVMPREFIX)ar
|
export AR = $(LLVMPREFIX)ar
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user