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