1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- # This file is part of the OpenADK project. OpenADK is copyrighted
- # material, please see the LICENCE file in the top-level directory.
- include $(ADK_TOPDIR)/rules.mk
- include ../rules.mk
- include Makefile.inc
- include ${ADK_TOPDIR}/mk/buildhlp.mk
- BUILD_DIR_INITIAL:= $(WRKBUILD)-initial
- BUILD_DIR_FINAL:= $(WRKBUILD)-final
- LLVM_VERSION:= $(ADK_TOOLCHAIN_LLVM_VERSION)
- LLVM_TRIPLE:= $(ADK_TARGET_ARCH)-linux
- ifeq ($(ADK_TARGET_ARCH_AARCH64),y)
- LLVM_TARGETS:=AArch64
- endif
- 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
- ifeq ($(ADK_TARGET_ARCH_MIPS)$(ADK_TARGET_ARCH_MIPS64),y)
- LLVM_TARGETS:=Mips
- endif
- ifeq ($(ADK_TARGET_ARCH_PPC)$(ADK_TARGET_ARCH_PPC64),y)
- LLVM_TARGETS:=PowerPC
- endif
- ifeq ($(ADK_TARGET_ARCH_SPARC)$(ADK_TARGET_ARCH_SPARC64),y)
- LLVM_TARGETS:=Sparc
- endif
- ifeq ($(ADK_TARGET_ARCH_S390),y)
- LLVM_TARGETS:=SystemZ
- endif
- ifeq ($(ADK_TARGET_ARCH_X86)$(ADK_TARGET_ARCH_X86_64),y)
- LLVM_TARGETS:=X86
- endif
- $(BUILD_DIR_INITIAL)/.configured:
- (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 \
- -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) -j$(ADK_MAKE_JOBS) -C $(BUILD_DIR_INITIAL) all
- touch $@
- $(WRKBUILD)/.configured: $(BUILD_DIR_INITIAL)/.compiled
- PATH='$(TARGET_PATH)' \
- $(MAKE) -j$(ADK_MAKE_JOBS) -C $(BUILD_DIR_INITIAL) install
- touch $@
- $(WRKBUILD)/.compiled:
- touch $@
- $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
- touch $@
- $(WRKBUILD)/.final:
- touch $@
- include ${ADK_TOPDIR}/mk/toolchain.mk
|