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