changeset 4777:f6f934903cd2

llvm.mk: update to version 6.0.1 and enable cross build Makefile.in: Also generate a native toolchain file for cmake.
author Markus Mützel <markus.muetzel@gmx.de>
date Mon, 30 Jul 2018 11:24:47 -0400
parents 77ec814a91a6
children a50783d698b2
files Makefile.in src/llvm.mk
diffstat 2 files changed, 49 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.in	Fri Jul 27 09:25:29 2018 -0400
+++ b/Makefile.in	Mon Jul 30 11:24:47 2018 -0400
@@ -514,6 +514,7 @@
   $(TOP_DIR)/tools/make-shared-from-static $(MAKE_SHARED_FROM_STATIC_OPTIONS)
 
 CMAKE_TOOLCHAIN_FILE := $(HOST_PREFIX)/share/cmake/mxe-conf.cmake
+CMAKE_NATIVE_TOOLCHAIN_FILE := $(TOP_DIR)/usr/share/cmake/native-conf.cmake
 
 # unexport any environment variables that might cause trouble
 unexport AR CC CFLAGS C_INCLUDE_PATH CPATH CPLUS_INCLUDE_PATH CPP F77 FFLAGS
@@ -623,7 +624,7 @@
 .PHONY: all-packages
 all-packages: $(PKGS)
 
-$(PKGS): $(BUILD_TOOLS) cmake-toolchain-file.stamp
+$(PKGS): $(BUILD_TOOLS) cmake-toolchain-file.stamp cmake-native-toolchain-file.stamp
 
 .PHONY: msys-base
 msys-base:  $(MSYS_BASE_PACKAGES)
@@ -1011,6 +1012,23 @@
 	@touch cmake-toolchain-file.stamp
 	@echo [done]
 
+define build-native-cmake-toolchain-file
+    # create the native CMake toolchain file
+    [ -d '$(dir $(CMAKE_NATIVE_TOOLCHAIN_FILE))' ] || mkdir -p '$(dir $(CMAKE_NATIVE_TOOLCHAIN_FILE))'
+    (echo 'set(CMAKE_C_COMPILER $(CC))'; \
+     echo 'set(CMAKE_CXX_COMPILER $(CXX))'; \
+     echo 'set(CMAKE_Fortran_COMPILER $(F77))'; \
+     echo 'set(CMAKE_RC_COMPILER $(WINDRES))'; \
+     echo 'set(CMAKE_BUILD_TYPE Release CACHE STRING "Debug|Release|RelWithDebInfo|MinSizeRel")') \
+    > '$(CMAKE_NATIVE_TOOLCHAIN_FILE)'
+endef
+
+cmake-native-toolchain-file.stamp:
+	@echo [creating native CMake toolchain file]
+	@$(build-native-cmake-toolchain-file)
+	@touch cmake-native-toolchain-file.stamp
+	@echo [done]
+
 # Files to distribute
 include $(TOP_DIR)/dist-files.mk
 
--- a/src/llvm.mk	Fri Jul 27 09:25:29 2018 -0400
+++ b/src/llvm.mk	Mon Jul 30 11:24:47 2018 -0400
@@ -3,8 +3,8 @@
 
 PKG             := llvm
 $(PKG)_IGNORE   :=
-$(PKG)_VERSION  := 5.0.0
-$(PKG)_CHECKSUM := 7b0fd212ecc38461e392cbdcbe6a1d4944138a04
+$(PKG)_VERSION  := 6.0.1
+$(PKG)_CHECKSUM := 09a6316c5225cab255ba12391e7abe5ff4d28935
 $(PKG)_SUBDIR   := llvm-$($(PKG)_VERSION).src
 $(PKG)_FILE     := llvm-$($(PKG)_VERSION).src.tar.xz
 $(PKG)_URL      := http://releases.llvm.org/$($(PKG)_VERSION)/$($(PKG)_FILE)
@@ -42,8 +42,34 @@
     endef
   endif
 else
+  ifneq ($(ENABLE_WINDOWS_64),yes)
+    $(PKG)_SYSDEP_CMAKE_OPTIONS += \
+      -DLLVM_DEFAULT_TARGET_TRIPLE='x86_64-pc-win32'
+  else
+    $(PKG)_SYSDEP_CMAKE_OPTIONS += \
+      -DLLVM_DEFAULT_TARGET_TRIPLE='x86-pc-win32'
+  endif
+  # build cross-compiler
   define $(PKG)_BUILD
-    echo "unsupported LLVM configuration" 1>&2
-    exit 1
+    mkdir '$(1)/.build'
+    cd '$(1)/.build' && 'cmake' .. \
+      $($(PKG)_CMAKE_FLAGS) \
+      -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+      -DLLVM_BUILD_TOOLS=OFF \
+      -DLLVM_BUILD_LLVM_DYLIB=On \
+      -DLLVM_LINK_LLVM_DYLIB=On \
+      -DLLVM_VERSION_SUFFIX= \
+      -DLLVM_TARGETS_TO_BUILD='X86' \
+      -DLLVM_TARGET_ARCH='X86' \
+      $($(PKG)_SYSDEP_CMAKE_OPTIONS) \
+      -DCROSS_TOOLCHAIN_FLAGS_NATIVE=-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_NATIVE_TOOLCHAIN_FILE)' \
+      -DLLVM_BUILD_EXAMPLES=Off \
+      -DLLVM_INCLUDE_EXAMPLES=Off \
+      -DLLVM_BUILD_TESTS=Off \
+      -DLLVM_INCLUDE_TESTS=Off \
+      -DLLVM_ENABLE_BACKTRACES=Off
+    $(MAKE) -C '$(1)/.build' -j $(JOBS) llvm-tblgen
+    $(MAKE) -C '$(1)/.build' -j $(JOBS) intrinsics_gen
+    $(MAKE) -C '$(1)/.build' -j $(JOBS) install DESTDIR='$(3)'
   endef
 endif