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 # following 4 URLs are dead, some version now available at http://pauillac.inria.fr/camlp4/
30 Source4: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-manual.html.tar.gz
31 # Source4-md5: 21370bae4e7f6435b38aeb21db7ce8bb
32 Source5: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-manual.dvi.gz
33 # Source5-md5: 035915d1a530aa7ec9b194d9a7d258eb
34 Source6: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-tutorial.html.tar.gz
35 # Source6-md5: 96d8eb4ca5abd58c9a280ba59f73b192
36 Source7: ftp://ftp.inria.fr/INRIA/Projects/cristal/camlp4/camlp4-%{p4ver}-tutorial.dvi.gz
37 # Source7-md5: fcd87c235109364242a0c9ccf176dff8
38 Source8: http://www.ocaml.info/ocaml_sources/pure-fun-1.0.6.tar.bz2
39 # Source8-md5: 94eac3fa1ac51b8ada344b04839cb43c
40 Source9: http://www.ocaml.info/ocaml_sources/ds-contrib.tar.gz
41 # Source9-md5: 77fa1da7375dea1393cc0b6cd802d7e1
42 Patch0: %{name}-db3.patch
43 Patch1: %{name}-CFLAGS.patch
44 Patch2: %{name}-as_needed.patch
45 Patch3: %{name}-gas.patch
46 Patch4: %{name}-tcl86.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: emacs-common
56 Requires: %{name}-runtime = %{epoch}:%{version}-%{release}
57 Provides: ocaml-ocamldoc
58 Obsoletes: ocaml-ocamldoc
59 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
61 %define specflags -fno-strict-aliasing
64 Objective Caml is a high-level, strongly-typed, functional and
65 object-oriented programming language from the ML family of languages.
67 This package comprises two batch compilers (a fast bytecode compiler
68 and an optimizing native-code compiler), an interactive toplevel
69 system, Lex&Yacc tools, a replay debugger, and a comprehensive
72 %description -l pl.UTF-8
73 OCaml (Objective Caml) jest funkcyjnym, obiektowo zorientowanym językiem
74 wysokiego poziomu z silnym typowaniem. Należy do rodziny języków ML.
76 Ten pakiet zawiera dwa kompilatory (szybki kompilator do bajtkodu
77 oraz optymalizujący kompilator do kodu natywnego), interaktywne środowisko
78 pracy, narzędzia do tworzenia analizatorów leksykalnych oraz składniowych
79 (ocamllex, ocamlyacc), odpluskwiacz (ocamldebug) i biblioteki.
82 Summary: Runtime system for OCaml
83 Summary(pl.UTF-8): Środowisko uruchomieniowe dla OCamla
87 This package contains binaries needed to run bytecode OCaml programs:
88 ocamlrun bytecode interpreter, and basic dynamic link libraries.
90 %description runtime -l pl.UTF-8
91 Pakiet ten zawiera binaria potrzebne do uruchamiania programów w
92 OCamlu skompilowanych do bajtkodu: interpreter bajtkodu (ocamlrun) oraz
93 podstawowe biblioteki linkowane dynamicznie.
96 Summary: Sources of OCaml standard library
97 Summary(pl.UTF-8): Źródła biblioteki standardowej OCamla
98 Group: Development/Languages
99 Requires: %{name} = %{epoch}:%{version}-%{release}
101 %description lib-source
102 This sources come helpful during debugging of user programs with ocamldebug.
104 %description lib-source -l pl.UTF-8
105 Źródła te są przydatne przy odpluskwianiu programów użytkownika
106 z użyciem ocamldebug.
109 Summary: HTML documentation for OCaml
110 Summary(pl.UTF-8): Dokumentacja dla OCamla w formacie HTML
111 Group: Development/Tools
113 %description doc-html
114 HTML documentation for OCaml.
116 %description doc-html -l pl.UTF-8
117 Dokumentacja dla OCamla w formacie HTML.
120 Summary: PostScript documentation for OCaml
121 Summary(pl.UTF-8): Dokumentacja dla OCamla w formacie PostScript
122 Group: Development/Tools
125 PostScript documentation for OCaml.
127 %description doc-ps -l pl.UTF-8
128 Dokumentacja dla OCamla w formacie PostScript.
131 Summary: Info documentation for OCaml
132 Summary(pl.UTF-8): Dokumentacja info dla OCamla
133 Group: Development/Tools
135 %description doc-info
136 Info documentation for OCaml.
138 %description doc-info -l pl.UTF-8
139 Dokumentacja info dla OCamla.
142 Summary: Emacs mode for OCaml
143 Summary(pl.UTF-8): Tryb OCamla dla Emacsa
144 Group: Development/Tools
145 Requires: %{name} = %{epoch}:%{version}-%{release}
148 Emacs mode files for Objective Caml language.
150 %description emacs -l pl.UTF-8
151 Pliki trybu OCamla dla Emacsa.
154 Summary: Runtime for LablTk library
155 Summary(pl.UTF-8): Środowisko uruchomieniowe dla biblioteki LablTk
157 Requires: %{name} = %{epoch}:%{version}-%{release}
160 LablTk gives OCaml program access to Tcl/Tk GUI widgets. This package
161 contains files needed to run bytecode OCaml programs using LablTk.
163 %description labltk -l pl.UTF-8
164 Biblioteka LablTk daje programom napisanym w OCamlu dostęp do widgetów
165 Tcl/Tk. Pakiet ten zawiera binaria potrzebne do uruchamiania programów
168 %package labltk-devel
169 Summary: LablTk library for OCaml
170 Summary(pl.UTF-8): Biblioteka LablTk dla OCamla
171 Group: Development/Libraries
172 Requires: %{name}-labltk = %{epoch}:%{version}-%{release}
174 %description labltk-devel
175 LablTk gives OCaml program access to Tcl/Tk GUI widgets. This package
176 contains files needed to develop OCaml programs using LablTk.
178 %description labltk-devel -l pl.UTF-8
179 Biblioteka LablTk daje programom napisanym w OCamlu dostęp do widgetów
180 Tcl/Tk. Pakiet ten zawiera pliki niezbędne do tworzenia programów
184 Summary: X11 graphic output for OCaml
185 Summary(pl.UTF-8): Dostęp do X11 dla OCamla
186 Group: Development/Libraries
187 Requires: %{name} = %{epoch}:%{version}-%{release}
189 %description x11graphics
190 x11graphics module gives OCaml program access to drawing in X11
191 windows. This package contains files needed to run bytecode OCaml
192 programs using x11graphics.
194 %description x11graphics -l pl.UTF-8
195 Moduł x11graphics daje programom napisanym w OCamlu możliwość
196 korzystania z interfejsu graficznego X11. Pakiet ten zawiera binaria
197 potrzebne do uruchamiania programów używających x11graphics.
199 %package x11graphics-devel
200 Summary: X11 graphic output for OCaml
201 Summary(pl.UTF-8): Dostęp do X11 dla OCamla
202 Group: Development/Libraries
203 Requires: %{name}-x11graphics = %{epoch}:%{version}-%{release}
205 %description x11graphics-devel
206 x11graphics module gives OCaml program access to drawing in X11
207 windows. This package contains files needed to develop OCaml programs
210 %description x11graphics-devel -l pl.UTF-8
211 Moduł x11graphics daje programom napisanym w OCamlu możliwość
212 korzystania z interfejsu graficznego X11. Pakiet ten zawiera pliki
213 niezbędne do tworzenia programów używających x11graphics.
216 Summary: Objective Caml Preprocessor
217 Summary(pl.UTF-8): Preprocesor OCamla
218 Group: Development/Languages
219 Requires: %{name} = %{epoch}:%{version}-%{release}
220 Provides: camlp4 = %{epoch}:%{version}-%{release}
224 Camlp4 is a Pre-Processor-Pretty-Printer for Objective Caml. It offers
225 tools for syntax (grammars) and the ability to modify the concrete
226 syntax of the language (quotations, syntax extensions).
228 Camlp4 can parse normal Ocaml concrete syntax or any other
229 user-definable syntax. As an example, an alternative syntax is
230 provided, named revised, because it tries to fix some small problems
231 of the normal syntax.
233 Camlp4 can pretty print the normal Ocaml concrete syntax or the
234 revised one. It is therefore always possible to have a version of your
235 sources compilable by the Objective Caml compiler without
238 %description camlp4 -l pl.UTF-8
239 Camlp4 jest preprocesorem OCamla. Oferuje narzędzia do manipulowania
240 składnią (gramatyki) oraz możliwość modyfikowania oryginalnej składni
241 języka (cytowania, rozszerzenia).
243 Camlp4 może sparsować oryginalną składnię Ocamla lub dowolną inną
244 definiowalną przez użytkownika. Jako przykład podana jest alternatywna
245 składnia (revised syntax), która próbuje poprawić drobne problemy
246 występujące w składni oryginalnej.
248 Camlp4 umie ładnie formatować źródła zarówno w oryginalnej jak i
249 poprawionej składni OCamla. Potrafi także tłumaczyć programy z jednej
252 %package camlp4-doc-html
253 Summary: Objective Caml Preprocessor - HTML documentation
254 Summary(pl.UTF-8): Preprocesor OCamla - dokumentacja HTML
255 Group: Development/Languages
257 %description camlp4-doc-html
258 Objective Caml Preprocessor - HTML documentation.
260 %description camlp4-doc-html -l pl.UTF-8
261 Preprocesor OCamla - dokumentacja HTML.
263 %package compiler-objects
264 Summary: Compiled parts of OCaml compiler
265 Summary(pl.UTF-8): Skompilowane części kompilatora OCamla
266 Group: Development/Languages
267 Requires: %{name} = %{epoch}:%{version}-%{release}
268 Obsoletes: ocaml-devel
269 Provides: ocaml-devel
271 %description compiler-objects
272 This package contains *.cmi and *.cmo files being parts of OCaml
273 compiler. They are needed to compile some programs.
275 %description compiler-objects -l pl.UTF-8
276 Pakiet ten zawiera pliki *.cmi oraz *.cmo będące częściami kompilatora
277 OCamla. Są one wymagane do kompilacji niektórych programów.
279 %package ocamldoc-devel
280 Summary: Files needed to develop programs using ocamldoc
281 Summary(pl.UTF-8): Pliki potrzebne do tworzenia programów używających ocamldoc
282 Group: Development/Languages
283 Requires: %{name} = %{epoch}:%{version}-%{release}
285 %description ocamldoc-devel
286 You need this package if you are going to write ocamldoc front end or
289 %description ocamldoc-devel -l pl.UTF-8
290 Będziesz potrzebować tego pakietu, jeśli zamierzasz pisać front end
291 dla ocamldoc lub coś podobnego.
293 # maybe we'll want to add some more stuff here?
295 Summary: Example source code for OCaml
296 Summary(pl.UTF-8): Przykładowe kody źródłowe w OCamlu
297 Group: Development/Languages
298 Requires: %{name} = %{epoch}:%{version}-%{release}
300 %description examples
301 This packages contains sources for Okasaki's Purely Functional
302 Datastructures in OCaml, along with some contributions.
304 %description examples -l pl.UTF-8
305 Pakiet ten zawiera źródła Czysto Funkcyjnych Struktur Danych
306 autorstwa Okasaki'ego, napisane w OCamlu, wraz z dodatkami.
309 %setup -q -a1 -a3 -a4 -a6
311 tar xjf %{SOURCE8} -C examples
312 tar xzf %{SOURCE9} -C examples
313 # order mess with docs somewhat
315 mv htmlman docs/html/ocaml
316 cp %{SOURCE2} docs/ocaml.ps.gz
317 mv camlp4-%{p4ver}-manual.html docs/html/camlp4
318 cp %{SOURCE5} docs/camlp4.ps.gz
319 mv camlp4-%{p4ver}-tutorial.html docs/html/camlp4-tutorial
320 cp %{SOURCE7} docs/camlp4-tutorial.ps.gz
328 cp -f /usr/share/automake/config.sub config/gnu
332 -libdir %{_libdir}/%{name} \
333 -mandir %{_mandir}/man1 \
335 %{!?with_tk:-no-tk} \
339 %{__make} -j1 world bootstrap opt.opt CFLAGS="%{rpmcflags} -Wall -DUSE_INTERP_RESULT"
340 %{__make} -C tools objinfo CFLAGS="%{rpmcflags} -Wall -DUSE_INTERP_RESULT" -j1
342 # broken build system
343 sed -e 's,LIBDIR,%{_libdir},' camlp4/man/camlp4.1.tpl > camlp4/man/camlp4.1
346 rm -rf $RPM_BUILD_ROOT
347 install -d $RPM_BUILD_ROOT{%{_includedir},%{_infodir},%{_examplesdir}/%{name}-{labltk-,}%{version}}
348 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/site-lib
351 BINDIR=$RPM_BUILD_ROOT%{_bindir} \
352 LIBDIR=$RPM_BUILD_ROOT%{_libdir}/%{name} \
353 MANDIR=$RPM_BUILD_ROOT%{_mandir}
355 cat > $RPM_BUILD_ROOT%{_libdir}/%{name}/ld.conf <<EOF
356 %{_libdir}/%{name}/stublibs
361 %{__make} -C emacs install \
362 DESTDIR=$RPM_BUILD_ROOT \
363 EMACSDIR="$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp" \
367 # symlink .opt versions of compilers (if present)
368 # warning: don't do that with camlp4 (can't load extensions then)
369 for f in ocamlc ocamlopt ocamldoc ocamllex; do
370 if test -f $RPM_BUILD_ROOT%{_bindir}/$f.opt; then
371 mv -f $RPM_BUILD_ROOT%{_bindir}/$f \
372 $RPM_BUILD_ROOT%{_bindir}/$f.byte
373 ln -sf %{_bindir}/$f.opt $RPM_BUILD_ROOT%{_bindir}/$f
377 # move includes to the proper place
378 mv -f $RPM_BUILD_ROOT%{_libdir}/%{name}/caml $RPM_BUILD_ROOT%{_includedir}/caml
379 # but leave compatibility symlink
380 ln -s ../../include/caml $RPM_BUILD_ROOT%{_libdir}/%{name}/caml
382 # compiled sources of compiler, needed by some programs
383 for f in {asm,byte}comp parsing typing utils ; do
384 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
385 cp $f/*.{cmi,cmo,cmx,o} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
388 # this isn't installed by default, but is useful
389 install tools/objinfo $RPM_BUILD_ROOT%{_bindir}/ocamlobjinfo
390 cp -r examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
391 cp -r otherlibs/labltk/examples* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-labltk-%{version}
392 ln -sf %{_libdir}/%{name}/{scrape,add}labels $RPM_BUILD_ROOT%{_bindir}
395 %{__rm} -r $RPM_BUILD_ROOT%{_mandir}/man3
396 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/labltk/{labltktop,pp}
399 cp -f infoman/*.gz $RPM_BUILD_ROOT%{_infodir}
401 # broken build system
402 install camlp4/man/camlp4.1 $RPM_BUILD_ROOT%{_mandir}/man1
403 for f in camlp4o.1 camlp4r.1 mkcamlp4.1 camlp4o.opt.1 camlp4r.opt.1 ; do
404 echo '.so camlp4.1' >$RPM_BUILD_ROOT%{_mandir}/man1/$f
408 rm -rf $RPM_BUILD_ROOT
410 %post doc-info -p /sbin/postshell
411 -/usr/sbin/fix-info-dir -c %{_infodir}
413 %postun doc-info -p /sbin/postshell
414 -/usr/sbin/fix-info-dir -c %{_infodir}
417 %defattr(644,root,root,755)
418 %doc LICENSE Changes README Upgrading
419 %attr(755,root,root) %{_bindir}/addlabels
420 %attr(755,root,root) %{_bindir}/ocaml*
421 %attr(755,root,root) %{_bindir}/scrapelabels
422 %{?with_tk:%exclude %{_bindir}/ocamlbrowser}
423 %exclude %{_bindir}/ocamlrun
425 %{_libdir}/%{name}/caml
426 %{_libdir}/%{name}/threads
427 %dir %{_libdir}/%{name}/vmthreads
428 %dir %{_libdir}/%{name}/vmthreads/*.cm*
429 %dir %{_libdir}/%{name}/vmthreads/*.a
430 %{_libdir}/%{name}/*.a
431 %{_libdir}/%{name}/*.o
432 %{_libdir}/%{name}/*.cm*
433 %exclude %{_libdir}/%{name}/*graphics*
434 %{_libdir}/%{name}/Makefile.config
435 %{_libdir}/%{name}/ld.conf
436 %{_libdir}/%{name}/camlheader
437 %{_libdir}/%{name}/camlheader_ur
438 %{_libdir}/%{name}/ocamlbuild
439 %dir %{_libdir}/%{name}/ocamldoc
440 %{_libdir}/%{name}/ocamldoc/*.hva
441 %attr(755,root,root) %{_libdir}/%{name}/expunge
442 %attr(755,root,root) %{_libdir}/%{name}/extract_crc
443 %attr(755,root,root) %{_libdir}/%{name}/objinfo_helper
444 %{_mandir}/man1/ocaml*
445 %exclude %{_mandir}/man1/ocamlrun.1*
448 %defattr(644,root,root,755)
449 %attr(755,root,root) %{_bindir}/ocamlrun
450 %dir %{_libdir}/%{name}
451 %dir %{_libdir}/%{name}/site-lib
452 %dir %{_libdir}/%{name}/stublibs
453 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dll*.so
454 %exclude %{_libdir}/%{name}/stublibs/dllgraphics.so
455 %attr(755,root,root) %{_libdir}/%{name}/libcamlrun_shared.so
457 %exclude %{_libdir}/%{name}/stublibs/dlllabltk.so
459 %{_mandir}/man1/ocamlrun.1*
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
495 %defattr(644,root,root,755)
496 %attr(755,root,root) %{_bindir}/labltk
497 %attr(755,root,root) %{_bindir}/ocamlbrowser
498 %dir %{_libdir}/%{name}/labltk
499 %{_libdir}/%{name}/labltk/*.cm*
500 %{_libdir}/%{name}/labltk/*.a
501 %{_libdir}/%{name}/labltk/*.o
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}