]> git.pld-linux.org Git - packages/llvm.git/blame - llvm.spec
disable format-security due swig generated code
[packages/llvm.git] / llvm.spec
CommitLineData
6df3b432
JB
1# TODO:
2# - move and package:
3# %{_datadir}/clang/clang-format-sublime.py - sublime plugin
4# %{_datadir}/clang/clang-format.el - emacs mode
5# %{_datadir}/clang/clang-format.py - vim plugin
6# - no content in doc package (it used to contain parts of clang apidocs and some examples)
bc88141a 7#
9556f4c9 8# Conditional build:
589b92f5
JB
9%bcond_without lldb # LLDB debugger
10%bcond_without polly # Polly cache-locality optimization, auto-parallelism and vectorization
11%bcond_without rt # compiler-rt libraries
12%bcond_without multilib # compiler-rt multilib libraries
13%bcond_without ocaml # OCaml binding
14%bcond_without doc # HTML docs and man pages
15%bcond_with apidocs # doxygen docs (HUGE, so they are not built by default)
16%bcond_with tests # run tests
9556f4c9 17
4ba3b2b3
JB
18# No ocaml on other arches or no native ocaml (required for ocaml-ctypes)
19%ifnarch %{ix86} %{x8664} arm aarch64 ppc sparc sparcv9
9556f4c9
ER
20%undefine with_ocaml
21%endif
22
aa11c230 23Summary: The Low Level Virtual Machine (An Optimizing Compiler Infrastructure)
2326a99f 24Summary(pl.UTF-8): Niskopoziomowa maszyna wirtualna (infrastruktura kompilatora optymalizującego)
aa11c230 25Name: llvm
1ba9fe1c
JR
26Version: 3.8.0
27Release: 0.1
aa11c230 28License: University of Illinois/NCSA Open Source License
29Group: Development/Languages
dd9350c7 30#Source0Download: http://llvm.org/releases/download.html
b883cf1e 31Source0: http://llvm.org/releases/%{version}/%{name}-%{version}.src.tar.xz
1ba9fe1c 32# Source0-md5: 07a7a74f3c6bd65de4702bf941b511a0
b883cf1e 33Source1: http://llvm.org/releases/%{version}/cfe-%{version}.src.tar.xz
1ba9fe1c 34# Source1-md5: cc99e7019bb74e6459e80863606250c5
b883cf1e 35Source2: http://llvm.org/releases/%{version}/compiler-rt-%{version}.src.tar.xz
1ba9fe1c 36# Source2-md5: d6fcbe14352ffb708e4d1ac2e48bb025
b883cf1e 37Source3: http://llvm.org/releases/%{version}/lldb-%{version}.src.tar.xz
1ba9fe1c 38# Source3-md5: a5da35ed9cc8c8817ee854e3dbfba00e
b883cf1e 39Source4: http://llvm.org/releases/%{version}/polly-%{version}.src.tar.xz
1ba9fe1c 40# Source4-md5: 1b3b20f52d34a4024e21a4ea7112caa7
b883cf1e 41Source5: http://llvm.org/releases/%{version}/clang-tools-extra-%{version}.src.tar.xz
1ba9fe1c 42# Source5-md5: c2344f50e0eea0b402f0092a80ddc036
ba1cf74d 43Source6: http://llvm.org/releases/%{version}/lld-%{version}.src.tar.xz
1ba9fe1c 44# Source6-md5: de33b5c6c77698ee2f8d024fbffb8df1
3c402b7e 45Patch0: %{name}-lld-link.patch
9f7b77bd
JR
46Patch1: %{name}-pld.patch
47Patch2: libdir.patch
48Patch3: x32-gcc-toolchain.patch
d96b39d3 49Patch4: cmake-buildtype.patch
2326a99f 50URL: http://llvm.org/
bc88141a 51BuildRequires: bash
d997b14b 52BuildRequires: bison
ac5fd320 53BuildRequires: cmake
d997b14b 54BuildRequires: flex
dd9350c7
JB
55BuildRequires: gcc >= 5:3.4
56# gcc4 might be installed, but not current __cc
57%if "%(echo %{cc_version} | cut -d. -f1,2)" < "3.4"
58BuildRequires: __cc >= 3.4
9556f4c9 59%endif
2bbd0701
JR
60%ifarch x32
61BuildRequires: glibc-devel(x86_64)
62%endif
d997b14b 63BuildRequires: groff
bc88141a 64BuildRequires: libltdl-devel
d997b14b 65BuildRequires: libstdc++-devel >= 5:3.4
2bbd0701 66%if %{with ocaml}
c6c890ee 67BuildRequires: ocaml-ctypes-devel >= 0.4
2bbd0701 68BuildRequires: ocaml-findlib
77c13dab 69BuildRequires: ocaml-ocamldoc
2bbd0701
JR
70BuildRequires: ocaml-ounit
71%endif
8132e62b 72BuildRequires: perl-base >= 1:5.6
8c156e7d 73BuildRequires: perl-tools-pod
74BuildRequires: rpm-pythonprov
b0068ae4 75%{?with_doc:BuildRequires: sphinx-pdg}
b883cf1e
JB
76BuildRequires: tar >= 1:1.22
77BuildRequires: xz
dd9350c7
JB
78%if %{with apidocs}
79BuildRequires: doxygen
80BuildRequires: graphviz
81%endif
82%if %{with tests}
83BuildRequires: dejagnu
84BuildRequires: python
85BuildRequires: tcl-devel
356a0bbd 86%endif
589b92f5
JB
87%if %{with rt} && %{with multilib}
88%ifarch %{x8664}
89BuildRequires: gcc-c++-multilib-32
90BuildRequires: libstdc++-multilib-32-devel
91%endif
92%endif
b883cf1e 93%if %{with lldb}
c6c890ee 94BuildRequires: epydoc
64f4e87f
JB
95%ifarch i386 i486
96BuildRequires: libatomic-devel
97%endif
b883cf1e
JB
98BuildRequires: libedit-devel
99BuildRequires: libxml2-devel >= 2
100BuildRequires: ncurses-ext-devel
101BuildRequires: python-devel >= 2
c6c890ee 102BuildRequires: swig-python
b883cf1e 103%endif
b0068ae4
JB
104%if %{with polly}
105BuildRequires: cloog-isl-devel
b883cf1e 106# >= 0.18.2-2
b0068ae4 107BuildRequires: gmp-devel
2bbd0701 108BuildRequires: isl-devel >= 0.14
b883cf1e 109# optional
3eca6fe9 110BuildRequires: pluto-devel
b883cf1e 111BuildRequires: scoplib-devel >= 0.2.1-2
b0068ae4
JB
112#cuda-devel
113%endif
8c514f23 114Requires: %{name}-libs = %{version}-%{release}
9556f4c9
ER
115# LLVM is not supported on PPC64
116# http://llvm.org/bugs/show_bug.cgi?id=3729
117ExcludeArch: ppc64
aa11c230 118BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
119
356a0bbd 120%define _sysconfdir /etc/%{name}
021b3c3d 121
9556f4c9
ER
122%define specflags_ppc -fno-var-tracking-assignments
123
6832a5c5
ER
124# strip corrupts: $RPM_BUILD_ROOT/usr/lib64/llvm-gcc/bin/llvm-c++ ...
125%define _noautostrip .*/\\(libmud.*\\.a\\|bin/llvm-.*\\|lib.*++\\.a\\)
126
782c6e1e
ER
127# clang doesn't know -fvar-tracking-assignments, and leaving it here would pollute llvm-config
128# -Werror=format-security is for swig
129# TODO: add - -Werror=format-security to tools/lldb/scripts/LLDBWrapPython.cpp
4a1d21cc 130%define filterout_c -fvar-tracking-assignments
782c6e1e 131%define filterout_cxx -fvar-tracking-assignments -Werror=format-security
4a1d21cc
JR
132%define filterout_ccpp -fvar-tracking-assignments
133
6df3b432
JB
134# std::__once_call, std::__once_callable non-function symbols
135%define skip_post_check_so liblldAArch64ELFTarget.so.* liblldARMELFTarget.so.* liblldHexagonELFTarget.so.* liblldMipsELFTarget.so.* liblldb.so.*
136
aa11c230 137%description
138LLVM is a compiler infrastructure designed for compile-time,
139link-time, runtime, and idle-time optimization of programs from
140arbitrary programming languages. LLVM is written in C++ and has been
141developed since 2000 at the University of Illinois and Apple. It
621ec11f
JB
142currently supports compilation of C and C++ programs using clang
143frontend.
aa11c230 144
2326a99f
JB
145%description -l pl.UTF-8
146LLVM to infrastruktura kompilatora zaprojektowana do optymalizacji
147czasu kompilowania, linkowania, działania i bezczynności programów w
148dowolnych językach programowania. Jest napisana w C++, rozwijana od
149roku 2000 przez Uniwersytet w Illinois i Apple. Aktualnie obsługuje
621ec11f 150kompilację programów w C i C++ przy użyciu frontendu clang.
2326a99f 151
8c514f23 152%package libs
87977e26
JR
153Summary: LLVM shared libraries
154Summary(pl.UTF-8): Biblioteki współdzielone LLVM-a
8c514f23
JB
155Group: Libraries
156Conflicts: llvm < 3.2
157
158%description libs
87977e26 159LLVM shared libraries.
8c514f23
JB
160
161%description libs -l pl.UTF-8
87977e26 162Biblioteki współdzielone LLVM-a.
8c514f23 163
bc88141a 164%package devel
621ec11f
JB
165Summary: Static libraries and header files for LLVM
166Summary(pl.UTF-8): Biblioteki statyczne i pliki nagłówkowe dla LLVM-a
bc88141a 167Group: Development/Languages
8c514f23 168Requires: %{name}-libs = %{version}-%{release}
bc88141a
ER
169Requires: libstdc++-devel >= 6:3.4
170
171%description devel
621ec11f
JB
172This package contains static libraries and header files needed to
173develop new native programs that use the LLVM infrastructure.
174
175%description devel -l pl.UTF-8
176Ten pakiet zawiera biblioteki statyczne oraz pliki nagłówkowe
177potrzebne do tworzenia nowych programów natywnych wykorzystujących
178infrastrukturę LLVM.
bc88141a 179
9556f4c9
ER
180%package doc
181Summary: Documentation for LLVM
621ec11f 182Summary(pl.UTF-8): Dokumentacja do LLVM-a
9556f4c9
ER
183Group: Documentation
184# does not require base
bc88141a 185
9556f4c9
ER
186%description doc
187Documentation for the LLVM compiler infrastructure.
bc88141a 188
621ec11f
JB
189%description doc -l pl.UTF-8
190Dokumentacja do infrastruktury kompilatorów LLVM.
191
9556f4c9
ER
192%package apidocs
193Summary: API documentation for LLVM
621ec11f 194Summary(pl.UTF-8): Dokumentacja API LLVM-a
9556f4c9
ER
195Group: Development/Languages
196Requires: %{name}-doc = %{version}-%{release}
bc88141a 197
9556f4c9
ER
198%description apidocs
199API documentation for the LLVM compiler infrastructure.
bc88141a 200
621ec11f
JB
201%description apidocs -l pl.UTF-8
202Dokumentacja API infrastruktury kompilatorów LLVM.
203
b0068ae4
JB
204%package polly
205Summary: Polyhedral optimizations for LLVM
206Summary(pl.UTF-8): Optymalizacje wielościanowe dla LLVM-a
207Group: Development/Tools
208URL: http://polly.llvm.org/
209Requires: %{name} = %{version}-%{release}
210
211%description polly
212Polly is a high-level loop and data-locality optimizer and
213optimization infrastructure for LLVM. It uses an abstract mathematical
214representation based on integer polyhedra to analyze and optimize the
215memory access pattern of a program.
216
217%description polly -l pl.UTF-8
218Polly to wysokopoziomowy optymalizator i infrastruktura LLVM-a do
219optymalizacji pętli i położenia danych. Wykorzystuje abstrakcyjną
220reprezentację matematyczną opartą na wielościanach całkowitoliczbowych
221do analizy i optymalizacji wzorców dostępu do pamięci przez program.
222
223%package polly-devel
224Summary: Header files for LLVM Polly optimization infrastructure
225Summary(pl.UTF-8): Pliki nagłówkowe infrastruktury optymalizacji LLVM-a Polly
226Group: Development/Libraries
227URL: http://polly.llvm.org/
228Requires: %{name}-devel = %{version}-%{release}
229Requires: %{name}-polly = %{version}-%{release}
230
231%description polly-devel
232Header files for LLVM Polly optimization infrastructure.
233
234%description polly-devel -l pl.UTF-8
235Pliki nagłówkowe infrastruktury optymalizacji LLVM-a Polly.
236
d997b14b
AM
237%package -n clang
238Summary: A C language family frontend for LLVM
621ec11f 239Summary(pl.UTF-8): Frontend LLVM-a do języków z rodziny C
d997b14b
AM
240License: NCSA
241Group: Development/Languages
8c514f23 242Requires: %{name} = %{version}-%{release}
87977e26 243Requires: clang-libs = %{version}-%{release}
d997b14b
AM
244
245%description -n clang
246clang: noun 1. A loud, resonant, metallic sound. 2. The strident call
247of a crane or goose. 3. C-language family front-end toolkit.
248
249The goal of the Clang project is to create a new C, C++, Objective C
250and Objective C++ front-end for the LLVM compiler. Its tools are built
251as libraries and designed to be loosely-coupled and extendable.
252
621ec11f
JB
253%description -n clang -l pl.UTF-8
254clang (z angielskiego): 1. głośny, rezonujący, metaliczny dźwięk; 2.
255piskliwy odgłos żurawia lub gęsi; 3. narzędzia frontendowe dla języków
256z rodziny C.
257
258Celem projektu Clang jest utworzenie nowego frontendu dla kompilatora
259LLVM do języków C, C++, Objective C i Objective C++. Narzędzia są
260budowane jako biblioteki i zaprojektowane z myślą o swobodnym łączeniu
261i rozszerzaniu.
262
87977e26
JR
263%package -n clang-libs
264Summary: Clang shared libraries
265Summary(pl.UTF-8): Biblioteki współdzielone Clanga
266Group: Libraries
267
268%description -n clang-libs
269Clang shared libraries.
270
271%description -n clang-libs -l pl.UTF-8
272Biblioteki współdzielone Clanga.
273
9eefd942
JR
274%package -n clang-multilib
275Summary: A C language family frontend for LLVM - 32-bit support
276Summary(pl.UTF-8): Frontend LLVM-a do języków z rodziny C - obsługa binariów 32-bitowych
277License: NCSA
278Group: Development/Languages
279Requires: clang = %{version}-%{release}
280
281%description -n clang-multilib
282clang: noun 1. A loud, resonant, metallic sound. 2. The strident call
283of a crane or goose. 3. C-language family front-end toolkit.
284
285The goal of the Clang project is to create a new C, C++, Objective C
286and Objective C++ front-end for the LLVM compiler. Its tools are built
287as libraries and designed to be loosely-coupled and extendable.
288
289This package contains the C compiler support for producing 32-bit
290programs on 64-bit host.
291
292%description -n clang-multilib -l pl.UTF-8
293clang (z angielskiego): 1. głośny, rezonujący, metaliczny dźwięk; 2.
294piskliwy odgłos żurawia lub gęsi; 3. narzędzia frontendowe dla języków
295z rodziny C.
296
297Celem projektu Clang jest utworzenie nowego frontendu dla kompilatora
298LLVM do języków C, C++, Objective C i Objective C++. Narzędzia są
299budowane jako biblioteki i zaprojektowane z myślą o swobodnym łączeniu
300i rozszerzaniu.
301
302Ten pakiet zawiera rozszerzenie kompilatora C o obsługę tworzenia
303programów 32-bitowych na maszynie 64-bitowej.
304
d997b14b
AM
305%package -n clang-analyzer
306Summary: A source code analysis framework
621ec11f 307Summary(pl.UTF-8): Szkielet do analizy kodu źródłowego
d997b14b
AM
308License: NCSA
309Group: Development/Languages
310Requires: clang = %{version}-%{release}
311# not picked up automatically since files are currently not instaled
312# in standard Python hierarchies yet
313Requires: python
314
315%description -n clang-analyzer
316The Clang Static Analyzer consists of both a source code analysis
317framework and a standalone tool that finds bugs in C and Objective-C
318programs. The standalone tool is invoked from the command-line, and is
319intended to run in tandem with a build of a project or code base.
320
621ec11f
JB
321%description -n clang-analyzer -l pl.UTF-8
322Clang Static Analyzer składa się ze szkieletu do analizy kodu
323źródłowego oraz samodzielnego narzędzia znajdującego błędy w
324programach w C i C++. Narzędzie jest wywoływane z linii poleceń, z
325myślą o uruchamianiu wraz z kompilacją projektu lub kodu.
326
9556f4c9 327%package -n clang-devel
621ec11f
JB
328Summary: Header files for Clang
329Summary(pl.UTF-8): Pliki nagłówkowe Clanga
9556f4c9 330Group: Development/Languages
8c514f23 331Requires: %{name}-devel = %{version}-%{release}
9556f4c9
ER
332Requires: clang = %{version}-%{release}
333
334%description -n clang-devel
335This package contains header files for the Clang compiler.
336
621ec11f
JB
337%description -n clang-devel -l pl.UTF-8
338Ten pakiet zawiera pliki nagłówkowe kompilatora Clang.
339
9556f4c9
ER
340%package -n clang-doc
341Summary: Documentation for Clang
621ec11f 342Summary(pl.UTF-8): Dokumentacja do Clanga
9556f4c9
ER
343Group: Documentation
344Requires: %{name} = %{version}-%{release}
345
346%description -n clang-doc
347Documentation for the Clang compiler front-end.
348
621ec11f
JB
349%description -n clang-doc -l pl.UTF-8
350Dokumentacja do frontendu kompilatora Clang.
351
9556f4c9
ER
352%package -n clang-apidocs
353Summary: API documentation for Clang
621ec11f 354Summary(pl.UTF-8): Dokumentacja API Clanga
9556f4c9
ER
355Group: Development/Languages
356Requires: clang-doc = %{version}-%{release}
357
358%description -n clang-apidocs
359API documentation for the Clang compiler.
360
621ec11f
JB
361%description -n clang-apidocs -l pl.UTF-8
362Dokumentacja API kompilatora Clang.
363
b0068ae4
JB
364%package -n clang-tools-extra
365Summary: Extra tools for Clang
366Summary(pl.UTF-8): Dodatkowe narzędzia do kompilatora Clang
367Group: Development/Tools
368URL: http://clang.llvm.org/docs/ClangTools.html
369Requires: clang = %{version}-%{release}
370
371%description -n clang-tools-extra
372Extra tools for Clang.
373
374%description -n clang-tools-extra -l pl.UTF-8
375Dodatkowe narzędzia do kompilatora Clang.
376
ba1cf74d
JB
377%package -n lld
378Summary: The LLVM linker
379Summary(pl.UTF-8): Konsolidator z projektu LLVM
380Group: Development/Libraries
381URL: http://lld.llvm.org/
382Requires: %{name} = %{version}-%{release}
383
384%description -n lld
385lld is a new set of modular code for creating linker tools.
386
387%description -n lld -l pl.UTF-8
388lld to nowy zbiór modularnego kodu do tworzenia narzędzi
389konsolidujących.
390
391%package -n lld-devel
392Summary: Development files for LLD linker tools
393Summary(pl.UTF-8): Pliki programistyczne narzędzi konsolidujących LLD
394Group: Development/Tools
395URL: http://lld.llvm.org/
396Requires: %{name}-devel = %{version}-%{release}
397
398%description -n lld-devel
399Development files for LLD linker tools.
400
401%description -n lld-devel -l pl.UTF-8
402Pliki programistyczne narzędzi konsolidujących LLD.
403
5a7ac479
JB
404%package -n lldb
405Summary: Next generation high-performance debugger
406Summary(pl.UTF-8): Wydajny debugger nowej generacji
407Group: Development/Debuggers
ba1cf74d 408URL: http://lldb.llvm.org/
5a7ac479
JB
409Requires: %{name} = %{version}-%{release}
410
411%description -n lldb
412LLDB is a next generation, high-performance debugger. It is built as a
413set of reusable components which highly leverage existing libraries in
414the larger LLVM Project, such as the Clang expression parser and LLVM
415disassembler.
416
417%description -n lldb -l pl.UTF-8
418LLDB to wydajny debugger nowej generacji. Jest zbudowany w oparciu o
419komponenty wielokrotnego użytku, wykorzystujące istniejące biblioteki
420w projekcie LLVM, takie jak analizator wyrażeń kompilatora Clang oraz
421disasembler LLVM.
422
423%package -n lldb-devel
ba1cf74d
JB
424Summary: Development files for LLDB debugger
425Summary(pl.UTF-8): Pliki programistyczne debuggera LLDB
5a7ac479 426Group: Development/Libraries
ba1cf74d 427URL: http://lldb.llvm.org/
5a7ac479
JB
428Requires: %{name}-devel = %{version}-%{release}
429Requires: clang-devel = %{version}-%{release}
430Requires: lldb = %{version}-%{release}
431
432%description -n lldb-devel
ba1cf74d 433Development files for LLDB debugger.
5a7ac479
JB
434
435%description -n lldb-devel -l pl.UTF-8
ba1cf74d 436Pliki programistyczne debuggera LLDB.
5a7ac479 437
9556f4c9
ER
438%package ocaml
439Summary: OCaml binding for LLVM
621ec11f
JB
440Summary(pl.UTF-8): Wiązanie OCamla do LLVM-a
441Group: Libraries
9556f4c9
ER
442Requires: %{name} = %{version}-%{release}
443%requires_eq ocaml-runtime
444
621ec11f 445%description ocaml
9556f4c9
ER
446OCaml binding for LLVM.
447
621ec11f
JB
448%description ocaml -l pl.UTF-8
449Wiązanie OCamla do LLVM-a.
450
9556f4c9 451%package ocaml-devel
621ec11f
JB
452Summary: Development files for LLVM OCaml binding
453Summary(pl.UTF-8): Pliki programistyczne wiązania OCamla do LLVM-a
9556f4c9
ER
454Group: Development/Libraries
455Requires: %{name}-devel = %{version}-%{release}
456Requires: %{name}-ocaml = %{version}-%{release}
457
458%description ocaml-devel
459The llvm-ocaml-devel package contains libraries and signature files
621ec11f
JB
460for developing applications that use llvm-ocaml binding.
461
462%description ocaml-devel -l pl.UTF-8
463Ten pakiet zawiera biblioteki i pliki sygnatur do tworzenia aplikacji
464wykorzystujących wiązanie llvm-ocaml.
465
9556f4c9
ER
466%package ocaml-doc
467Summary: Documentation for LLVM's OCaml binding
621ec11f 468Summary(pl.UTF-8): Dokumentacja wiązania OCamla do LLVM-a
9556f4c9
ER
469Group: Documentation
470Requires: %{name}-ocaml = %{version}-%{release}
471
472%description ocaml-doc
473HTML documentation for LLVM's OCaml binding.
474
621ec11f
JB
475%description ocaml-doc -l pl.UTF-8
476Dokumentacja HTML wiązania OCamla do LLVM-a.
477
aa11c230 478%prep
ba1cf74d 479%setup -q -n %{name}-%{version}.src -a1 %{?with_rt:-a2} %{?with_lldb:-a3} %{?with_polly:-a4} -a5 -a6
c999855f 480mv cfe-%{version}.src tools/clang
b883cf1e
JB
481%{?with_rt:mv compiler-rt-%{version}.src projects/compiler-rt}
482%{?with_lldb:mv lldb-%{version}.src tools/lldb}
483%{?with_polly:mv polly-%{version}.src tools/polly}
484mv clang-tools-extra-%{version}.src tools/clang/tools/extra
ba1cf74d 485mv lld-%{version}.src tools/lld
5a7ac479 486
3c402b7e 487%patch0 -p1
9f7b77bd 488%patch1 -p1
ebde279d 489%patch2 -p1
9f7b77bd 490%patch3 -p1
d96b39d3 491%patch4 -p1
ce9cc204 492
bacc8b96
ER
493grep -rl /usr/bin/env tools utils | xargs sed -i -e '1{
494 s,^#!.*bin/env python,#!%{__python},
495 s,^#!.*bin/env perl,#!%{__perl},
496}'
497
d756c460 498%build
41876fe7 499install -d build
ebde279d 500
d997b14b 501# Disabling assertions now, rec. by pure and needed for OpenGTL
9556f4c9 502# TESTFIX no PIC on ix86: http://llvm.org/bugs/show_bug.cgi?id=3801
41876fe7 503cd build
5e689738 504CPPFLAGS="%{rpmcppflags} -D_FILE_OFFSET_BITS=64"
2bbd0701 505
d96b39d3 506%cmake \
41876fe7
JR
507%ifarch %{x8664}
508 -DLLVM_LIBDIR_SUFFIX:STRING=64 \
509%endif
510%ifarch x32
511 -DLLVM_LIBDIR_SUFFIX:STRING=x32 \
512%endif
9556f4c9 513%if %{with apidocs}
41876fe7 514 -DLLVM_ENABLE_DOXYGEN:BOOL=ON \
d997b14b 515%endif
41876fe7
JR
516%if %{with doc}
517 -DLLVM_ENABLE_SPHINX:BOOL=ON \
518%endif
6c382d2a 519 -DLLVM_ENABLE_PIC:BOOL=ON \
41876fe7
JR
520 -DLLVM_ENABLE_ASSERTIONS:BOOL=OFF \
521 -DLLVM_ENABLE_CXX1Y:BOOL=ON \
82174e17 522 -DLLVM_BINDINGS_LIST:LIST="%{?with_ocaml:ocaml}" \
d96b39d3
ER
523 -DBUILD_SHARED_LIBS:BOOL=ON \
524 ../
41876fe7 525
d997b14b 526%{__make} \
1628dc68 527 VERBOSE=1 \
0a0b7076 528 REQUIRES_RTTI=1 \
d997b14b 529 OPTIMIZE_OPTION="%{rpmcflags} %{rpmcppflags}"
aa11c230 530
827664e9 531%if %{with tests}
9556f4c9
ER
532%{__make} check 2>&1 | tee llvm-testlog.txt
533%{__make} -C tools/clang test 2>&1 | tee clang-testlog.txt
534%endif
535
b0068ae4 536%if %{with doc}
41876fe7
JR
537%{__make} -C docs docs-llvm-html
538%{__make} -C docs docs-llvm-man
c6c890ee 539%if %{with ocaml}
41876fe7 540%{__make} -C docs ocaml_doc
c6c890ee 541%endif
41876fe7
JR
542%{__make} -C tools/clang/docs docs-clang-html
543%{__make} -C tools/clang/docs docs-clang-man
544%{__make} -C tools/lld/docs docs-lld-html
545%{__make} -C tools/lldb/docs lldb-python-doc
546%{__make} -C tools/lldb/docs lldb-cpp-doc
6df3b432 547%{__make} -C ../tools/clang/tools/extra/docs html
dd9350c7
JB
548%endif
549
aa11c230 550%install
551rm -rf $RPM_BUILD_ROOT
41876fe7 552%{__make} -C build install \
aa11c230 553 DESTDIR=$RPM_BUILD_ROOT
554
6df3b432
JB
555# only some .pyc files are created by make install
556%py_comp $RPM_BUILD_ROOT%{py_sitedir}
557%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
558
d997b14b 559# Static analyzer not installed by default:
9556f4c9
ER
560# http://clang-analyzer.llvm.org/installation#OtherPlatforms
561install -d $RPM_BUILD_ROOT%{_libdir}/clang-analyzer
d997b14b
AM
562# create launchers
563for f in scan-{build,view}; do
9556f4c9
ER
564 ln -s %{_libdir}/clang-analyzer/$f/$f $RPM_BUILD_ROOT%{_bindir}/$f
565 cp -pr tools/clang/tools/$f $RPM_BUILD_ROOT%{_libdir}/clang-analyzer
d997b14b 566done
41876fe7 567install -d $RPM_BUILD_ROOT%{_mandir}/man1
dd9350c7 568%{__mv} $RPM_BUILD_ROOT%{_libdir}/clang-analyzer/scan-build/scan-build.1 $RPM_BUILD_ROOT%{_mandir}/man1
8132e62b
JB
569%py_comp $RPM_BUILD_ROOT%{_libdir}/clang-analyzer/scan-view
570%py_ocomp $RPM_BUILD_ROOT%{_libdir}/clang-analyzer/scan-view
571%py_postclean %{_libdir}/clang-analyzer/scan-view
4ba3b2b3
JB
572# not this OS
573%{__rm} $RPM_BUILD_ROOT%{_libdir}/clang-analyzer/scan-build/*.bat
d997b14b 574
6df3b432
JB
575# not installed by cmake buildsystem
576install build/bin/clang-query $RPM_BUILD_ROOT%{_bindir}
577install build/bin/pp-trace $RPM_BUILD_ROOT%{_bindir}
578
b0068ae4 579%if %{with doc}
6df3b432 580cp -p build/docs/man/*.1 $RPM_BUILD_ROOT%{_mandir}/man1
b883cf1e
JB
581# these tools are not installed
582%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{FileCheck,llvm-build}.1
b0068ae4
JB
583# make links
584echo '.so llvm-ar.1' > $RPM_BUILD_ROOT%{_mandir}/man1/llvm-ranlib.1
dd9350c7
JB
585%endif
586
d997b14b 587# Move documentation back to build directory
2bbd0701 588%if %{with ocaml}
6df3b432
JB
589rm -rf ocamldocs
590mv $RPM_BUILD_ROOT%{_prefix}/docs/ocaml/html/html ocamldocs
2bbd0701 591%endif
9556f4c9
ER
592
593# and separate the apidoc
594%if %{with apidocs}
6df3b432
JB
595rm -rf clang-apidoc
596cp -a build/tools/clang/docs/html clang-apidoc
9556f4c9 597%endif
d997b14b
AM
598
599# And prepare Clang documentation
d997b14b 600rm -rf clang-docs
9556f4c9 601install -d clang-docs
827664e9 602for f in LICENSE.TXT NOTES.txt README.txt; do
9556f4c9 603 ln tools/clang/$f clang-docs
d997b14b 604done
021b3c3d 605
6832a5c5 606# Get rid of erroneously installed example files.
6df3b432
JB
607%{__rm} $RPM_BUILD_ROOT%{_libdir}/LLVMHello.so
608# test?
609%{__rm} $RPM_BUILD_ROOT%{_bindir}/llvm-c-test
610# not this OS
611%{__rm} $RPM_BUILD_ROOT%{_datadir}/clang/clang-format-bbedit.applescript
6832a5c5 612
aa11c230 613%clean
614rm -rf $RPM_BUILD_ROOT
615
8c514f23
JB
616%post libs -p /sbin/ldconfig
617%postun libs -p /sbin/ldconfig
aa11c230 618
5a7ac479
JB
619%post -n clang -p /sbin/ldconfig
620%postun -n clang -p /sbin/ldconfig
621
6df3b432
JB
622%post -n clang-tools-extra -p /sbin/ldconfig
623%postun -n clang-tools-extra -p /sbin/ldconfig
624
5a7ac479
JB
625%post -n lldb -p /sbin/ldconfig
626%postun -n lldb -p /sbin/ldconfig
627
aa11c230 628%files
629%defattr(644,root,root,755)
8132e62b 630%doc CREDITS.TXT LICENSE.TXT README.txt %{?with_tests:llvm-testlog.txt}
a9beeab5 631%attr(755,root,root) %{_bindir}/bugpoint
a9beeab5
JB
632%attr(755,root,root) %{_bindir}/llc
633%attr(755,root,root) %{_bindir}/lli
8132e62b
JB
634%attr(755,root,root) %{_bindir}/llvm-ar
635%attr(755,root,root) %{_bindir}/llvm-as
636%attr(755,root,root) %{_bindir}/llvm-bcanalyzer
827664e9 637%attr(755,root,root) %{_bindir}/llvm-cov
8132e62b
JB
638%attr(755,root,root) %{_bindir}/llvm-diff
639%attr(755,root,root) %{_bindir}/llvm-dis
4ba3b2b3 640%attr(755,root,root) %{_bindir}/llvm-dsymutil
827664e9 641%attr(755,root,root) %{_bindir}/llvm-dwarfdump
8132e62b 642%attr(755,root,root) %{_bindir}/llvm-extract
6df3b432 643%attr(755,root,root) %{_bindir}/llvm-lib
8132e62b 644%attr(755,root,root) %{_bindir}/llvm-link
3c402b7e 645%attr(755,root,root) %{_bindir}/llvm-lto
8132e62b 646%attr(755,root,root) %{_bindir}/llvm-mc
dd9350c7 647%attr(755,root,root) %{_bindir}/llvm-mcmarkup
8132e62b
JB
648%attr(755,root,root) %{_bindir}/llvm-nm
649%attr(755,root,root) %{_bindir}/llvm-objdump
b883cf1e 650%attr(755,root,root) %{_bindir}/llvm-profdata
8132e62b 651%attr(755,root,root) %{_bindir}/llvm-ranlib
f981d747 652%attr(755,root,root) %{_bindir}/llvm-readobj
827664e9
PS
653%attr(755,root,root) %{_bindir}/llvm-rtdyld
654%attr(755,root,root) %{_bindir}/llvm-size
f981d747 655%attr(755,root,root) %{_bindir}/llvm-stress
1628dc68 656%attr(755,root,root) %{_bindir}/llvm-symbolizer
827664e9 657%attr(755,root,root) %{_bindir}/llvm-tblgen
41876fe7
JR
658%attr(755,root,root) %{_bindir}/llvm-cxxdump
659%attr(755,root,root) %{_bindir}/llvm-pdbdump
a7973f21 660%attr(755,root,root) %{_bindir}/macho-dump
4ba3b2b3 661%attr(755,root,root) %{_bindir}/obj2yaml
8132e62b 662%attr(755,root,root) %{_bindir}/opt
4ba3b2b3
JB
663%attr(755,root,root) %{_bindir}/verify-uselistorder
664%attr(755,root,root) %{_bindir}/yaml2obj
b0068ae4 665%if %{with doc}
a9beeab5 666%{_mandir}/man1/bugpoint.1*
a7973f21 667%{_mandir}/man1/lit.1*
a9beeab5
JB
668%{_mandir}/man1/llc.1*
669%{_mandir}/man1/lli.1*
8132e62b
JB
670%{_mandir}/man1/llvm-ar.1*
671%{_mandir}/man1/llvm-as.1*
672%{_mandir}/man1/llvm-bcanalyzer.1*
f981d747 673%{_mandir}/man1/llvm-cov.1*
8132e62b
JB
674%{_mandir}/man1/llvm-diff.1*
675%{_mandir}/man1/llvm-dis.1*
b883cf1e 676%{_mandir}/man1/llvm-dwarfdump.1*
8132e62b 677%{_mandir}/man1/llvm-extract.1*
8132e62b
JB
678%{_mandir}/man1/llvm-link.1*
679%{_mandir}/man1/llvm-nm.1*
b883cf1e 680%{_mandir}/man1/llvm-profdata.1*
8132e62b 681%{_mandir}/man1/llvm-ranlib.1*
c999855f 682%{_mandir}/man1/llvm-readobj.1*
f981d747 683%{_mandir}/man1/llvm-stress.1*
1628dc68 684%{_mandir}/man1/llvm-symbolizer.1*
a9beeab5 685%{_mandir}/man1/opt.1*
dd9350c7 686%{_mandir}/man1/tblgen.1*
b0068ae4 687%endif
bc88141a 688
8c514f23
JB
689%files libs
690%defattr(644,root,root,755)
6df3b432
JB
691%attr(755,root,root) %{_libdir}/libLLVM*.so.%{version}
692%attr(755,root,root) %ghost %{_libdir}/libLLVM*.so.3.7
3c402b7e
JB
693%attr(755,root,root) %{_libdir}/libLTO.so.%{version}
694%attr(755,root,root) %ghost %{_libdir}/libLTO.so.3.7
8c514f23 695
bc88141a
ER
696%files devel
697%defattr(644,root,root,755)
698%attr(755,root,root) %{_bindir}/llvm-config
6df3b432 699%attr(755,root,root) %{_libdir}/libLLVM*.so
0a8510f2 700%attr(755,root,root) %{_libdir}/BugpointPasses.so
19f21eee 701%attr(755,root,root) %{_libdir}/libLTO.so
8132e62b
JB
702%{_includedir}/llvm
703%{_includedir}/llvm-c
b883cf1e
JB
704%dir %{_datadir}/llvm
705%{_datadir}/llvm/cmake
b0068ae4 706%if %{with doc}
8132e62b 707%{_mandir}/man1/llvm-config.1*
b0068ae4 708%endif
bc88141a 709
6df3b432
JB
710#%files doc
711#%defattr(644,root,root,755)
9556f4c9
ER
712
713%if %{with apidocs}
714%files apidocs
715%defattr(644,root,root,755)
716%doc apidoc/*
717%endif
718
b0068ae4
JB
719%if %{with polly}
720%files polly
721%defattr(644,root,root,755)
722%doc tools/polly/{CREDITS.txt,LICENSE.txt,README}
723%attr(755,root,root) %{_libdir}/LLVMPolly.so
6df3b432 724%attr(755,root,root) %{_libdir}/libPolly.so
b0068ae4
JB
725
726%files polly-devel
727%defattr(644,root,root,755)
b0068ae4
JB
728%{_includedir}/polly
729%endif
730
d997b14b 731%files -n clang
bc88141a 732%defattr(644,root,root,755)
827664e9 733%doc clang-docs/{LICENSE.TXT,NOTES.txt,README.txt} %{?with_tests:clang-testlog.txt}
8132e62b
JB
734%attr(755,root,root) %{_bindir}/clang
735%attr(755,root,root) %{_bindir}/clang++
6df3b432 736%attr(755,root,root) %{_bindir}/clang-3.7
dd9350c7 737%attr(755,root,root) %{_bindir}/clang-check
6df3b432 738%attr(755,root,root) %{_bindir}/clang-cl
1628dc68 739%attr(755,root,root) %{_bindir}/clang-format
6df3b432 740%attr(755,root,root) %{_bindir}/git-clang-format
5a7ac479
JB
741%dir %{_libdir}/clang
742%dir %{_libdir}/clang/%{version}
743%{_libdir}/clang/%{version}/include
744%if %{with rt}
c6c890ee 745%ifarch %{ix86} %{x8664}
6df3b432 746%{_libdir}/clang/%{version}/asan_blacklist.txt
9eefd942
JR
747%dir %{_libdir}/clang/%{version}/lib
748%dir %{_libdir}/clang/%{version}/lib/linux
749%endif
750%ifarch %{ix86}
751%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-i*86.a
752%attr(755,root,root) %{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-i*86.so
c6c890ee
JB
753%endif
754%ifarch %{x8664}
3c402b7e
JB
755%{_libdir}/clang/%{version}/dfsan_abilist.txt
756%{_libdir}/clang/%{version}/msan_blacklist.txt
9eefd942
JR
757%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-x86_64.a
758%attr(755,root,root) %{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-x86_64.so
f4c0e8bd 759%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-x86_64.a.syms
3c402b7e 760%endif
5a7ac479 761%endif
3c402b7e
JB
762%dir %{_datadir}/clang
763%{_datadir}/clang/clang-format-diff.py
d997b14b 764
87977e26
JR
765%files -n clang-libs
766%defattr(644,root,root,755)
767%attr(755,root,root) %{_libdir}/libclang.so.3.7
768%attr(755,root,root) %{_libdir}/libclang[A-Z]*.so.%{version}
769%attr(755,root,root) %ghost %{_libdir}/libclang[A-Z]*.so.3.7
770
589b92f5 771%if %{with rt} && %{with multilib}
9eefd942
JR
772%ifarch %{x8664}
773%files -n clang-multilib
774%defattr(644,root,root,755)
775%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-i386.a
776%attr(755,root,root) %{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-i386.so
777%endif
778%endif
779
d997b14b 780%files -n clang-analyzer
bc88141a 781%defattr(644,root,root,755)
d997b14b
AM
782%attr(755,root,root) %{_bindir}/scan-build
783%attr(755,root,root) %{_bindir}/scan-view
dd9350c7 784%{_mandir}/man1/scan-build.1*
ae49e501 785%dir %{_libdir}/clang-analyzer
d997b14b 786
9556f4c9
ER
787%dir %{_libdir}/clang-analyzer/scan-build
788%{_libdir}/clang-analyzer/scan-build/*.css
789%{_libdir}/clang-analyzer/scan-build/*.js
790%attr(755,root,root) %{_libdir}/clang-analyzer/scan-build/scan-build
791%attr(755,root,root) %{_libdir}/clang-analyzer/scan-build/*-analyzer
792
8132e62b
JB
793%dir %{_libdir}/clang-analyzer/scan-view
794%attr(755,root,root) %{_libdir}/clang-analyzer/scan-view/scan-view
795%{_libdir}/clang-analyzer/scan-view/Resources
796%{_libdir}/clang-analyzer/scan-view/*.py[co]
797
9556f4c9
ER
798%files -n clang-devel
799%defattr(644,root,root,755)
6df3b432 800%attr(755,root,root) %{_libdir}/libclang*.so
9556f4c9
ER
801%{_includedir}/clang
802%{_includedir}/clang-c
803
804%files -n clang-doc
805%defattr(644,root,root,755)
41876fe7 806%doc tools/clang/docs/*.{html,png,txt}
9556f4c9
ER
807
808%if %{with apidocs}
809%files -n clang-apidocs
810%defattr(644,root,root,755)
811%doc clang-apidoc/*
812%endif
813
b0068ae4
JB
814%files -n clang-tools-extra
815%defattr(644,root,root,755)
6df3b432 816%doc tools/clang/tools/extra/{CODE_OWNERS.TXT,README.txt} tools/clang/tools/extra/docs/_build/html/{*.html,*.js,_static}
b0068ae4
JB
817%attr(755,root,root) %{_bindir}/clang-apply-replacements
818%attr(755,root,root) %{_bindir}/clang-modernize
b883cf1e 819%attr(755,root,root) %{_bindir}/clang-query
4ba3b2b3 820%attr(755,root,root) %{_bindir}/clang-rename
b0068ae4
JB
821%attr(755,root,root) %{_bindir}/clang-tidy
822%attr(755,root,root) %{_bindir}/pp-trace
6df3b432
JB
823%attr(755,root,root) %{_libdir}/libmodernizeCore.so.%{version}
824%attr(755,root,root) %ghost %{_libdir}/libmodernizeCore.so.3.7
825# -devel?
826%attr(755,root,root) %{_libdir}/libmodernizeCore.so
b0068ae4 827
ba1cf74d
JB
828%files -n lld
829%defattr(644,root,root,755)
830%doc tools/lld/{LICENSE.TXT,README.md}
831%attr(755,root,root) %{_bindir}/lld
6df3b432
JB
832%attr(755,root,root) %{_libdir}/liblld[ACDEHMPRXY]*.so.%{version}
833%attr(755,root,root) %ghost %{_libdir}/liblld[ACDEHMPRXY]*.so.3.7
ba1cf74d
JB
834
835%files -n lld-devel
836%defattr(644,root,root,755)
6df3b432 837%attr(755,root,root) %{_libdir}/liblld[ACDEHMPRXY]*.so
ba1cf74d
JB
838%{_includedir}/lld
839
5a7ac479
JB
840%if %{with lldb}
841%files -n lldb
842%defattr(644,root,root,755)
6df3b432 843%attr(755,root,root) %{_bindir}/argdumper
5a7ac479 844%attr(755,root,root) %{_bindir}/lldb
6df3b432 845%attr(755,root,root) %{_bindir}/lldb-%{version}
b883cf1e 846%attr(755,root,root) %{_bindir}/lldb-mi
6df3b432
JB
847%attr(755,root,root) %{_bindir}/lldb-mi-%{version}
848%attr(755,root,root) %{_bindir}/lldb-server
849%attr(755,root,root) %{_bindir}/lldb-server-%{version}
850%attr(755,root,root) %{_libdir}/liblldb.so.%{version}
851%attr(755,root,root) %ghost %{_libdir}/liblldb.so.3.7
b883cf1e 852%dir %{py_sitedir}/lldb
41876fe7 853%attr(755,root,root) %{py_sitedir}/lldb/argdumper
6df3b432
JB
854%{py_sitedir}/lldb/formatters
855%{py_sitedir}/lldb/runtime
856%{py_sitedir}/lldb/utils
857%{py_sitedir}/lldb/__init__.py[co]
858%{py_sitedir}/lldb/embedded_interpreter.py[co]
b883cf1e
JB
859%attr(755,root,root) %{py_sitedir}/lldb/_lldb.so
860%attr(755,root,root) %{py_sitedir}/readline.so
5a7ac479
JB
861
862%files -n lldb-devel
863%defattr(644,root,root,755)
6df3b432 864%attr(755,root,root) %{_libdir}/liblldb.so
5a7ac479
JB
865%{_libdir}/liblldb*.a
866%{_includedir}/lldb
867%endif
868
9556f4c9 869%if %{with ocaml}
d997b14b
AM
870%files ocaml
871%defattr(644,root,root,755)
11b6f380
JB
872%{_libdir}/ocaml/META.llvm*
873%attr(755,root,root) %{_libdir}/ocaml/dllllvm*.so
8132e62b
JB
874%{_libdir}/ocaml/llvm*.cma
875%{_libdir}/ocaml/llvm*.cmi
d997b14b
AM
876
877%files ocaml-devel
878%defattr(644,root,root,755)
8132e62b
JB
879%{_libdir}/ocaml/libllvm*.a
880%{_libdir}/ocaml/llvm*.a
881%{_libdir}/ocaml/llvm*.cmx*
9556f4c9
ER
882
883%files ocaml-doc
884%defattr(644,root,root,755)
6df3b432 885%doc ocamldocs/*
9556f4c9 886%endif
This page took 0.306252 seconds and 4 git commands to generate.