# HG changeset patch # User Markus Mützel # Date 1532964287 14400 # Node ID f6f934903cd23c29fd2c906c0b7ba0e6638afa53 # Parent 77ec814a91a6b6e55026d0a4e226421d77d5dee8 llvm.mk: update to version 6.0.1 and enable cross build Makefile.in: Also generate a native toolchain file for cmake. diff -r 77ec814a91a6 -r f6f934903cd2 Makefile.in --- 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 diff -r 77ec814a91a6 -r f6f934903cd2 src/llvm.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