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: d86f8f8aa4574fa60dd6f89044580307
23 Source1: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman.html.tar.gz
24 # Source1-md5: 663b31c8ea364a531aa325a5b06a2763
25 Source2: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman.ps.gz
26 # Source2-md5: 69c7acc08ee182c97089fe0736c04e37
27 Source3: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-manual.html.tar.gz
28 # Source3-md5: 21370bae4e7f6435b38aeb21db7ce8bb
29 Source4: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-manual.dvi.gz
30 # Source4-md5: 035915d1a530aa7ec9b194d9a7d258eb
31 Source5: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-tutorial.html.tar.gz
32 # Source5-md5: 96d8eb4ca5abd58c9a280ba59f73b192
33 Source6: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-tutorial.dvi.gz
34 # Source6-md5: fcd87c235109364242a0c9ccf176dff8
35 Source7: http://www.ocaml.info/ocaml_sources/pure-fun-1.0.6.tar.bz2
36 # Source7-md5: 94eac3fa1ac51b8ada344b04839cb43c
37 Source8: http://www.ocaml.info/ocaml_sources/ds-contrib.tar.gz
38 # Source8-md5: 77fa1da7375dea1393cc0b6cd802d7e1
39 Source9: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman.info.tar.gz
40 # Source9-md5: f80b52b8bc4b10ed557808fc899acf3a
41 Patch0: %{name}-build.patch
42 Patch1: %{name}-db3.patch
43 Patch2: %{name}-objinfo.patch
44 Patch3: %{name}-tk85support.patch
45 Patch4: %{name}-CFLAGS.patch
46 Patch5: %{name}-as_needed.patch
47 URL: http://caml.inria.fr/
48 BuildRequires: db-devel >= 4.1
49 %{?with_tk:BuildRequires: tk-devel}
50 %{?with_x:BuildRequires: xorg-lib-libX11-devel}
52 BuildRequires: sed >= 4.0
54 BuildRequires: xemacs-common
55 BuildRequires: xemacs-fsf-compat-pkg
57 Requires: %{name}-runtime = %{epoch}:%{version}-%{release}
58 Provides: ocaml-ocamldoc
59 Obsoletes: ocaml-ocamldoc
60 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
62 %define specflags -fno-strict-aliasing
65 Objective Caml is a high-level, strongly-typed, functional and
66 object-oriented programming language from the ML family of languages.
68 This package comprises two batch compilers (a fast bytecode compiler
69 and an optimizing native-code compiler), an interactive toplevel
70 system, Lex&Yacc tools, a replay debugger, and a comprehensive
73 %description -l pl.UTF-8
74 OCaml (Objective Caml) jest funkcyjnym, obiektowo zorientowanym językiem
75 wysokiego poziomu z silnym typowaniem. Należy do rodziny języków ML.
77 Ten pakiet zawiera dwa kompilatory (szybki kompilator do bajtkodu
78 oraz optymalizujący kompilator do kodu natywnego), interaktywne środowisko
79 pracy, narzędzia do tworzenia analizatorów leksykalnych oraz składniowych
80 (ocamllex, ocamlyacc), odpluskwiacz (ocamldebug) i biblioteki.
83 Summary: Runtime system for OCaml
84 Summary(pl.UTF-8): Środowisko uruchomieniowe dla OCamla
88 This package contains binaries needed to run bytecode OCaml programs:
89 ocamlrun bytecode interpreter, and basic dynamic link libraries.
91 %description runtime -l pl.UTF-8
92 Pakiet ten zawiera binaria potrzebne do uruchamiania programów w
93 OCamlu skompilowanych do bajtkodu: interpreter bajtkodu (ocamlrun) oraz
94 podstawowe biblioteki linkowane dynamicznie.
97 Summary: Sources of OCaml standard library
98 Summary(pl.UTF-8): Źródła biblioteki standardowej OCamla
99 Group: Development/Languages
100 Requires: %{name} = %{epoch}:%{version}-%{release}
102 %description lib-source
103 This sources come helpful during debugging of user programs with ocamldebug.
105 %description lib-source -l pl.UTF-8
106 Źródła te są przydatne przy odpluskwianiu programów użytkownika
107 z użyciem ocamldebug.
110 Summary: HTML documentation for OCaml
111 Summary(pl.UTF-8): Dokumentacja dla OCamla w formacie HTML
112 Group: Development/Tools
114 %description doc-html
115 HTML documentation for OCaml.
117 %description doc-html -l pl.UTF-8
118 Dokumentacja dla OCamla w formacie HTML.
121 Summary: PostScript documentation for OCaml
122 Summary(pl.UTF-8): Dokumentacja dla OCamla w formacie PostScript
123 Group: Development/Tools
126 PostScript documentation for OCaml.
128 %description doc-ps -l pl.UTF-8
129 Dokumentacja dla OCamla w formacie PostScript.
132 Summary: Info documentation for OCaml
133 Summary(pl.UTF-8): Dokumentacja info dla OCamla
134 Group: Development/Tools
136 %description doc-info
137 Info documentation for OCaml.
139 %description doc-info -l pl.UTF-8
140 Dokumentacja info dla OCamla.
143 Summary: Emacs mode for OCaml
144 Summary(pl.UTF-8): Tryb OCamla dla Emacsa
145 Group: Development/Tools
146 Requires: %{name} = %{epoch}:%{version}-%{release}
149 Emacs mode files for Objective Caml language.
151 %description emacs -l pl.UTF-8
152 Pliki trybu OCamla dla Emacsa.
155 Summary: Runtime for LablTk library
156 Summary(pl.UTF-8): Środowisko uruchomieniowe dla biblioteki LablTk
158 Requires: %{name} = %{epoch}:%{version}-%{release}
161 LablTk gives OCaml program access to Tcl/Tk GUI widgets. This package
162 contains files needed to run bytecode OCaml programs using LablTk.
164 %description labltk -l pl.UTF-8
165 Biblioteka LablTk daje programom napisanym w OCamlu dostęp do widgetów
166 Tcl/Tk. Pakiet ten zawiera binaria potrzebne do uruchamiania programów
169 %package labltk-devel
170 Summary: LablTk library for OCaml
171 Summary(pl.UTF-8): Biblioteka LablTk dla OCamla
172 Group: Development/Libraries
173 Requires: %{name}-labltk = %{epoch}:%{version}-%{release}
175 %description labltk-devel
176 LablTk gives OCaml program access to Tcl/Tk GUI widgets. This package
177 contains files needed to develop OCaml programs using LablTk.
179 %description labltk-devel -l pl.UTF-8
180 Biblioteka LablTk daje programom napisanym w OCamlu dostęp do widgetów
181 Tcl/Tk. Pakiet ten zawiera pliki niezbędne do tworzenia programów
185 Summary: X11 graphic output for OCaml
186 Summary(pl.UTF-8): Dostęp do X11 dla OCamla
187 Group: Development/Libraries
188 Requires: %{name} = %{epoch}:%{version}-%{release}
190 %description x11graphics
191 x11graphics module gives OCaml program access to drawing in X11
192 windows. This package contains files needed to run bytecode OCaml
193 programs using x11graphics.
195 %description x11graphics -l pl.UTF-8
196 Moduł x11graphics daje programom napisanym w OCamlu możliwość
197 korzystania z interfejsu graficznego X11. Pakiet ten zawiera binaria
198 potrzebne do uruchamiania programów używających x11graphics.
200 %package x11graphics-devel
201 Summary: X11 graphic output for OCaml
202 Summary(pl.UTF-8): Dostęp do X11 dla OCamla
203 Group: Development/Libraries
204 Requires: %{name}-x11graphics = %{epoch}:%{version}-%{release}
206 %description x11graphics-devel
207 x11graphics module gives OCaml program access to drawing in X11
208 windows. This package contains files needed to develop OCaml programs
211 %description x11graphics-devel -l pl.UTF-8
212 Moduł x11graphics daje programom napisanym w OCamlu możliwość
213 korzystania z interfejsu graficznego X11. Pakiet ten zawiera pliki
214 niezbędne do tworzenia programów używających x11graphics.
217 Summary: Objective Caml Preprocessor
218 Summary(pl.UTF-8): Preprocesor OCamla
219 Group: Development/Languages
220 Requires: %{name} = %{epoch}:%{version}-%{release}
221 Provides: camlp4 = %{epoch}:%{version}-%{release}
225 Camlp4 is a Pre-Processor-Pretty-Printer for Objective Caml. It offers
226 tools for syntax (grammars) and the ability to modify the concrete
227 syntax of the language (quotations, syntax extensions).
229 Camlp4 can parse normal Ocaml concrete syntax or any other
230 user-definable syntax. As an example, an alternative syntax is
231 provided, named revised, because it tries to fix some small problems
232 of the normal syntax.
234 Camlp4 can pretty print the normal Ocaml concrete syntax or the
235 revised one. It is therefore always possible to have a version of your
236 sources compilable by the Objective Caml compiler without
239 %description camlp4 -l pl.UTF-8
240 Camlp4 jest preprocesorem OCamla. Oferuje narzędzia do manipulowania
241 składnią (gramatyki) oraz możliwość modyfikowania oryginalnej składni
242 języka (cytowania, rozszerzenia).
244 Camlp4 może sparsować oryginalną składnię Ocamla lub dowolną inną
245 definiowalną przez użytkownika. Jako przykład podana jest alternatywna
246 składnia (revised syntax), która próbuje poprawić drobne problemy
247 występujące w składni oryginalnej.
249 Camlp4 umie ładnie formatować źródła zarówno w oryginalnej jak i
250 poprawionej składni OCamla. Potrafi także tłumaczyć programy z jednej
253 %package camlp4-doc-html
254 Summary: Objective Caml Preprocessor - HTML documentation
255 Summary(pl.UTF-8): Preprocesor OCamla - dokumentacja HTML
256 Group: Development/Languages
258 %description camlp4-doc-html
259 Objective Caml Preprocessor - HTML documentation.
261 %description camlp4-doc-html -l pl.UTF-8
262 Preprocesor OCamla - dokumentacja HTML.
264 %package compiler-objects
265 Summary: Compiled parts of OCaml compiler
266 Summary(pl.UTF-8): Skompilowane części kompilatora OCamla
267 Group: Development/Languages
268 Requires: %{name} = %{epoch}:%{version}-%{release}
269 Obsoletes: ocaml-devel
270 Provides: ocaml-devel
272 %description compiler-objects
273 This package contains *.cmi and *.cmo files being parts of OCaml
274 compiler. They are needed to compile some programs.
276 %description compiler-objects -l pl.UTF-8
277 Pakiet ten zawiera pliki *.cmi oraz *.cmo będące częściami kompilatora
278 OCamla. Są one wymagane do kompilacji niektórych programów.
280 %package ocamldoc-devel
281 Summary: Files needed to develop programs using ocamldoc
282 Summary(pl.UTF-8): Pliki potrzebne do tworzenia programów używających ocamldoc
283 Group: Development/Languages
284 Requires: %{name} = %{epoch}:%{version}-%{release}
286 %description ocamldoc-devel
287 You need this package if you are going to write ocamldoc front end or
290 %description ocamldoc-devel -l pl.UTF-8
291 Będziesz potrzebować tego pakietu, jeśli zamierzasz pisać front end
292 dla ocamldoc lub coś podobnego.
294 # maybe we'll want to add some more stuff here?
296 Summary: Example source code for OCaml
297 Summary(pl.UTF-8): Przykładowe kody źródłowe w OCamlu
298 Group: Development/Languages
299 Requires: %{name} = %{epoch}:%{version}-%{release}
301 %description examples
302 This packages contains sources for Okasaki's Purely Functional
303 Datastructures in OCaml, along with some contributions.
305 %description examples -l pl.UTF-8
306 Pakiet ten zawiera źródła Czysto Funkcyjnych Struktur Danych
307 autorstwa Okasaki'ego, napisane w OCamlu, wraz z dodatkami.
310 %setup -q -a1 -a3 -a5
312 tar xjf %{SOURCE7} -C examples
313 tar xzf %{SOURCE8} -C examples
315 # order mess with docs somewhat
317 mv htmlman docs/html/ocaml
318 cp %{SOURCE2} docs/ocaml.ps.gz
319 mv camlp4-%{p4ver}-manual.html docs/html/camlp4
320 cp %{SOURCE4} docs/camlp4.ps.gz
321 mv camlp4-%{p4ver}-tutorial.html docs/html/camlp4-tutorial
322 cp %{SOURCE6} docs/camlp4-tutorial.ps.gz
331 cp -f /usr/share/automake/config.sub config/gnu
335 -libdir %{_libdir}/%{name} \
336 -mandir %{_mandir}/man1 \
338 %{!?with_tk:-no-tk} \
342 %{__make} -j1 world bootstrap opt.opt CFLAGS="%{rpmcflags} -Wall"
343 %{__make} -C tools objinfo CFLAGS="%{rpmcflags} -Wall" -j1
345 # broken build system
346 sed -e 's,LIBDIR,%{_libdir},' camlp4/man/camlp4.1.tpl > camlp4/man/camlp4.1
349 rm -rf $RPM_BUILD_ROOT
350 install -d $RPM_BUILD_ROOT{%{_includedir},%{_infodir},%{_examplesdir}/%{name}-{labltk-,}%{version}}
351 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/site-lib
354 BINDIR=$RPM_BUILD_ROOT%{_bindir} \
355 LIBDIR=$RPM_BUILD_ROOT%{_libdir}/%{name} \
356 MANDIR=$RPM_BUILD_ROOT%{_mandir}
358 cat > $RPM_BUILD_ROOT%{_libdir}/%{name}/ld.conf <<EOF
359 %{_libdir}/%{name}/stublibs
364 %{__make} -C emacs DESTDIR=$RPM_BUILD_ROOT install \
365 EMACS="`if [ -x %{_bindir}/emacs ]; then echo emacs; \
366 else echo xemacs; fi`" \
367 EMACSDIR="$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp"
370 # symlink .opt versions of compilers (if present)
371 # warning: don't do that with camlp4 (can't load extensions then)
372 for f in ocamlc ocamlopt ocamldoc ocamllex; do
373 if test -f $RPM_BUILD_ROOT%{_bindir}/$f.opt; then
374 mv -f $RPM_BUILD_ROOT%{_bindir}/$f \
375 $RPM_BUILD_ROOT%{_bindir}/$f.byte
376 ln -sf %{_bindir}/$f.opt $RPM_BUILD_ROOT%{_bindir}/$f
380 # move includes to the proper place
381 mv -f $RPM_BUILD_ROOT%{_libdir}/%{name}/caml $RPM_BUILD_ROOT%{_includedir}/caml
382 # but leave compatibility symlink
383 ln -s ../../include/caml $RPM_BUILD_ROOT%{_libdir}/%{name}/caml
385 # compiled sources of compiler, needed by some programs
386 for f in {asm,byte}comp parsing typing utils ; do
387 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
388 cp $f/*.{cmi,cmo,cmx,o} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
391 # this isn't installed by default, but is useful
392 install tools/objinfo $RPM_BUILD_ROOT%{_bindir}/ocamlobjinfo
393 cp -r examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
394 cp -r otherlibs/labltk/examples* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-labltk-%{version}
395 ln -sf %{_libdir}/%{name}/{scrape,add}labels $RPM_BUILD_ROOT%{_bindir}
398 rm -rf $RPM_BUILD_ROOT%{_mandir}/man3
399 rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/labltk/{labltktop,pp}
402 cp -f infoman/*.gz $RPM_BUILD_ROOT%{_infodir}
404 # broken build system
405 install camlp4/man/camlp4.1 $RPM_BUILD_ROOT%{_mandir}/man1
406 for f in camlp4o.1 camlp4r.1 mkcamlp4.1 camlp4o.opt.1 camlp4r.opt.1 ; do
407 echo '.so camlp4.1' >$RPM_BUILD_ROOT%{_mandir}/man1/$f
411 rm -rf $RPM_BUILD_ROOT
413 %post doc-info -p /sbin/postshell
414 -/usr/sbin/fix-info-dir -c %{_infodir}
416 %postun doc-info -p /sbin/postshell
417 -/usr/sbin/fix-info-dir -c %{_infodir}
420 %defattr(644,root,root,755)
421 %doc LICENSE Changes README Upgrading
422 %attr(755,root,root) %{_bindir}/ocaml*
423 %{?with_tk:%exclude %{_bindir}/ocamlbrowser}
424 %exclude %{_bindir}/ocamlrun
425 %attr(755,root,root) %{_bindir}/*labels
427 %{_libdir}/%{name}/caml
428 %{_libdir}/%{name}/threads
429 %dir %{_libdir}/%{name}/vmthreads
430 %dir %{_libdir}/%{name}/vmthreads/*.cm*
431 %dir %{_libdir}/%{name}/vmthreads/*.a
432 %{_libdir}/%{name}/*.a
433 %{_libdir}/%{name}/*.o
434 %{_libdir}/%{name}/*.cm*
435 %exclude %{_libdir}/%{name}/*graphics*
436 %{_libdir}/%{name}/Makefile.config
437 %{_libdir}/%{name}/ld.conf
438 %{_libdir}/%{name}/camlheader
439 %{_libdir}/%{name}/camlheader_ur
440 %{_libdir}/%{name}/ocamlbuild
441 %dir %{_libdir}/%{name}/ocamldoc
442 %{_libdir}/%{name}/ocamldoc/*.hva
443 %attr(755,root,root) %{_libdir}/%{name}/expunge
444 %attr(755,root,root) %{_libdir}/%{name}/extract_crc
445 %attr(755,root,root) %{_libdir}/%{name}/*labels
446 %{_mandir}/man1/*ocaml*
449 %defattr(644,root,root,755)
450 %attr(755,root,root) %{_bindir}/ocamlrun
451 %dir %{_libdir}/%{name}
452 %dir %{_libdir}/%{name}/site-lib
453 %dir %{_libdir}/%{name}/stublibs
454 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dll*.so
455 %exclude %{_libdir}/%{name}/stublibs/dllgraphics.so
457 %exclude %{_libdir}/%{name}/stublibs/dlllabltk.so
458 %exclude %{_libdir}/%{name}/stublibs/dlltkanim.so
462 %defattr(644,root,root,755)
463 %{_libdir}/%{name}/*.ml
464 %{_libdir}/%{name}/*.mli
465 %{_libdir}/%{name}/*/*.mli
468 %defattr(644,root,root,755)
469 %doc docs/html/ocaml/*
472 %defattr(644,root,root,755)
476 %defattr(644,root,root,755)
477 %{_infodir}/ocaml.info*
479 # they are poor, html is much better
485 %defattr(644,root,root,755)
486 %{_datadir}/emacs/site-lisp/*.el*
491 %defattr(644,root,root,755)
492 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dlllabltk.so
493 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dlltkanim.so
496 %defattr(644,root,root,755)
497 %attr(755,root,root) %{_bindir}/labltk
498 %attr(755,root,root) %{_bindir}/ocamlbrowser
499 %dir %{_libdir}/%{name}/labltk
500 %{_libdir}/%{name}/labltk/*.cm*
501 %{_libdir}/%{name}/labltk/*.a
502 %attr(755,root,root) %{_libdir}/%{name}/labltk/tkcompiler
503 %{_examplesdir}/%{name}-labltk-%{version}
508 %defattr(644,root,root,755)
509 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dllgraphics.so
511 %files x11graphics-devel
512 %defattr(644,root,root,755)
513 %{_libdir}/%{name}/graphics*.cm*
514 %{_libdir}/%{name}/graphics.a
515 %{_libdir}/%{name}/libgraphics.a
519 %defattr(644,root,root,755)
520 %attr(755,root,root) %{_bindir}/camlp4*
521 %attr(755,root,root) %{_bindir}/mkcamlp4
522 %{_libdir}/%{name}/camlp4
523 %{_mandir}/man1/camlp4*.1*
524 %{_mandir}/man1/mkcamlp4.1*
526 %files camlp4-doc-html
527 %defattr(644,root,root,755)
528 %doc docs/html/camlp4*
530 %files compiler-objects
531 %defattr(644,root,root,755)
532 %{_libdir}/%{name}/compiler
534 %files ocamldoc-devel
535 %defattr(644,root,root,755)
536 %{_libdir}/%{name}/ocamldoc/*.cm*
537 %{_libdir}/%{name}/ocamldoc/*.a
540 %defattr(644,root,root,755)
541 %{_examplesdir}/%{name}-%{version}