mxe/src/llvm.mk

55 lines
1.9 KiB
Makefile

# This file is part of MXE. See LICENSE.md for licensing information.
PKG := llvm
$(PKG)_WEBSITE := https://llvm.org/
$(PKG)_IGNORE :=
$(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 $(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' | \
grep 'Download LLVM' | \
$(SED) -n 's,.*LLVM \([0-9][^<]*\).*,\1,p' | \
head -1
endef
define $(PKG)_BUILD
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