summaryrefslogtreecommitdiffstats
path: root/rules/cross-llvm.make
diff options
context:
space:
mode:
Diffstat (limited to 'rules/cross-llvm.make')
-rw-r--r--rules/cross-llvm.make39
1 files changed, 37 insertions, 2 deletions
diff --git a/rules/cross-llvm.make b/rules/cross-llvm.make
index 62ae313..527c7b0 100644
--- a/rules/cross-llvm.make
+++ b/rules/cross-llvm.make
@@ -26,6 +26,19 @@ CROSS_LLVM_DIR := $(CROSS_BUILDDIR)/$(CROSS_LLVM)
CROSS_LLVM_LICENSE := $(call remove_quotes,$(PTXCONF_CROSS_LLVM_LICENSE))
CROSS_LLVM_LICENSE_FILES := $(call remove_quotes,$(PTXCONF_CROSS_LLVM_LICENSE_FILES))
+CROSS_LLVM_CMAKE_MODULES_VERSION := $(CROSS_LLVM_VERSION)
+CROSS_LLVM_CMAKE_MODULES_MD5 := $(call remove_quotes,$(PTXCONF_CROSS_LLVM_CMAKE_MODULES_MD5))
+CROSS_LLVM_CMAKE_MODULES := cmake-$(CROSS_LLVM_CMAKE_MODULES_VERSION)
+CROSS_LLVM_CMAKE_MODULES_SUFFIX := src.tar.xz
+CROSS_LLVM_CMAKE_MODULES_URL := \
+ https://releases.llvm.org/$(CROSS_LLVM_CMAKE_MODULES_VERSION)/$(CROSS_LLVM_CMAKE_MODULES).$(CROSS_LLVM_CMAKE_MODULES_SUFFIX) \
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-$(CROSS_LLVM_CMAKE_MODULES_VERSION)/$(CROSS_LLVM_CMAKE_MODULES).$(CROSS_LLVM_CMAKE_MODULES_SUFFIX)
+CROSS_LLVM_CMAKE_MODULES_SOURCE := $(SRCDIR)/$(CROSS_LLVM_CMAKE_MODULES).$(CROSS_LLVM_SUFFIX)
+CROSS_LLVM_CMAKE_MODULES_DIR := $(CROSS_BUILDDIR)/cmake
+CROSS_LLVM_CMAKE_MODULES_STRIP_LEVEL := 1
+$(CROSS_LLVM_CMAKE_MODULES_SOURCE) := CROSS_LLVM_CMAKE_MODULES
+CROSS_LLVM_SOURCES += $(CROSS_LLVM_CMAKE_MODULES_SOURCE)
+
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
@@ -47,9 +60,15 @@ endif
ifdef PTXCONF_ARCH_MIPS
CROSS_LLVM_TARGET_ARCH := Mips
endif
+ifdef PTXCONF_ARCH_MIPS64
+CROSS_LLVM_TARGET_ARCH := Mips
+endif
ifdef PTXCONF_ARCH_POWERPC
CROSS_LLVM_TARGET_ARCH := PowerPC
endif
+ifdef PTXCONF_ARCH_LOONGARCH
+CROSS_LLVM_TARGET_ARCH := LoongArch
+endif
ifdef PTXCONF_CROSS_LLVM
ifndef CROSS_LLVM_TARGET_ARCH
@@ -67,7 +86,7 @@ CROSS_LLVM_TARGETS_TO_BUILD := \
#
CROSS_LLVM_CONF_TOOL := cmake
CROSS_LLVM_CONF_OPT := \
- $(HOST_CMAKE_OPT) \
+ $(HOST_CROSS_CMAKE_OPT) \
-G Ninja \
-DCMAKE_INSTALL_PREFIX=$(PTXCONF_PREFIX_CROSS) \
-DLLVM_ENABLE_BINDINGS=OFF \
@@ -76,8 +95,10 @@ CROSS_LLVM_CONF_OPT := \
-DLLVM_ENABLE_LIBPFM=OFF \
-DLLVM_ENABLE_LIBXML2=OFF \
-DLLVM_ENABLE_RTTI=ON \
- -DLLVM_INSTALL_UTILS=OFF \
+ -DLLVM_INCLUDE_BENCHMARKS=OFF \
+ -DLLVM_INCLUDE_TESTS=OFF \
-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON \
+ -DLLVM_INSTALL_UTILS=OFF \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(CROSS_LLVM_TARGETS_TO_BUILD))" \
-DLLVM_TARGET_ARCH=host \
@@ -86,4 +107,18 @@ CROSS_LLVM_CONF_OPT := \
CROSS_LLVM_LDFLAGS := \
-Wl,-rpath,$$ORIGIN/../lib
+$(STATEDIR)/cross-llvm.extract:
+ @$(call targetinfo)
+ @$(call clean, $(CROSS_LLVM_DIR))
+ @$(call extract, CROSS_LLVM)
+ @$(call extract, CROSS_LLVM_CMAKE_MODULES)
+ @$(call touch)
+
+$(STATEDIR)/cross-llvm.install:
+ @$(call targetinfo)
+ @$(call world/install, CROSS_LLVM)
+ @install -v -m644 -D -t $(CROSS_LLVM_PKGDIR)/usr/lib/cmake/llvm \
+ $(CROSS_LLVM_DIR)-build/lib/cmake/llvm/*
+ @$(call touch)
+
# vim: syntax=make