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