]> git.pld-linux.org Git - packages/llvm.git/blob - llvm.spec
- real shebangs; rel 1 for testing
[packages/llvm.git] / llvm.spec
1 # TODO
2 #warning: Installed (but unpackaged) file(s) found:
3 #   /usr/share/man/man1/lit.1.gz
4 #
5 # Conditional build:
6 %bcond_without  ocaml   # ocaml binding
7 %bcond_with             apidocs # The doxygen docs are HUGE, so they are not built by default.
8 %bcond_with             tests   # run tests
9
10 %ifarch s390 s390x sparc64
11 # No ocaml on these arches
12 %undefine       with_ocaml
13 %endif
14
15 Summary:        The Low Level Virtual Machine (An Optimizing Compiler Infrastructure)
16 Summary(pl.UTF-8):      Niskopoziomowa maszyna wirtualna (infrastruktura kompilatora optymalizującego)
17 Name:           llvm
18 Version:        2.8
19 Release:        1
20 License:        University of Illinois/NCSA Open Source License
21 Group:          Development/Languages
22 Source0:        http://llvm.org/releases/%{version}/%{name}-%{version}.tgz
23 # Source0-md5:  220d361b4d17051ff4bb21c64abe05ba
24 Source1:        http://llvm.org/releases/%{version}/clang-%{version}.tgz
25 # Source1-md5:  10e14c901fc3728eecbd5b829e011b59
26 # Data files should be installed with timestamps preserved
27 Patch3:         %{name}-2.6-timestamp.patch
28 URL:            http://llvm.org/
29 BuildRequires:  bash
30 BuildRequires:  bison
31 BuildRequires:  flex
32 %if %{with apidocs}
33 BuildRequires:  doxygen
34 BuildRequires:  graphviz
35 %endif
36 %if %{with tests}
37 BuildRequires:  dejagnu
38 BuildRequires:  python
39 BuildRequires:  tcl-devel
40 %endif
41 BuildRequires:  groff
42 BuildRequires:  libltdl-devel
43 BuildRequires:  libstdc++-devel >= 5:3.4
44 BuildRequires:  ocaml-ocamldoc
45 # gcc4 might be installed, but not current __cc
46 %if "%(echo %{cc_version} | cut -d. -f1,2)" < "3.4"
47 BuildRequires:  __cc >= 3.4
48 %endif
49 # LLVM is not supported on PPC64
50 # http://llvm.org/bugs/show_bug.cgi?id=3729
51 ExcludeArch:    ppc64
52 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
53
54 %define         _sysconfdir     /etc/%{name}
55
56 %define         specflags_ppc   -fno-var-tracking-assignments
57
58 # strip corrupts: $RPM_BUILD_ROOT/usr/lib64/llvm-gcc/bin/llvm-c++ ...
59 %define         _noautostrip    .*/\\(libmud.*\\.a\\|bin/llvm-.*\\|lib.*++\\.a\\)
60
61 %description
62 LLVM is a compiler infrastructure designed for compile-time,
63 link-time, runtime, and idle-time optimization of programs from
64 arbitrary programming languages. LLVM is written in C++ and has been
65 developed since 2000 at the University of Illinois and Apple. It
66 currently supports compilation of C and C++ programs, using front-ends
67 derived from GCC 4.0.1. A new front-end for the C family of languages
68 is in development. The compiler infrastructure includes mirror sets of
69 programming tools as well as libraries with equivalent functionality.
70
71 %description -l pl.UTF-8
72 LLVM to infrastruktura kompilatora zaprojektowana do optymalizacji
73 czasu kompilowania, linkowania, działania i bezczynności programów w
74 dowolnych językach programowania. Jest napisana w C++, rozwijana od
75 roku 2000 przez Uniwersytet w Illinois i Apple. Aktualnie obsługuje
76 kompilację programów w C i C++ przy użyciu frontendów wywodzących się
77 z GCC 4.0.1. W trakcie tworzenia jest nowy frontend do języków z
78 rodziny C. Infrastruktura kompilatora zawiera lustrzane zestawy
79 narzędzi programistycznych oraz biblioteki z odpowiadającą narzędziom
80 funkcjonalnością.
81
82 %package devel
83 Summary:        Libraries and header files for LLVM
84 Group:          Development/Languages
85 Requires:       %{name} = %{version}-%{release}
86 Requires:       libstdc++-devel >= 6:3.4
87
88 %description devel
89 This package contains library and header files needed to develop new
90 native programs that use the LLVM infrastructure.
91
92 %package doc
93 Summary:        Documentation for LLVM
94 Group:          Documentation
95 # does not require base
96
97 %description doc
98 Documentation for the LLVM compiler infrastructure.
99
100 %package apidocs
101 Summary:        API documentation for LLVM
102 Group:          Development/Languages
103 Requires:       %{name}-doc = %{version}-%{release}
104
105 %description apidocs
106 API documentation for the LLVM compiler infrastructure.
107
108 %package -n clang
109 Summary:        A C language family frontend for LLVM
110 License:        NCSA
111 Group:          Development/Languages
112
113 %description -n clang
114 clang: noun 1. A loud, resonant, metallic sound. 2. The strident call
115 of a crane or goose. 3. C-language family front-end toolkit.
116
117 The goal of the Clang project is to create a new C, C++, Objective C
118 and Objective C++ front-end for the LLVM compiler. Its tools are built
119 as libraries and designed to be loosely-coupled and extendable.
120
121 %package -n clang-analyzer
122 Summary:        A source code analysis framework
123 License:        NCSA
124 Group:          Development/Languages
125 Requires:       clang = %{version}-%{release}
126 # not picked up automatically since files are currently not instaled
127 # in standard Python hierarchies yet
128 Requires:       python
129
130 %description -n clang-analyzer
131 The Clang Static Analyzer consists of both a source code analysis
132 framework and a standalone tool that finds bugs in C and Objective-C
133 programs. The standalone tool is invoked from the command-line, and is
134 intended to run in tandem with a build of a project or code base.
135
136 %package -n clang-devel
137 Summary:        Header files for clang
138 Group:          Development/Languages
139 Requires:       clang = %{version}-%{release}
140
141 %description -n clang-devel
142 This package contains header files for the Clang compiler.
143
144 %package -n clang-doc
145 Summary:        Documentation for Clang
146 Group:          Documentation
147 Requires:       %{name} = %{version}-%{release}
148
149 %description -n clang-doc
150 Documentation for the Clang compiler front-end.
151
152 %package -n clang-apidocs
153 Summary:        API documentation for Clang
154 Group:          Development/Languages
155 Requires:       clang-doc = %{version}-%{release}
156
157 %description -n clang-apidocs
158 API documentation for the Clang compiler.
159
160 %package ocaml
161 Summary:        OCaml binding for LLVM
162 Group:          Development/Libraries
163 Requires:       %{name} = %{version}-%{release}
164 %requires_eq    ocaml-runtime
165
166 %description    ocaml
167 OCaml binding for LLVM.
168
169 %package ocaml-devel
170 Summary:        Development files for %{name}-ocaml
171 Group:          Development/Libraries
172 Requires:       %{name}-devel = %{version}-%{release}
173 Requires:       %{name}-ocaml = %{version}-%{release}
174
175 %description ocaml-devel
176 The llvm-ocaml-devel package contains libraries and signature files
177 for developing applications that use llvm-ocaml.
178
179 %package ocaml-doc
180 Summary:        Documentation for LLVM's OCaml binding
181 Group:          Documentation
182 Requires:       %{name}-ocaml = %{version}-%{release}
183
184 %description ocaml-doc
185 HTML documentation for LLVM's OCaml binding.
186
187 %prep
188 %setup -q -a1
189 mv clang-*.* tools/clang
190 %patch3 -p1
191
192 grep -rl /usr/bin/env tools utils | xargs sed -i -e '1{
193         s,^#!.*bin/env python,#!%{__python},
194         s,^#!.*bin/env perl,#!%{__perl},
195 }'
196
197 install -d obj
198
199 %build
200 # Disabling assertions now, rec. by pure and needed for OpenGTL
201 # TESTFIX no PIC on ix86: http://llvm.org/bugs/show_bug.cgi?id=3801
202 #
203 # bash specific 'test a < b'
204 cd obj
205 bash ../%configure \
206         --libdir=%{_libdir}/%{name} \
207         --datadir=%{_datadir}/%{name}-%{version} \
208 %ifarch %{ix86}
209         --enable-pic=no \
210 %endif
211 %if %{with apidocs}
212         --enable-doxygen \
213 %endif
214         --disable-static \
215         --disable-assertions \
216         --enable-debug-runtime \
217         --enable-jit \
218         --enable-optimized \
219         --enable-shared \
220         --with-pic
221
222 # FIXME file this
223 # configure does not properly specify libdir
224 sed -i 's|(PROJ_prefix)/lib|(PROJ_prefix)/%{_lib}/%{name}|g' Makefile.config
225
226 %{__make} \
227         OPTIMIZE_OPTION="%{rpmcflags} %{rpmcppflags}"
228
229 %if %{with test}
230 %{__make} check 2>&1 | tee llvm-testlog.txt
231 %{__make} -C tools/clang test 2>&1 | tee clang-testlog.txt
232 %endif
233
234 %install
235 rm -rf $RPM_BUILD_ROOT
236 %{__make} -C obj -j1 install \
237         PROJ_docsdir=/moredocs \
238         DESTDIR=$RPM_BUILD_ROOT
239
240 # Static analyzer not installed by default:
241 # http://clang-analyzer.llvm.org/installation#OtherPlatforms
242 install -d $RPM_BUILD_ROOT%{_libdir}/clang-analyzer
243 # create launchers
244 for f in scan-{build,view}; do
245         ln -s %{_libdir}/clang-analyzer/$f/$f $RPM_BUILD_ROOT%{_bindir}/$f
246         cp -pr tools/clang/tools/$f $RPM_BUILD_ROOT%{_libdir}/clang-analyzer
247 done
248
249 # Move documentation back to build directory
250 rm -rf moredocs
251 mv $RPM_BUILD_ROOT/moredocs .
252 rm -fv moredocs/*.tar.gz
253 rm -fv moredocs/ocamldoc/html/*.tar.gz
254
255 # and separate the apidoc
256 %if %{with apidocs}
257 rm -rf apidoc clang-apidoc
258 mv moredocs/html/doxygen apidoc
259 cp -a tools/clang/docs/doxygen/html clang-apidoc
260 %endif
261
262 # And prepare Clang documentation
263 rm -rf clang-docs
264 install -d clang-docs
265 for f in LICENSE.TXT NOTES.txt README.txt TODO.txt; do
266         ln tools/clang/$f clang-docs
267 done
268
269 # Get rid of erroneously installed example files.
270 rm -v $RPM_BUILD_ROOT%{_libdir}/%{name}/*LLVMHello.*
271
272 # FIXME file this bug
273 sed -i 's,ABS_RUN_DIR/lib",ABS_RUN_DIR/%{_lib}/%{name}",' \
274         $RPM_BUILD_ROOT%{_bindir}/llvm-config
275
276 # remove documentation makefiles:
277 # they require the build directory to work
278 rm -rf moredocs/examples
279 cp -a examples moredocs/examples
280 find moredocs/examples -name Makefile | xargs -0r rm -f
281
282 %clean
283 rm -rf $RPM_BUILD_ROOT
284
285 %post   -p /sbin/ldconfig
286 %postun -p /sbin/ldconfig
287
288 %files
289 %defattr(644,root,root,755)
290 %doc CREDITS.TXT LICENSE.TXT README.txt
291 %{?with_tests:%doc llvm-testlog.txt}
292 %attr(755,root,root) %{_bindir}/bugpoint
293 %attr(755,root,root) %{_bindir}/llc
294 %attr(755,root,root) %{_bindir}/lli
295 %attr(755,root,root) %{_bindir}/opt
296 %attr(755,root,root) %{_bindir}/llvmc
297 %attr(755,root,root) %{_bindir}/llvm-*
298 %exclude %attr(755,root,root) %{_bindir}/llvm-config
299 %{_mandir}/man1/bugpoint.1*
300 %{_mandir}/man1/llc.1*
301 %{_mandir}/man1/lli.1*
302 %{_mandir}/man1/llvmc.1*
303 %{_mandir}/man1/llvm-*.1*
304 %{_mandir}/man1/llvmgcc.1*
305 %{_mandir}/man1/llvmgxx.1*
306 %{_mandir}/man1/opt.1*
307 #%{_mandir}/man1/stkrc.1*
308 %{_mandir}/man1/tblgen.1*
309
310 %files devel
311 %defattr(644,root,root,755)
312 %attr(755,root,root) %{_bindir}/llvm-config
313 %{_includedir}/llvm
314 %{_includedir}/llvm-c
315 %{_libdir}/%{name}
316
317 %files doc
318 %defattr(644,root,root,755)
319 %doc moredocs/examples moredocs/html
320
321 %if %{with apidocs}
322 %files apidocs
323 %defattr(644,root,root,755)
324 %doc apidoc/*
325 %endif
326
327 %files -n clang
328 %defattr(644,root,root,755)
329 %doc clang-docs/*
330 %{?with_tests:%doc clang-testlog.txt}
331 %attr(755,root,root) %{_bindir}/clang*
332 %attr(755,root,root) %{_bindir}/tblgen
333 %attr(755,root,root) %{_bindir}/c-index-test
334 %{_prefix}/lib/clang
335 %{_mandir}/man1/clang.1.*
336
337 %files -n clang-analyzer
338 %defattr(644,root,root,755)
339 %attr(755,root,root) %{_bindir}/scan-build
340 %attr(755,root,root) %{_bindir}/scan-view
341 %dir %{_libdir}/clang-analyzer
342
343 %dir %{_libdir}/clang-analyzer/scan-view
344 %attr(755,root,root) %{_libdir}/clang-analyzer/scan-view/scan-view
345 %{_libdir}/clang-analyzer/scan-view/Resources
346 %{_libdir}/clang-analyzer/scan-view/*.py
347
348 %dir %{_libdir}/clang-analyzer/scan-build
349 %{_libdir}/clang-analyzer/scan-build/*.css
350 %{_libdir}/clang-analyzer/scan-build/*.js
351 %attr(755,root,root) %{_libdir}/clang-analyzer/scan-build/scan-build
352 %attr(755,root,root) %{_libdir}/clang-analyzer/scan-build/*-analyzer
353
354 %files -n clang-devel
355 %defattr(644,root,root,755)
356 %{_includedir}/clang
357 %{_includedir}/clang-c
358
359 %files -n clang-doc
360 %defattr(644,root,root,755)
361 %doc tools/clang/docs/*
362
363 %if %{with apidocs}
364 %files -n clang-apidocs
365 %defattr(644,root,root,755)
366 %doc clang-apidoc/*
367 %endif
368
369 %if %{with ocaml}
370 %files ocaml
371 %defattr(644,root,root,755)
372 %{_libdir}/ocaml/*.cma
373 %{_libdir}/ocaml/*.cmi
374
375 %files ocaml-devel
376 %defattr(644,root,root,755)
377 %{_libdir}/ocaml/*.a
378 %{_libdir}/ocaml/*.cmx*
379 %{_libdir}/ocaml/*.mli
380
381 %files ocaml-doc
382 %defattr(644,root,root,755)
383 %doc moredocs/ocamldoc/html/*
384 %endif
This page took 0.143236 seconds and 3 git commands to generate.