]> git.pld-linux.org Git - packages/ocaml.git/blob - ocaml.spec
- relese 3 for Th (2 for Ac, 1 tagged accidental with auto-th-*).
[packages/ocaml.git] / ocaml.spec
1 #
2 # Conditional build:
3 %bcond_without  emacs   # without emacs subpackage
4 %bcond_without  x       # without X11 support 
5 %bcond_without  tk      # without Tcl/Tk support
6 %bcond_with     db3     # use db3 instead of db 4.x
7 #
8 # --without x11 implies --without tk
9 %{!?with_x:%undefine    with_tk}
10
11 %define         p4ver   3.06
12 %define         sver    3.08
13
14 Summary:        The Objective Caml compiler and programming environment
15 Summary(pl):    Kompilator OCamla (Objective Caml) oraz ¶rodowisko programistyczne
16 Name:           ocaml
17 Version:        3.08.3
18 Release:        3
19 Epoch:          1
20 License:        distributable
21 Vendor:         Group of implementors <caml-light@inria.fr>
22 Group:          Development/Languages
23 Source0:        http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{version}.tar.gz
24 # Source0-md5:  b1fc455aca6980e02e8cce8a3cbb4c81
25 Source1:        http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman.html.tar.gz
26 # Source1-md5:  0daee5643db6960682c1a7d84467885f
27 Source2:        http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman.ps.gz
28 # Source2-md5:  35a5d4318456c0982e72ee3f33364bf5
29 Source3:        ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-manual.html.tar.gz
30 # Source3-md5:  21370bae4e7f6435b38aeb21db7ce8bb
31 Source4:        ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-manual.dvi.gz
32 # Source4-md5:  035915d1a530aa7ec9b194d9a7d258eb
33 Source5:        ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-tutorial.html.tar.gz
34 # Source5-md5:  96d8eb4ca5abd58c9a280ba59f73b192
35 Source6:        ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-tutorial.dvi.gz
36 # Source6-md5:  fcd87c235109364242a0c9ccf176dff8
37 Source7:        http://www.oefai.at/~markus/ocaml_sources/pure-fun-1.0.4.tar.bz2
38 # Source7-md5:  567bc681b4cc1cfcbbfb6fa5f012019b
39 Source8:        http://www.oefai.at/~markus/ocaml_sources/ds-contrib.tar.gz
40 # Source8-md5:  77fa1da7375dea1393cc0b6cd802d7e1
41 Patch0:         %{name}-build.patch
42 Patch1:         %{name}-db3.patch
43 Patch2:         %{name}-objinfo.patch
44 # needs update for ocaml 3.08
45 #Patch3:                %{name}-unused-var-warning.patch
46 URL:            http://caml.inria.fr/
47 %{?with_x:BuildRequires:        XFree86-devel}
48 %{?with_db3:BuildRequires:      db3-devel}
49 %{!?with_db3:BuildRequires:     db-devel >= 4.1}
50 %{?with_tk:BuildRequires:       tk-devel}
51 %if %{with emacs}
52 BuildRequires:  xemacs
53 BuildRequires:  xemacs-common
54 BuildRequires:  xemacs-fsf-compat-pkg
55 %endif
56 Requires:       %{name}-runtime = %{epoch}:%{version}-%{release}
57 Provides:       ocaml-ocamldoc
58 Obsoletes:      ocaml-ocamldoc
59 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
60
61 %description
62 Objective Caml is a high-level, strongly-typed, functional and
63 object-oriented programming language from the ML family of languages.
64
65 This package comprises two batch compilers (a fast bytecode compiler
66 and an optimizing native-code compiler), an interactive toplevel
67 system, Lex&Yacc tools, a replay debugger, and a comprehensive
68 library.
69
70 %description -l pl
71 OCaml (Objective Caml) jest funkcyjnym, obiektowo zorientowanym jêzykiem
72 wysokiego poziomu z silnym typowaniem. Nale¿y do rodziny jêzyków ML.
73
74 Ten pakiet zawiera dwa kompilatory (szybki kompilator do bajtkodu
75 oraz optymalizuj±cy kompilator do kodu natywnego), interaktywne ¶rodowisko
76 pracy, narzêdzia do tworzenia analizatorów leksykalnych oraz sk³adniowych
77 (ocamllex, ocamlyacc), odpluskwiacz (ocamldebug) i biblioteki.
78
79 %package doc-ps
80 Summary:        PostScript documentation for OCaml
81 Summary(pl):    Dokumentacja dla OCamla w formacie PostScript
82 Group:          Development/Tools
83
84 %description doc-ps
85 PostScript documentation for OCaml. HTML documentation is in main package.
86
87 %description doc-ps -l pl
88 Dokumentacja dla OCamla w formacie PostScript. Dokumentacja HTML jest
89 w g³ównym pakiecie.
90
91 %package emacs
92 Summary:        Emacs mode for OCaml
93 Summary(pl):    Tryb OCamla dla Emacsa
94 Group:          Development/Tools
95 Requires:       %{name} = %{epoch}:%{version}-%{release}
96
97 %description emacs
98 Emacs mode files for Objective Caml language.
99
100 %description emacs -l pl
101 Pliki trybu OCamla dla Emacsa.
102
103 %package runtime
104 Summary:        Runtime system for OCaml
105 Summary(pl):    ¦rodowisko uruchomieniowe dla OCamla
106 Group:          Libraries
107
108 %description runtime
109 This package contains binaries needed to run bytecode OCaml programs:
110 ocamlrun bytecode interpreter, and basic dynamic link libraries.
111
112 %description runtime -l pl
113 Pakiet ten zawiera binaria potrzebne do uruchamiania programów w
114 OCamlu skompilowanych do bajtkodu: interpreter bajtkodu (ocamlrun) oraz
115 podstawowe biblioteki linkowane dynamicznie.
116
117 %package labltk-devel
118 Summary:        LablTk library for OCaml
119 Summary(pl):    Biblioteka LablTk dla OCamla
120 Group:          Development/Libraries
121 Requires:       %{name}-labltk = %{epoch}:%{version}-%{release}
122
123 %description labltk-devel
124 LablTk gives OCaml program access to Tcl/Tk GUI widgets. This package
125 contains files needed to develop OCaml programs using LablTk.
126
127 %description labltk-devel -l pl
128 Biblioteka LablTk daje programom napisanym w OCamlu dostêp do widgetów
129 Tcl/Tk. Pakiet ten zawiera pliki niezbêdne do tworzenia programów
130 u¿ywaj±cych LablTk.
131
132 %package labltk
133 Summary:        Runtime for LablTk library
134 Summary(pl):    ¦rodowisko uruchomieniowe dla biblioteki LablTk
135 Group:          Libraries
136 Requires:       %{name} = %{epoch}:%{version}-%{release}
137
138 %description labltk
139 LablTk gives OCaml program access to Tcl/Tk GUI widgets. This package
140 contains files needed to run bytecode OCaml programs using LablTk.
141
142 %description labltk -l pl
143 Biblioteka LablTk daje programom napisanym w OCamlu dostêp do widgetów
144 Tcl/Tk. Pakiet ten zawiera binaria potrzebne do uruchamiania programów
145 u¿ywaj±cych LablTk.
146
147 %package x11graphics-devel
148 Summary:        X11 graphic output for OCaml
149 Summary(pl):    Dostêp do X11 dla OCamla
150 Group:          Development/Libraries
151 Requires:       %{name}-x11graphics = %{epoch}:%{version}-%{release}
152
153 %description x11graphics-devel
154 x11graphics module gives OCaml program access to drawing in X11
155 windows. This package contains files needed to develop OCaml programs
156 using x11graphics.
157
158 %description x11graphics-devel -l pl
159 Modu³ x11graphics daje programom napisanym w OCamlu mo¿liwo¶æ
160 korzystania z interfejsu graficznego X11. Pakiet ten zawiera pliki
161 niezbêdne do tworzenia programów u¿ywaj±cych x11graphics.
162
163 %package x11graphics
164 Summary:        X11 graphic output for OCaml
165 Summary(pl):    Dostêp do X11 dla OCamla
166 Group:          Development/Libraries
167 Requires:       %{name} = %{epoch}:%{version}-%{release}
168
169 %description x11graphics
170 x11graphics module gives OCaml program access to drawing in X11
171 windows. This package contains files needed to run bytecode OCaml
172 programs using x11graphics.
173
174 %description x11graphics -l pl
175 Modu³ x11graphics daje programom napisanym w OCamlu mo¿liwo¶æ
176 korzystania z interfejsu graficznego X11. Pakiet ten zawiera binaria
177 potrzebne do uruchamiania programów u¿ywaj±cych x11graphics.
178
179 %package camlp4
180 Summary:        Objective Caml Preprocessor
181 Summary(pl):    Preprocesor OCamla
182 Group:          Development/Languages
183 Requires:       %{name} = %{epoch}:%{version}-%{release}
184 Provides:       camlp4 = %{epoch}:%{version}-%{release}
185 Obsoletes:      camlp4
186
187 %description camlp4
188 Camlp4 is a Pre-Processor-Pretty-Printer for Objective Caml. It offers
189 tools for syntax (grammars) and the ability to modify the concrete
190 syntax of the language (quotations, syntax extensions).
191
192 Camlp4 can parse normal Ocaml concrete syntax or any other
193 user-definable syntax. As an example, an alternative syntax is
194 provided, named revised, because it tries to fix some small problems
195 of the normal syntax.
196
197 Camlp4 can pretty print the normal Ocaml concrete syntax or the
198 revised one. It is therefore always possible to have a version of your
199 sources compilable by the Objective Caml compiler without
200 preprocessing.
201
202 %description camlp4 -l pl
203 Camlp4 jest preprocesorem OCamla. Oferuje narzêdzia do manipulowania
204 sk³adni± (gramatyki) oraz mo¿liwo¶æ modyfikowania oryginalnej sk³adni
205 jêzyka (cytowania, rozszerzenia).
206
207 Camlp4 mo¿e sparsowaæ oryginaln± sk³adniê Ocamla lub dowoln± inn±
208 definiowaln± przez u¿ytkownika. Jako przyk³ad podana jest alternatywna
209 sk³adnia (revised syntax), która próbuje poprawiæ drobne problemy
210 wystêpuj±ce w sk³adni oryginalnej.
211
212 Camlp4 umie ³adnie formatowaæ ¼ród³a zarówno w oryginalnej jak i
213 poprawionej sk³adni OCamla. Potrafi tak¿e t³umaczyæ programy z jednej
214 sk³adni na drug±.
215
216 %package compiler-objects
217 Summary:        Compiled parts of OCaml compiler
218 Summary(pl):    Skompilowane czê¶ci kompilatora OCamla
219 Group:          Development/Languages
220 Requires:       %{name} = %{epoch}:%{version}-%{release}
221 Obsoletes:      ocaml-devel
222 Provides:       ocaml-devel
223
224 %description compiler-objects
225 This package contains *.cmi and *.cmo files being parts of OCaml
226 compiler. They are needed to compile some programs.
227
228 %description compiler-objects -l pl
229 Pakiet ten zawiera pliki *.cmi oraz *.cmo bêd±ce czê¶ciami kompilatora
230 OCamla. S± one wymagane do kompilacji niektórych programów.
231
232 %package ocamldoc-devel
233 Summary:        Files needed to develop programs using ocamldoc
234 Summary(pl):    Pliki potrzebne do tworzenia programów u¿ywaj±cych ocamldoc
235 Group:          Development/Languages
236 Requires:       %{name} = %{epoch}:%{version}-%{release}
237
238 %description ocamldoc-devel
239 You need this package if you are going to write ocamldoc front end or
240 something like that.
241
242 %description ocamldoc-devel -l pl
243 Bêdziesz potrzebowaæ tego pakietu, je¶li zamierzasz pisaæ front end
244 dla ocamldoc lub co¶ podobnego.
245
246 %package lib-source
247 Summary:        Sources of OCaml standard library
248 Summary(pl):    ¬ród³a biblioteki standardowej OCamla
249 Group:          Development/Languages
250 Requires:       %{name} = %{epoch}:%{version}-%{release}
251
252 %description lib-source
253 This sources come helpful during debugging of user programs with ocamldebug.
254
255 %description lib-source -l pl
256 ¬ród³a te s± przydatne przy odpluskwianiu programów u¿ytkownika
257 z u¿yciem ocamldebug.
258
259 # maybe we'll want to add some more stuff here?
260 %package examples
261 Summary:        Example source code for OCaml
262 Summary(pl):    Przyk³adowe kody ¼ród³owe w OCamlu
263 Group:          Development/Languages
264 Requires:       %{name} = %{epoch}:%{version}-%{release}
265
266 %description examples
267 This packages contains sources for Okasaki's Purely Functional
268 Datastructures in OCaml, along with some contributions.
269
270 %description examples -l pl
271 Pakiet ten zawiera ¼ród³a Czysto Funkcyjnych Struktur Danych
272 autorstwa Okasaki'ego, napisane w OCamlu, wraz z dodatkami.
273
274 %prep
275 %setup -q -a1 -a3 -a5  
276 mkdir examples
277 tar xjf %{SOURCE7} -C examples
278 tar xzf %{SOURCE8} -C examples
279 # order mess with docs somewhat
280 mkdir docs
281 mkdir docs/html
282 mv htmlman docs/html/ocaml
283 cp %{SOURCE2} docs/ocaml.ps.gz
284 mv camlp4-%{p4ver}-manual.html docs/html/camlp4
285 cp %{SOURCE4} docs/camlp4.ps.gz
286 mv camlp4-%{p4ver}-tutorial.html docs/html/camlp4-tutorial
287 cp %{SOURCE6} docs/camlp4-tutorial.ps.gz
288 %patch0 -p1
289 %patch1 -p1
290 %patch2 -p1
291 #%patch3 -p1
292
293 %build
294 cp -f /usr/share/automake/config.sub config/gnu
295 ./configure \
296         -cc "%{__cc} %{rpmcflags}" \
297         -bindir %{_bindir} \
298         -libdir %{_libdir}/%{name} \
299         -mandir %{_mandir}/man1 \
300         -host %{_host} \
301         %{!?with_tk:-no-tk} \
302         -with-pthread \
303         -x11lib /usr/X11R6/%{_lib}
304
305 %{__make} world bootstrap opt.opt
306 %{__make} -C tools objinfo
307
308 %install
309 rm -rf $RPM_BUILD_ROOT
310 install -d $RPM_BUILD_ROOT{%{_includedir},%{_examplesdir}/%{name}-{labltk-,}%{version}}
311
312 %{__make} install \
313         BINDIR=$RPM_BUILD_ROOT%{_bindir} \
314         LIBDIR=$RPM_BUILD_ROOT%{_libdir}/%{name} \
315         MANDIR=$RPM_BUILD_ROOT%{_mandir}
316
317 cat > $RPM_BUILD_ROOT%{_libdir}/%{name}/ld.conf <<EOF
318 %{_libdir}/%{name}/stublibs
319 %{_libdir}/%{name}
320 EOF
321
322 %if %{with emacs}
323 %{__make} -C emacs DESTDIR=$RPM_BUILD_ROOT install \
324         EMACS="`if [ -x %{_bindir}/emacs ]; then echo emacs; \
325                 else echo xemacs; fi`" \
326         EMACSDIR="$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp"
327 %endif
328
329 # symlink .opt versions of compilers (if present)
330 # warning: don't do that with camlp4 (can't load extensions then)
331 for f in ocamlc ocamlopt ocamldoc ocamllex; do
332         if test -f $RPM_BUILD_ROOT%{_bindir}/$f.opt; then
333                 mv -f $RPM_BUILD_ROOT%{_bindir}/$f \
334                         $RPM_BUILD_ROOT%{_bindir}/$f.byte
335                 ln -sf %{_bindir}/$f.opt $RPM_BUILD_ROOT%{_bindir}/$f
336         fi
337 done
338
339 # move includes to the proper place
340 mv -f $RPM_BUILD_ROOT%{_libdir}/%{name}/caml $RPM_BUILD_ROOT%{_includedir}/caml
341 # but leave compatibility symlink
342 ln -s ../../include/caml $RPM_BUILD_ROOT%{_libdir}/%{name}/caml
343
344 # compiled sources of compiler, needed by some programs
345 for f in {asm,byte}comp parsing typing utils ; do
346         install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
347         cp $f/*.{cmi,cmo,cmx,o} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
348 done
349
350 # this isn't installed by default, but is useful
351 install tools/objinfo $RPM_BUILD_ROOT%{_bindir}/ocamlobjinfo
352 cp -r examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
353 cp -r otherlibs/labltk/examples* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-labltk-%{version}
354 ln -sf %{_libdir}/%{name}/{scrape,add}labels $RPM_BUILD_ROOT%{_bindir}
355
356 # shutup checkfiles
357 rm -rf $RPM_BUILD_ROOT%{_mandir}/man3
358 rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/labltk/{labltktop,pp}
359
360 %clean
361 rm -rf $RPM_BUILD_ROOT
362
363 %files runtime
364 %defattr(644,root,root,755)
365 %attr(755,root,root) %{_bindir}/ocamlrun
366 %dir %{_libdir}/%{name}
367 %dir %{_libdir}/%{name}/stublibs
368 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dll*.so
369 %exclude %{_libdir}/%{name}/stublibs/dllgraphics.so
370 %if %{with tk}
371 %exclude %{_libdir}/%{name}/stublibs/dlllabltk.so
372 %exclude %{_libdir}/%{name}/stublibs/dlltkanim.so
373 %endif
374
375 %files
376 %defattr(644,root,root,755)
377 %doc LICENSE Changes README Upgrading
378 %doc docs/html/ocaml
379 %attr(755,root,root) %{_bindir}/ocaml*
380 %{!?_without_tk:%exclude %{_bindir}/ocamlbrowser}
381 %exclude %{_bindir}/ocamlrun
382 %attr(755,root,root) %{_bindir}/*labels
383 %{_includedir}/caml
384 %{_libdir}/%{name}/caml
385 %{_libdir}/%{name}/threads
386 %dir %{_libdir}/%{name}/vmthreads
387 %dir %{_libdir}/%{name}/vmthreads/*.cm*
388 %dir %{_libdir}/%{name}/vmthreads/*.a
389 %{_libdir}/%{name}/*.a
390 %{_libdir}/%{name}/*.o
391 %{_libdir}/%{name}/*.cm*
392 %exclude %{_libdir}/%{name}/*graphics*
393 %{_libdir}/%{name}/ld.conf
394 %{_libdir}/%{name}/camlheader
395 %{_libdir}/%{name}/camlheader_ur
396 %dir %{_libdir}/%{name}/ocamldoc
397 %{_libdir}/%{name}/ocamldoc/*.hva
398 %attr(755,root,root) %{_libdir}/%{name}/expunge
399 %attr(755,root,root) %{_libdir}/%{name}/extract_crc
400 %attr(755,root,root) %{_libdir}/%{name}/*labels
401 %{_mandir}/man1/*ocaml*
402
403 %files lib-source
404 %defattr(644,root,root,755)
405 %{_libdir}/%{name}/*.ml
406 %{_libdir}/%{name}/*.mli
407 %{_libdir}/%{name}/*/*.mli
408
409 %files examples
410 %defattr(644,root,root,755)
411 %{_examplesdir}/%{name}-%{version}
412
413 # they are poor, html is much better
414 #%files manpages
415 #%%{_mandir}/man3/*
416
417 %files compiler-objects
418 %defattr(644,root,root,755)
419 %{_libdir}/%{name}/compiler
420
421 %files camlp4
422 %defattr(644,root,root,755)
423 %doc docs/html/camlp4*
424 %attr(755,root,root) %{_bindir}/*camlp4*
425 %attr(755,root,root) %{_bindir}/ocpp
426 # Not installed since 3.05, is is needed?
427 #%attr(755,root,root) %{_bindir}/odyl
428 %{_libdir}/%{name}/camlp4
429 %{_mandir}/man*/*camlp4*
430 %{_mandir}/man*/*ocpp*
431
432 %if %{with tk}
433 %files labltk-devel
434 %defattr(644,root,root,755)
435 %attr(755,root,root) %{_bindir}/labltk
436 %attr(755,root,root) %{_bindir}/ocamlbrowser
437 %dir %{_libdir}/%{name}/labltk
438 %{_libdir}/%{name}/labltk/*.cm*
439 %{_libdir}/%{name}/labltk/*.a
440 %attr(755,root,root) %{_libdir}/%{name}/labltk/tkcompiler
441 %{_examplesdir}/%{name}-labltk-%{version}
442
443 %files labltk
444 %defattr(644,root,root,755)
445 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dlllabltk.so
446 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dlltkanim.so
447 %endif
448
449 %if %{with x}
450 %files x11graphics-devel
451 %defattr(644,root,root,755)
452 %{_libdir}/%{name}/graphics*.cm*
453 %{_libdir}/%{name}/graphics.a
454 %{_libdir}/%{name}/libgraphics.a
455
456 %files x11graphics
457 %defattr(644,root,root,755)
458 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dllgraphics.so
459 %endif
460
461 %if %{with emacs}
462 %files emacs
463 %defattr(644,root,root,755)
464 %{_datadir}/emacs/site-lisp/*.el*
465 %endif
466
467 %files ocamldoc-devel
468 %defattr(644,root,root,755)
469 %{_libdir}/%{name}/ocamldoc/*.cm*
470 %{_libdir}/%{name}/ocamldoc/*.a
471
472 %files doc-ps
473 %defattr(644,root,root,755)
474 %doc docs/*.ps.gz
This page took 0.101028 seconds and 3 git commands to generate.