diff --git a/src/llvm-1-fixes.patch b/src/llvm-1-fixes.patch new file mode 100644 index 00000000..0ee1a99d --- /dev/null +++ b/src/llvm-1-fixes.patch @@ -0,0 +1,32 @@ +This file is part of MXE. See LICENSE.md for licensing information. + +Contains ad hoc patches for cross building. + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tony Theodore +Date: Sun, 9 Dec 2018 16:04:13 +1100 +Subject: [PATCH 1/1] fix shared build and install + + +diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake +index 1111111..2222222 100644 +--- a/cmake/modules/AddLLVM.cmake ++++ b/cmake/modules/AddLLVM.cmake +@@ -656,7 +656,7 @@ macro(add_llvm_library name) + + install(TARGETS ${name} + ${export_to_llvmexports} +- ${install_type} DESTINATION ${install_dir} ++ DESTINATION lib RUNTIME DESTINATION bin + COMPONENT ${name}) + + if (NOT CMAKE_CONFIGURATION_TYPES) +diff --git a/lib/Testing/CMakeLists.txt b/lib/Testing/CMakeLists.txt +index 1111111..2222222 100644 +--- a/lib/Testing/CMakeLists.txt ++++ b/lib/Testing/CMakeLists.txt +@@ -1 +1,3 @@ +-add_subdirectory(Support) ++if( LLVM_INCLUDE_TESTS ) ++ add_subdirectory(Support) ++endif() diff --git a/src/llvm.mk b/src/llvm.mk index f8957a75..e69359e2 100644 --- a/src/llvm.mk +++ b/src/llvm.mk @@ -3,12 +3,15 @@ PKG := llvm $(PKG)_WEBSITE := https://llvm.org/ $(PKG)_IGNORE := -$(PKG)_VERSION := 3.4 -$(PKG)_CHECKSUM := 25a5612d692c48481b9b397e2b55f4870e447966d66c96d655241702d44a2628 -$(PKG)_SUBDIR := llvm-$($(PKG)_VERSION) -$(PKG)_FILE := llvm-$($(PKG)_VERSION).src.tar.gz +$(PKG)_VERSION := 7.0.0 +$(PKG)_CHECKSUM := 8bc1f844e6cbde1b652c19c1edebc1864456fd9c78b8c1bea038e51b363fe222 +$(PKG)_SUBDIR := llvm-$($(PKG)_VERSION).src +$(PKG)_FILE := llvm-$($(PKG)_VERSION).src.tar.xz $(PKG)_URL := https://releases.llvm.org/$($(PKG)_VERSION)/$($(PKG)_FILE) -$(PKG)_DEPS := cc +$(PKG)_DEPS := cc $(BUILD)~$(PKG) +# requires posix toolchain +$(PKG)_TARGETS := $(BUILD) $(foreach TGT,$(MXE_TARGETS),$(and $(findstring posix,$(TGT)),$(TGT))) +$(PKG)_DEPS_$(BUILD) := cmake define $(PKG)_UPDATE $(WGET) -q -O- 'https://releases.llvm.org/download.html' | \ @@ -18,11 +21,34 @@ define $(PKG)_UPDATE endef define $(PKG)_BUILD - mkdir '$(1)/build' - cd '$(1)/build' && '$(TARGET)-cmake' .. \ - -DLLVM_BUILD_TOOLS=OFF - $(MAKE) -C '$(1)/build' -j $(JOBS) llvm-tblgen - $(MAKE) -C '$(1)/build' -j $(JOBS) intrinsics_gen - $(MAKE) -C '$(1)/build' -j $(JOBS) install - cp '$(1)'/build/bin/*.dll '$(PREFIX)/$(TARGET)/bin/' + cd '$(BUILD_DIR)' && $(TARGET)-cmake '$(SOURCE_DIR)' \ + -DLLVM_TABLEGEN='$(PREFIX)/$(BUILD)/bin/llvm-tblgen' \ + -DLLVM_TARGETS_TO_BUILD=X86 \ + -DLLVM_TARGET_ARCH=X86 \ + -DLLVM_BUILD_DOCS=OFF \ + -DLLVM_BUILD_EXAMPLES=OFF \ + -DLLVM_BUILD_RUNTIME=OFF \ + -DLLVM_BUILD_RUNTIMES=OFF \ + -DLLVM_BUILD_TESTS=OFF \ + -DLLVM_BUILD_TOOLS=OFF \ + -DLLVM_BUILD_UTILS=OFF \ + -DLLVM_ENABLE_BINDINGS=OFF \ + -DLLVM_ENABLE_DOXYGEN=OFF \ + -DLLVM_ENABLE_OCAMLDOC=OFF \ + -DLLVM_ENABLE_SPHINX=OFF \ + -DLLVM_INCLUDE_DOCS=OFF \ + -DLLVM_INCLUDE_EXAMPLES=OFF \ + -DLLVM_INCLUDE_GO_TESTS=OFF \ + -DLLVM_INCLUDE_RUNTIMES=OFF \ + -DLLVM_INCLUDE_TESTS=OFF \ + -DLLVM_INCLUDE_TOOLS=OFF \ + -DLLVM_INCLUDE_UTILS=OFF + $(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' VERBOSE=1 + $(MAKE) -C '$(BUILD_DIR)' -j 1 install +endef + +define $(PKG)_BUILD_$(BUILD) + cd '$(BUILD_DIR)' && cmake '$(SOURCE_DIR)' + $(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' llvm-tblgen VERBOSE=1 + cp '$(BUILD_DIR)'/bin/* '$(PREFIX)/$(TARGET)/bin/' endef