summaryrefslogtreecommitdiff
path: root/toolchain/llvm/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/llvm/Makefile')
-rw-r--r--toolchain/llvm/Makefile34
1 files changed, 27 insertions, 7 deletions
diff --git a/toolchain/llvm/Makefile b/toolchain/llvm/Makefile
index 52228f221..be5e4dab8 100644
--- a/toolchain/llvm/Makefile
+++ b/toolchain/llvm/Makefile
@@ -10,32 +10,52 @@ include ${ADK_TOPDIR}/mk/buildhlp.mk
BUILD_DIR_INITIAL:= $(WRKBUILD)-initial
BUILD_DIR_FINAL:= $(WRKBUILD)-final
+LLVM_VERSION:=4.0.0
+
+ifeq ($(ADK_TARGET_ARCH_ARM),y)
LLVM_TARGETS:=ARM
+ifeq ($(ADK_TARGET_SOFT_FLOAT),y)
+LLVM_TRIPLE:=arm-linux-eabi
+endif
+ifeq ($(ADK_TARGET_HARD_FLOAT),y)
+LLVM_TRIPLE:=arm-linux-eabihf
+endif
+endif
$(BUILD_DIR_INITIAL)/.configured:
- (cd $(DL_DIR) && wget http://llvm.org/releases/3.8.0/cfe-3.8.0.src.tar.xz)
- (cd $(DL_DIR) && wget http://llvm.org/releases/3.8.0/compiler-rt-3.8.0.src.tar.xz)
- (cd $(WRKBUILD)/tools && tar xvf $(DL_DIR)/cfe-3.8.0.src.tar.xz && mv cfe-3.8.0.src clang)
- (cd $(WRKBUILD)/projects && tar xvf $(DL_DIR)/compiler-rt-3.8.0.src.tar.xz && mv compiler-rt-3.8.0.src compiler-rt)
+ (cd $(DL_DIR); \
+ for file in cfe lld compiler-rt libcxx libcxxabi; do \
+ if [ ! -f $${file}-$(LLVM_VERSION).src.tar.xz ]; then \
+ wget http://llvm.org/releases/$(LLVM_VERSION)/$${file}-$(LLVM_VERSION).src.tar.xz ; \
+ fi; \
+ done; \
+ )
+ (cd $(WRKBUILD)/tools && tar xvf $(DL_DIR)/cfe-$(LLVM_VERSION).src.tar.xz && mv cfe-$(LLVM_VERSION).src clang)
+ (cd $(WRKBUILD)/tools && tar xvf $(DL_DIR)/lld-$(LLVM_VERSION).src.tar.xz && mv lld-$(LLVM_VERSION).src lld)
+ (cd $(WRKBUILD)/projects && tar xvf $(DL_DIR)/compiler-rt-$(LLVM_VERSION).src.tar.xz && mv compiler-rt-$(LLVM_VERSION).src compiler-rt)
+ (cd $(WRKBUILD)/projects && tar xvf $(DL_DIR)/libcxx-$(LLVM_VERSION).src.tar.xz && mv libcxx-$(LLVM_VERSION).src libcxx)
+ (cd $(WRKBUILD)/projects && tar xvf $(DL_DIR)/libcxxabi-$(LLVM_VERSION).src.tar.xz && mv libcxxabi-$(LLVM_VERSION).src libcxxabi)
mkdir -p $(BUILD_DIR_INITIAL)
cd $(BUILD_DIR_INITIAL); \
PATH='$(HOST_PATH)' \
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$(TOOLCHAIN_DIR)/usr \
- -DLLVM_DEFAULT_TARGET_TRIPLE="arm-none-eabi" \
-DCMAKE_CXX_FLAGS="-std=c++11" \
+ -DLLVM_ENABLE_EH=ON \
+ -DLLVM_ENABLE_RTTI=ON \
+ -DLLVM_DEFAULT_TARGET_TRIPLE=$(LLVM_TRIPLE) \
-DLLVM_TARGETS_TO_BUILD=$(LLVM_TARGETS) \
$(WRKBUILD)
touch $@
$(BUILD_DIR_INITIAL)/.compiled: $(BUILD_DIR_INITIAL)/.configured
PATH='$(TARGET_PATH)' \
- $(MAKE) -C $(BUILD_DIR_INITIAL) all
+ $(MAKE) -j$(ADK_MAKE_JOBS) -C $(BUILD_DIR_INITIAL) all
touch $@
$(WRKBUILD)/.configured: $(BUILD_DIR_INITIAL)/.compiled
PATH='$(TARGET_PATH)' \
- $(MAKE) -C $(BUILD_DIR_INITIAL) install
+ $(MAKE) -j$(ADK_MAKE_JOBS) -C $(BUILD_DIR_INITIAL) install
touch $@
$(WRKBUILD)/.compiled: