Skip to content
Snippets Groups Projects
Commit d90f33e6 authored by Joakim Nohlgård's avatar Joakim Nohlgård
Browse files

make: Add support for specifying a different compiler for assembler

parent f6022a28
No related branches found
No related tags found
No related merge requests found
...@@ -53,8 +53,8 @@ $(BINDIR)/$(MODULE).a $(OBJ): | $(BINDIR)/$(MODULE)/ ...@@ -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 ...@@ -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, ...@@ -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.
......
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
export AR = $(PREFIX)ar export AR = $(PREFIX)ar
endif 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
endif endif
export OBJDUMP = $(PREFIX)objdump export OBJDUMP = $(PREFIX)objdump
export DBG = $(GDBPREFIX)gdb export DBG = $(GDBPREFIX)gdb
...@@ -9,6 +9,7 @@ export LLVMPREFIX := ...@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment