]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
llvm: New package
authorStefan Schantl <stefan.schantl@ipfire.org>
Thu, 4 Jul 2019 12:23:12 +0000 (14:23 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 4 Jul 2019 03:44:33 +0000 (04:44 +0100)
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
llvm/llvm.nm [new file with mode: 0644]

diff --git a/llvm/llvm.nm b/llvm/llvm.nm
new file mode 100644 (file)
index 0000000..fc7d5cf
--- /dev/null
@@ -0,0 +1,113 @@
+###############################################################################
+# IPFire.org    - An Open Source Firewall Solution                            #
+# Copyright (C) - IPFire Development Team <info@ipfire.org>                   #
+###############################################################################
+
+name       = llvm
+version    = 8.0.0
+release    = 1
+
+groups     = Applications/System
+url        = http://llvm.org
+license    = NCSA
+summary    = The Low Level Virtual Machine.
+
+description
+       LLVM is a compiler infrastructure designed for compile-time, link-time,
+       runtime, and idle-time optimization of programs from arbitrary programming
+       languages. The compiler infrastructure includes mirror sets of programming
+       tools as well as libraries with equivalent functionality.
+end
+
+source_dl  = http://releases.llvm.org/%{version}/
+sources    = %{thisapp}.src.tar.xz
+
+build
+       requires
+               binutils >= 2.32
+               cmake >= 3.14.5
+               gcc
+               gcc-c++
+               libedit-devel >= 3.1-20190324
+               libffi-devel
+               libxml2-devel
+               zlib-devel
+       end
+
+       DIR_APP = %{DIR_SRC}/%{thisapp}.src
+
+       # Limit parallelization to only 2 jobs at the same time.
+       PARALLELISMFLAGS = -j2
+
+       # Set suffix for libdir based on the build architecture.
+       llvm_libdir_suffix =
+
+       if "%{DISTRO_ARCH}" == "x86_64"
+               llvm_libdir_suffix = 64
+       end
+
+       if "%{DISTRO_ARCH}" == "aarch64"
+               llvm_libdir_suffix = 64
+       end
+
+       build
+               # Create and switch into build directory.
+               mkdir -pv %{DIR_APP}/build
+               cd %{DIR_APP}/build
+
+               %{cmake} .. \
+                       -DLLVM_BUILD_TOOLS=ON \
+                       -DLLVM_BUILD_UTILS=ON \
+                       -DLLVM_BUILD_TESTS=OFF \
+                       -DLLVM_BUILD_EXAMPLES=OFF \
+                       -DLLVM_BUILD_BENCHMARKS=OFF \
+                       -DCMAKE_BUILD_TYPE=Release \
+                       -DCMAKE_INSTALL_RPATH=";" \
+                       -DLLVM_BUILD_LLVM_DYLIB=OFF \
+                       -DLLVM_LINK_LLVM_DYLIB=OFF \
+                       -DBUILD_SHARED_LIBS=ON \
+                       -DLLVM_ENABLE_FFI=ON \
+                       -DLLVM_ENABLE_RTTI=ON \
+                       -DLLVM_ENABLE_LIBCXX=OFF \
+                       -DLLVM_TARGETS_TO_BUILD="host;" \
+                       -DCMAKE_C_COMPILER=gcc \
+                       -DCMAKE_CXX_COMPILER=g++ \
+                       -DCMAKE_CXX_FLAGS_RELEASE:STRING="%{CFLAGS}" \
+                       -DCMAKE_EXE_LINKER_FLAGS="%{LDFLAGS}" \
+                       -DENABLE_PIC=1 \
+                       -DLLVM_PARALLEL_LINK_JOBS=1 \
+                       -DLLVM_ENABLE_DUMP=ON \
+                       -DLLVM_LIBDIR_SUFFIX=%{llvm_libdir_suffix} \
+                       -Wno-dev
+
+               make %{PARALELLISMFLAGS}
+       end
+
+       test
+               cd %{DIR_APP}/build
+
+               make check-all %{PARALELLISMFLAGS}
+       end
+
+       install
+               cd %{DIR_APP}/build
+
+               make install DESTDIR=%{BUILDROOT}
+       end
+end
+
+packages
+       package llvm
+
+       package llvm-libs
+               template LIBS
+       end
+
+       package llvm-devel
+               template DEVEL
+       end
+
+       package %{name}-debuginfo
+               template DEBUGINFO
+       end
+end