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