]>
Commit | Line | Data |
---|---|---|
53f29fda SS |
1 | ############################################################################### |
2 | # IPFire.org - An Open Source Firewall Solution # | |
3 | # Copyright (C) - IPFire Development Team <info@ipfire.org> # | |
4 | ############################################################################### | |
5 | ||
6 | name = llvm | |
7 | version = 8.0.0 | |
8 | release = 1 | |
9 | ||
10 | groups = Applications/System | |
11 | url = http://llvm.org | |
12 | license = NCSA | |
13 | summary = The Low Level Virtual Machine. | |
14 | ||
15 | description | |
16 | LLVM is a compiler infrastructure designed for compile-time, link-time, | |
17 | runtime, and idle-time optimization of programs from arbitrary programming | |
18 | languages. The compiler infrastructure includes mirror sets of programming | |
19 | tools as well as libraries with equivalent functionality. | |
20 | end | |
21 | ||
22 | source_dl = http://releases.llvm.org/%{version}/ | |
23 | sources = %{thisapp}.src.tar.xz | |
24 | ||
25 | build | |
26 | requires | |
27 | binutils >= 2.32 | |
28 | cmake >= 3.14.5 | |
29 | gcc | |
30 | gcc-c++ | |
31 | libedit-devel >= 3.1-20190324 | |
32 | libffi-devel | |
33 | libxml2-devel | |
34 | zlib-devel | |
35 | end | |
36 | ||
37 | DIR_APP = %{DIR_SRC}/%{thisapp}.src | |
38 | ||
39 | # Limit parallelization to only 2 jobs at the same time. | |
40 | PARALLELISMFLAGS = -j2 | |
41 | ||
42 | # Set suffix for libdir based on the build architecture. | |
43 | llvm_libdir_suffix = | |
44 | ||
45 | if "%{DISTRO_ARCH}" == "x86_64" | |
46 | llvm_libdir_suffix = 64 | |
47 | end | |
48 | ||
49 | if "%{DISTRO_ARCH}" == "aarch64" | |
50 | llvm_libdir_suffix = 64 | |
51 | end | |
52 | ||
53 | build | |
54 | # Create and switch into build directory. | |
55 | mkdir -pv %{DIR_APP}/build | |
56 | cd %{DIR_APP}/build | |
57 | ||
58 | %{cmake} .. \ | |
59 | -DLLVM_BUILD_TOOLS=ON \ | |
60 | -DLLVM_BUILD_UTILS=ON \ | |
61 | -DLLVM_BUILD_TESTS=OFF \ | |
62 | -DLLVM_BUILD_EXAMPLES=OFF \ | |
63 | -DLLVM_BUILD_BENCHMARKS=OFF \ | |
64 | -DCMAKE_BUILD_TYPE=Release \ | |
65 | -DCMAKE_INSTALL_RPATH=";" \ | |
66 | -DLLVM_BUILD_LLVM_DYLIB=OFF \ | |
67 | -DLLVM_LINK_LLVM_DYLIB=OFF \ | |
68 | -DBUILD_SHARED_LIBS=ON \ | |
69 | -DLLVM_ENABLE_FFI=ON \ | |
70 | -DLLVM_ENABLE_RTTI=ON \ | |
71 | -DLLVM_ENABLE_LIBCXX=OFF \ | |
72 | -DLLVM_TARGETS_TO_BUILD="host;" \ | |
73 | -DCMAKE_C_COMPILER=gcc \ | |
74 | -DCMAKE_CXX_COMPILER=g++ \ | |
75 | -DCMAKE_CXX_FLAGS_RELEASE:STRING="%{CFLAGS}" \ | |
76 | -DCMAKE_EXE_LINKER_FLAGS="%{LDFLAGS}" \ | |
77 | -DENABLE_PIC=1 \ | |
78 | -DLLVM_PARALLEL_LINK_JOBS=1 \ | |
79 | -DLLVM_ENABLE_DUMP=ON \ | |
80 | -DLLVM_LIBDIR_SUFFIX=%{llvm_libdir_suffix} \ | |
81 | -Wno-dev | |
82 | ||
83 | make %{PARALELLISMFLAGS} | |
84 | end | |
85 | ||
86 | test | |
87 | cd %{DIR_APP}/build | |
88 | ||
89 | make check-all %{PARALELLISMFLAGS} | |
90 | end | |
91 | ||
92 | install | |
93 | cd %{DIR_APP}/build | |
94 | ||
95 | make install DESTDIR=%{BUILDROOT} | |
96 | end | |
97 | end | |
98 | ||
99 | packages | |
100 | package llvm | |
101 | ||
102 | package llvm-libs | |
103 | template LIBS | |
104 | end | |
105 | ||
106 | package llvm-devel | |
107 | template DEVEL | |
108 | end | |
109 | ||
110 | package %{name}-debuginfo | |
111 | template DEBUGINFO | |
112 | end | |
113 | end |