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