3 %bcond_without emacs # without emacs subpackage
4 %bcond_without x # without X11 support
5 %bcond_without tk # without Tcl/Tk support
7 # --without x11 implies --without tk
8 %{!?with_x:%undefine with_tk}
13 Summary: The Objective Caml compiler and programming environment
14 Summary(pl.UTF-8): Kompilator OCamla (Objective Caml) oraz środowisko programistyczne
19 License: distributable
20 Group: Development/Languages
21 Source0: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{version}.tar.bz2
22 # Source0-md5: 227a3daaedb150bf5037a3db01f5bf42
23 Source1: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman.html.tar.gz
24 # Source1-md5: 93cd91f525441eb7e94cc49b9b64bab0
25 Source2: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman.ps.gz
26 # Source2-md5: a9c17db6ffd400c5ea00c6d51cbf56bf
27 Source3: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman.info.tar.gz
28 # Source3-md5: 8cf24c4f69c6f9c9f9cc1edb9b18f6cb
29 Source4: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-manual.html.tar.gz
30 # Source4-md5: 21370bae4e7f6435b38aeb21db7ce8bb
31 Source5: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-manual.dvi.gz
32 # Source5-md5: 035915d1a530aa7ec9b194d9a7d258eb
33 Source6: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-tutorial.html.tar.gz
34 # Source6-md5: 96d8eb4ca5abd58c9a280ba59f73b192
35 Source7: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-tutorial.dvi.gz
36 # Source7-md5: fcd87c235109364242a0c9ccf176dff8
37 Source8: http://www.ocaml.info/ocaml_sources/pure-fun-1.0.6.tar.bz2
38 # Source8-md5: 94eac3fa1ac51b8ada344b04839cb43c
39 Source9: http://www.ocaml.info/ocaml_sources/ds-contrib.tar.gz
40 # Source9-md5: 77fa1da7375dea1393cc0b6cd802d7e1
41 Patch0: %{name}-db3.patch
42 Patch1: %{name}-CFLAGS.patch
43 Patch2: %{name}-as_needed.patch
44 Patch3: %{name}-gas.patch
45 URL: http://caml.inria.fr/
46 BuildRequires: db-devel >= 4.1
47 %{?with_tk:BuildRequires: tk-devel}
48 %{?with_x:BuildRequires: xorg-lib-libX11-devel}
50 BuildRequires: sed >= 4.0
52 BuildRequires: emacs-common
54 Requires: %{name}-runtime = %{epoch}:%{version}-%{release}
55 Provides: ocaml-ocamldoc
56 Obsoletes: ocaml-ocamldoc
57 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
59 %define specflags -fno-strict-aliasing
62 Objective Caml is a high-level, strongly-typed, functional and
63 object-oriented programming language from the ML family of languages.
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
70 %description -l pl.UTF-8
71 OCaml (Objective Caml) jest funkcyjnym, obiektowo zorientowanym językiem
72 wysokiego poziomu z silnym typowaniem. Należy do rodziny języków ML.
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.
80 Summary: Runtime system for OCaml
81 Summary(pl.UTF-8): Środowisko uruchomieniowe dla OCamla
85 This package contains binaries needed to run bytecode OCaml programs:
86 ocamlrun bytecode interpreter, and basic dynamic link libraries.
88 %description runtime -l pl.UTF-8
89 Pakiet ten zawiera binaria potrzebne do uruchamiania programów w
90 OCamlu skompilowanych do bajtkodu: interpreter bajtkodu (ocamlrun) oraz
91 podstawowe biblioteki linkowane dynamicznie.
94 Summary: Sources of OCaml standard library
95 Summary(pl.UTF-8): Źródła biblioteki standardowej OCamla
96 Group: Development/Languages
97 Requires: %{name} = %{epoch}:%{version}-%{release}
99 %description lib-source
100 This sources come helpful during debugging of user programs with ocamldebug.
102 %description lib-source -l pl.UTF-8
103 Źródła te są przydatne przy odpluskwianiu programów użytkownika
104 z użyciem ocamldebug.
107 Summary: HTML documentation for OCaml
108 Summary(pl.UTF-8): Dokumentacja dla OCamla w formacie HTML
109 Group: Development/Tools
111 %description doc-html
112 HTML documentation for OCaml.
114 %description doc-html -l pl.UTF-8
115 Dokumentacja dla OCamla w formacie HTML.
118 Summary: PostScript documentation for OCaml
119 Summary(pl.UTF-8): Dokumentacja dla OCamla w formacie PostScript
120 Group: Development/Tools
123 PostScript documentation for OCaml.
125 %description doc-ps -l pl.UTF-8
126 Dokumentacja dla OCamla w formacie PostScript.
129 Summary: Info documentation for OCaml
130 Summary(pl.UTF-8): Dokumentacja info dla OCamla
131 Group: Development/Tools
133 %description doc-info
134 Info documentation for OCaml.
136 %description doc-info -l pl.UTF-8
137 Dokumentacja info dla OCamla.
140 Summary: Emacs mode for OCaml
141 Summary(pl.UTF-8): Tryb OCamla dla Emacsa
142 Group: Development/Tools
143 Requires: %{name} = %{epoch}:%{version}-%{release}
146 Emacs mode files for Objective Caml language.
148 %description emacs -l pl.UTF-8
149 Pliki trybu OCamla dla Emacsa.
152 Summary: Runtime for LablTk library
153 Summary(pl.UTF-8): Środowisko uruchomieniowe dla biblioteki LablTk
155 Requires: %{name} = %{epoch}:%{version}-%{release}
158 LablTk gives OCaml program access to Tcl/Tk GUI widgets. This package
159 contains files needed to run bytecode OCaml programs using LablTk.
161 %description labltk -l pl.UTF-8
162 Biblioteka LablTk daje programom napisanym w OCamlu dostęp do widgetów
163 Tcl/Tk. Pakiet ten zawiera binaria potrzebne do uruchamiania programów
166 %package labltk-devel
167 Summary: LablTk library for OCaml
168 Summary(pl.UTF-8): Biblioteka LablTk dla OCamla
169 Group: Development/Libraries
170 Requires: %{name}-labltk = %{epoch}:%{version}-%{release}
172 %description labltk-devel
173 LablTk gives OCaml program access to Tcl/Tk GUI widgets. This package
174 contains files needed to develop OCaml programs using LablTk.
176 %description labltk-devel -l pl.UTF-8
177 Biblioteka LablTk daje programom napisanym w OCamlu dostęp do widgetów
178 Tcl/Tk. Pakiet ten zawiera pliki niezbędne do tworzenia programów
182 Summary: X11 graphic output for OCaml
183 Summary(pl.UTF-8): Dostęp do X11 dla OCamla
184 Group: Development/Libraries
185 Requires: %{name} = %{epoch}:%{version}-%{release}
187 %description x11graphics
188 x11graphics module gives OCaml program access to drawing in X11
189 windows. This package contains files needed to run bytecode OCaml
190 programs using x11graphics.
192 %description x11graphics -l pl.UTF-8
193 Moduł x11graphics daje programom napisanym w OCamlu możliwość
194 korzystania z interfejsu graficznego X11. Pakiet ten zawiera binaria
195 potrzebne do uruchamiania programów używających x11graphics.
197 %package x11graphics-devel
198 Summary: X11 graphic output for OCaml
199 Summary(pl.UTF-8): Dostęp do X11 dla OCamla
200 Group: Development/Libraries
201 Requires: %{name}-x11graphics = %{epoch}:%{version}-%{release}
203 %description x11graphics-devel
204 x11graphics module gives OCaml program access to drawing in X11
205 windows. This package contains files needed to develop OCaml programs
208 %description x11graphics-devel -l pl.UTF-8
209 Moduł x11graphics daje programom napisanym w OCamlu możliwość
210 korzystania z interfejsu graficznego X11. Pakiet ten zawiera pliki
211 niezbędne do tworzenia programów używających x11graphics.
214 Summary: Objective Caml Preprocessor
215 Summary(pl.UTF-8): Preprocesor OCamla
216 Group: Development/Languages
217 Requires: %{name} = %{epoch}:%{version}-%{release}
218 Provides: camlp4 = %{epoch}:%{version}-%{release}
222 Camlp4 is a Pre-Processor-Pretty-Printer for Objective Caml. It offers
223 tools for syntax (grammars) and the ability to modify the concrete
224 syntax of the language (quotations, syntax extensions).
226 Camlp4 can parse normal Ocaml concrete syntax or any other
227 user-definable syntax. As an example, an alternative syntax is
228 provided, named revised, because it tries to fix some small problems
229 of the normal syntax.
231 Camlp4 can pretty print the normal Ocaml concrete syntax or the
232 revised one. It is therefore always possible to have a version of your
233 sources compilable by the Objective Caml compiler without
236 %description camlp4 -l pl.UTF-8
237 Camlp4 jest preprocesorem OCamla. Oferuje narzędzia do manipulowania
238 składnią (gramatyki) oraz możliwość modyfikowania oryginalnej składni
239 języka (cytowania, rozszerzenia).
241 Camlp4 może sparsować oryginalną składnię Ocamla lub dowolną inną
242 definiowalną przez użytkownika. Jako przykład podana jest alternatywna
243 składnia (revised syntax), która próbuje poprawić drobne problemy
244 występujące w składni oryginalnej.
246 Camlp4 umie ładnie formatować źródła zarówno w oryginalnej jak i
247 poprawionej składni OCamla. Potrafi także tłumaczyć programy z jednej
250 %package camlp4-doc-html
251 Summary: Objective Caml Preprocessor - HTML documentation
252 Summary(pl.UTF-8): Preprocesor OCamla - dokumentacja HTML
253 Group: Development/Languages
255 %description camlp4-doc-html
256 Objective Caml Preprocessor - HTML documentation.
258 %description camlp4-doc-html -l pl.UTF-8
259 Preprocesor OCamla - dokumentacja HTML.
261 %package compiler-objects
262 Summary: Compiled parts of OCaml compiler
263 Summary(pl.UTF-8): Skompilowane części kompilatora OCamla
264 Group: Development/Languages
265 Requires: %{name} = %{epoch}:%{version}-%{release}
266 Obsoletes: ocaml-devel
267 Provides: ocaml-devel
269 %description compiler-objects
270 This package contains *.cmi and *.cmo files being parts of OCaml
271 compiler. They are needed to compile some programs.
273 %description compiler-objects -l pl.UTF-8
274 Pakiet ten zawiera pliki *.cmi oraz *.cmo będące częściami kompilatora
275 OCamla. Są one wymagane do kompilacji niektórych programów.
277 %package ocamldoc-devel
278 Summary: Files needed to develop programs using ocamldoc
279 Summary(pl.UTF-8): Pliki potrzebne do tworzenia programów używających ocamldoc
280 Group: Development/Languages
281 Requires: %{name} = %{epoch}:%{version}-%{release}
283 %description ocamldoc-devel
284 You need this package if you are going to write ocamldoc front end or
287 %description ocamldoc-devel -l pl.UTF-8
288 Będziesz potrzebować tego pakietu, jeśli zamierzasz pisać front end
289 dla ocamldoc lub coś podobnego.
291 # maybe we'll want to add some more stuff here?
293 Summary: Example source code for OCaml
294 Summary(pl.UTF-8): Przykładowe kody źródłowe w OCamlu
295 Group: Development/Languages
296 Requires: %{name} = %{epoch}:%{version}-%{release}
298 %description examples
299 This packages contains sources for Okasaki's Purely Functional
300 Datastructures in OCaml, along with some contributions.
302 %description examples -l pl.UTF-8
303 Pakiet ten zawiera źródła Czysto Funkcyjnych Struktur Danych
304 autorstwa Okasaki'ego, napisane w OCamlu, wraz z dodatkami.
307 %setup -q -a1 -a3 -a4 -a6
309 tar xjf %{SOURCE8} -C examples
310 tar xzf %{SOURCE9} -C examples
311 # order mess with docs somewhat
313 mv htmlman docs/html/ocaml
314 cp %{SOURCE2} docs/ocaml.ps.gz
315 mv camlp4-%{p4ver}-manual.html docs/html/camlp4
316 cp %{SOURCE5} docs/camlp4.ps.gz
317 mv camlp4-%{p4ver}-tutorial.html docs/html/camlp4-tutorial
318 cp %{SOURCE7} docs/camlp4-tutorial.ps.gz
325 cp -f /usr/share/automake/config.sub config/gnu
329 -libdir %{_libdir}/%{name} \
330 -mandir %{_mandir}/man1 \
332 %{!?with_tk:-no-tk} \
336 %{__make} -j1 world bootstrap opt.opt CFLAGS="%{rpmcflags} -Wall"
337 %{__make} -C tools objinfo CFLAGS="%{rpmcflags} -Wall" -j1
339 # broken build system
340 sed -e 's,LIBDIR,%{_libdir},' camlp4/man/camlp4.1.tpl > camlp4/man/camlp4.1
343 rm -rf $RPM_BUILD_ROOT
344 install -d $RPM_BUILD_ROOT{%{_includedir},%{_infodir},%{_examplesdir}/%{name}-{labltk-,}%{version}}
345 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/site-lib
348 BINDIR=$RPM_BUILD_ROOT%{_bindir} \
349 LIBDIR=$RPM_BUILD_ROOT%{_libdir}/%{name} \
350 MANDIR=$RPM_BUILD_ROOT%{_mandir}
352 cat > $RPM_BUILD_ROOT%{_libdir}/%{name}/ld.conf <<EOF
353 %{_libdir}/%{name}/stublibs
358 %{__make} -C emacs install \
359 DESTDIR=$RPM_BUILD_ROOT \
360 EMACSDIR="$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp" \
364 # symlink .opt versions of compilers (if present)
365 # warning: don't do that with camlp4 (can't load extensions then)
366 for f in ocamlc ocamlopt ocamldoc ocamllex; do
367 if test -f $RPM_BUILD_ROOT%{_bindir}/$f.opt; then
368 mv -f $RPM_BUILD_ROOT%{_bindir}/$f \
369 $RPM_BUILD_ROOT%{_bindir}/$f.byte
370 ln -sf %{_bindir}/$f.opt $RPM_BUILD_ROOT%{_bindir}/$f
374 # move includes to the proper place
375 mv -f $RPM_BUILD_ROOT%{_libdir}/%{name}/caml $RPM_BUILD_ROOT%{_includedir}/caml
376 # but leave compatibility symlink
377 ln -s ../../include/caml $RPM_BUILD_ROOT%{_libdir}/%{name}/caml
379 # compiled sources of compiler, needed by some programs
380 for f in {asm,byte}comp parsing typing utils ; do
381 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
382 cp $f/*.{cmi,cmo,cmx,o} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
385 # this isn't installed by default, but is useful
386 install tools/objinfo $RPM_BUILD_ROOT%{_bindir}/ocamlobjinfo
387 cp -r examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
388 cp -r otherlibs/labltk/examples* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-labltk-%{version}
389 ln -sf %{_libdir}/%{name}/{scrape,add}labels $RPM_BUILD_ROOT%{_bindir}
392 %{__rm} -r $RPM_BUILD_ROOT%{_mandir}/man3
393 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/labltk/{labltktop,pp}
396 cp -f infoman/*.gz $RPM_BUILD_ROOT%{_infodir}
398 # broken build system
399 install camlp4/man/camlp4.1 $RPM_BUILD_ROOT%{_mandir}/man1
400 for f in camlp4o.1 camlp4r.1 mkcamlp4.1 camlp4o.opt.1 camlp4r.opt.1 ; do
401 echo '.so camlp4.1' >$RPM_BUILD_ROOT%{_mandir}/man1/$f
405 rm -rf $RPM_BUILD_ROOT
407 %post doc-info -p /sbin/postshell
408 -/usr/sbin/fix-info-dir -c %{_infodir}
410 %postun doc-info -p /sbin/postshell
411 -/usr/sbin/fix-info-dir -c %{_infodir}
414 %defattr(644,root,root,755)
415 %doc LICENSE Changes README Upgrading
416 %attr(755,root,root) %{_bindir}/addlabels
417 %attr(755,root,root) %{_bindir}/ocaml*
418 %attr(755,root,root) %{_bindir}/scrapelabels
419 %{?with_tk:%exclude %{_bindir}/ocamlbrowser}
420 %exclude %{_bindir}/ocamlrun
422 %{_libdir}/%{name}/caml
423 %{_libdir}/%{name}/threads
424 %dir %{_libdir}/%{name}/vmthreads
425 %dir %{_libdir}/%{name}/vmthreads/*.cm*
426 %dir %{_libdir}/%{name}/vmthreads/*.a
427 %{_libdir}/%{name}/*.a
428 %{_libdir}/%{name}/*.o
429 %{_libdir}/%{name}/*.cm*
430 %exclude %{_libdir}/%{name}/*graphics*
431 %{_libdir}/%{name}/Makefile.config
432 %{_libdir}/%{name}/ld.conf
433 %{_libdir}/%{name}/camlheader
434 %{_libdir}/%{name}/camlheader_ur
435 %{_libdir}/%{name}/ocamlbuild
436 %dir %{_libdir}/%{name}/ocamldoc
437 %{_libdir}/%{name}/ocamldoc/*.hva
438 %attr(755,root,root) %{_libdir}/%{name}/expunge
439 %attr(755,root,root) %{_libdir}/%{name}/extract_crc
440 %attr(755,root,root) %{_libdir}/%{name}/objinfo_helper
441 %{_mandir}/man1/ocaml*
442 %exclude %{_mandir}/man1/ocamlrun.1*
445 %defattr(644,root,root,755)
446 %attr(755,root,root) %{_bindir}/ocamlrun
447 %dir %{_libdir}/%{name}
448 %dir %{_libdir}/%{name}/site-lib
449 %dir %{_libdir}/%{name}/stublibs
450 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dll*.so
451 %exclude %{_libdir}/%{name}/stublibs/dllgraphics.so
452 %attr(755,root,root) %{_libdir}/%{name}/libcamlrun_shared.so
454 %exclude %{_libdir}/%{name}/stublibs/dlllabltk.so
456 %{_mandir}/man1/ocamlrun.1*
459 %defattr(644,root,root,755)
460 %{_libdir}/%{name}/*.ml
461 %{_libdir}/%{name}/*.mli
462 %{_libdir}/%{name}/*/*.mli
465 %defattr(644,root,root,755)
466 %doc docs/html/ocaml/*
469 %defattr(644,root,root,755)
473 %defattr(644,root,root,755)
474 %{_infodir}/ocaml.info*
476 # they are poor, html is much better
482 %defattr(644,root,root,755)
483 %{_datadir}/emacs/site-lisp/*.el*
488 %defattr(644,root,root,755)
489 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dlllabltk.so
492 %defattr(644,root,root,755)
493 %attr(755,root,root) %{_bindir}/labltk
494 %attr(755,root,root) %{_bindir}/ocamlbrowser
495 %dir %{_libdir}/%{name}/labltk
496 %{_libdir}/%{name}/labltk/*.cm*
497 %{_libdir}/%{name}/labltk/*.a
498 %{_libdir}/%{name}/labltk/*.o
499 %attr(755,root,root) %{_libdir}/%{name}/labltk/tkcompiler
500 %{_examplesdir}/%{name}-labltk-%{version}
505 %defattr(644,root,root,755)
506 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dllgraphics.so
508 %files x11graphics-devel
509 %defattr(644,root,root,755)
510 %{_libdir}/%{name}/graphics*.cm*
511 %{_libdir}/%{name}/graphics.a
512 %{_libdir}/%{name}/libgraphics.a
516 %defattr(644,root,root,755)
517 %attr(755,root,root) %{_bindir}/camlp4*
518 %attr(755,root,root) %{_bindir}/mkcamlp4
519 %{_libdir}/%{name}/camlp4
520 %{_mandir}/man1/camlp4*.1*
521 %{_mandir}/man1/mkcamlp4.1*
523 %files camlp4-doc-html
524 %defattr(644,root,root,755)
525 %doc docs/html/camlp4*
527 %files compiler-objects
528 %defattr(644,root,root,755)
529 %{_libdir}/%{name}/compiler
531 %files ocamldoc-devel
532 %defattr(644,root,root,755)
533 %{_libdir}/%{name}/ocamldoc/*.cm*
534 %{_libdir}/%{name}/ocamldoc/*.a
537 %defattr(644,root,root,755)
538 %{_examplesdir}/%{name}-%{version}