Skip to content

Commit

Permalink
Merge pull request #6672 from gebart/pr/ccas
Browse files Browse the repository at this point in the history
make: Add support for specifying a different compiler for assembler
  • Loading branch information
kaspar030 authored Mar 24, 2017
2 parents a4cc6ad + d90f33e commit 4dc2028
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 14 deletions.
4 changes: 2 additions & 2 deletions Makefile.base
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ $(BINDIR)/$(MODULE).a $(OBJ): | $(BINDIR)/$(MODULE)/
$(BINDIR)/$(MODULE).a: $(OBJ) | ${DIRS:%=ALL--%}
$(Q)$(AR) $(ARFLAGS) $@ $?


CXXFLAGS = $(filter-out $(CXXUWFLAGS), $(CFLAGS)) $(CXXEXFLAGS)
CCASFLAGS = $(filter-out $(CCASUWFLAGS), $(CFLAGS)) $(CCASEXFLAGS)

# compile and generate dependency info

Expand All @@ -76,7 +76,7 @@ $(ASMOBJ): $(BINDIR)/$(MODULE)/%.o: %.s
$(Q)$(AS) $(ASFLAGS) -o $@ $(abspath $<)

$(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
# deleted header files will be silently ignored
Expand Down
5 changes: 4 additions & 1 deletion Makefile.vars
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,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 CC # The C 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 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 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 ARFLAGS # Command-line options to pass to AR, default `rcs`.
export AS # The assembler.
Expand Down
23 changes: 12 additions & 11 deletions cpu/Makefile.include.gnu
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
export GDBPREFIX ?= $(PREFIX)
export CC = $(PREFIX)gcc
export CXX = $(PREFIX)g++
export CC = $(PREFIX)gcc
export CXX = $(PREFIX)g++
export CCAS ?= $(CC)
ifeq ($(LTO),1)
export AR = $(PREFIX)gcc-ar
export AR = $(PREFIX)gcc-ar
else
export AR = $(PREFIX)ar
export AR = $(PREFIX)ar
endif
export AS = $(PREFIX)as
export LINK = $(PREFIX)gcc
export SIZE = $(PREFIX)size
export OBJCOPY = $(shell command -v $(PREFIX)objcopy gobjcopy objcopy | head -n 1)
export AS = $(PREFIX)as
export LINK = $(PREFIX)gcc
export SIZE = $(PREFIX)size
export OBJCOPY ?= $(shell command -v $(PREFIX)objcopy gobjcopy objcopy | head -n 1)
ifeq ($(OBJCOPY),)
$(warning objcopy not found. Hex file will not be created.)
export OBJCOPY = true
export OBJCOPY = true
endif
export OBJDUMP = $(PREFIX)objdump
export DBG = $(GDBPREFIX)gdb
export OBJDUMP = $(PREFIX)objdump
export DBG = $(GDBPREFIX)gdb
1 change: 1 addition & 0 deletions cpu/Makefile.include.llvm
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export LLVMPREFIX :=
endif
export CC = clang
export CXX = clang++
export CCAS ?= $(CC)
export LINK = $(CC)
export AS = $(LLVMPREFIX)as
export AR = $(LLVMPREFIX)ar
Expand Down

0 comments on commit 4dc2028

Please sign in to comment.