summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile24
-rw-r--r--Makefile.inc2
2 files changed, 22 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index cc2d27ce7f94..195bfe69dcb7 100644
--- a/Makefile
+++ b/Makefile
@@ -107,13 +107,31 @@ else
include $(HAVE_DOTCONFIG)
-include toolchain.inc
-
ifeq ($(CONFIG_COMPILER_LLVM_CLANG),y)
-CC:=clang -m32 -mno-mmx -mno-sse -no-integrated-as
+# FIXME: armv7/aarch64 won't build right now
+CFLAGS_x86_32 = -no-integrated-as -Qunused-arguments -target i386-elf -m32
+CC_x86_32:=clang
+
+ifneq ($(CONFIG_MMX),y)
+CFLAGS_x86_32 += -mno-mmx
+endif
+
+# FIXME: we end up with conflicting flags with this, not clear on this part.
+#ifneq ($(CONFIG_SSE),y)
+#CFLAGS_x86_32 += -mno-sse
+#endif
+
+CFLAGS_armv7 = -no-integrated-as -Qunused-arguments -target armv7-eabi -ccc-gcc-name $(CC_armv7)
+CC_armv7:=clang
+
+CFLAGS_aarch64 = -no-integrated-as -Qunused-arguments -target aarch64-eabi -ccc-gcc-name $(CC_aarch64)
+CC_aarch64:=clang
+
HOSTCC:=clang
endif
+include toolchain.inc
+
strip_quotes = $(subst ",,$(subst \",,$(1)))
# The primary target needs to be here before we include the
diff --git a/Makefile.inc b/Makefile.inc
index 2b62e785f113..b9a3fe9ec414 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -218,7 +218,7 @@ CPPFLAGS_common := -Isrc -Isrc/include -I$(obj)
CPPFLAGS_common += -Isrc/device/oprom/include
CPPFLAGS_common += -include $(src)/include/kconfig.h
-CFLAGS_common = -Os -pipe -g -nostdinc
+CFLAGS_common += -Os -pipe -g -nostdinc
CFLAGS_common += -nostdlib -Wall -Wundef -Wstrict-prototypes -Wmissing-prototypes
CFLAGS_common += -Wwrite-strings -Wredundant-decls -Wno-trigraphs
CFLAGS_common += -Wstrict-aliasing -Wshadow