3 %bcond_without ocaml_opt # native, optimized compiler
5 # ppc64, sparc64 and x32 variants not supported currently
6 # alpha, hppa, ia64, mips removed since 4.00
7 %ifnarch %{ix86} %{x8664} %{arm} aarch64 ppc sparc sparcv9
8 %undefine with_ocaml_opt
13 Summary: The Objective Caml compiler and programming environment
14 Summary(pl.UTF-8): Kompilator OCamla (Objective Caml) oraz środowisko programistyczne
19 License: QPL v1.0 with linking exception (compiler), LGPL v2 with linking exception (library)
20 Group: Development/Languages
21 Source0: http://caml.inria.fr/distrib/ocaml-%{sver}/%{name}-%{version}.tar.xz
22 # Source0-md5: 7343cd398d477001db2c3f2ac92e12ea
23 Source1: http://caml.inria.fr/distrib/ocaml-%{sver}/%{name}-%{sver}-refman-html.tar.gz
24 # Source1-md5: 1bda3d0a46328a985c817d551423e2c6
25 Source3: http://caml.inria.fr/distrib/ocaml-%{sver}/%{name}-%{sver}-refman.info.tar.gz
26 # Source3-md5: c808dbbe35a6cc5d14da6c3b2f175d2c
27 Source4: https://github.com/mmottl/pure-fun/archive/v1.0.13/pure-fun-1.0.13.tar.gz
28 # Source4-md5: 0a6ff033df78d0880fe4883ace025ebe
30 Source5: http://www.ocaml.info/ocaml_sources/ds-contrib.tar.gz
31 # Source5-md5: 77fa1da7375dea1393cc0b6cd802d7e1
32 Patch0: %{name}-10266.patch
33 Patch1: %{name}-info.patch
34 URL: https://www.ocaml.org/
35 Requires: %{name}-runtime = %{epoch}:%{version}-%{release}
36 Provides: ocaml-bytes-devel
37 Provides: ocaml-ocamldoc
38 Obsoletes: ocaml-bytes-devel < 1.4
39 Obsoletes: ocaml-doc-ps < 1:4.12
40 Obsoletes: ocaml-emacs < 1:4.12
41 Obsoletes: ocaml-ocamldoc <= pre4
42 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
44 %define specflags -fno-strict-aliasing
46 %if %{without ocaml_opt}
47 %define _noautoreq Backend_intf Inlining_decision_intf Simplify_boxed_integer_ops_intf
51 Objective Caml is a high-level, strongly-typed, functional and
52 object-oriented programming language from the ML family of languages.
54 This package comprises two batch compilers (a fast bytecode compiler
55 and an optimizing native-code compiler), an interactive toplevel
56 system, Lex&Yacc tools, a replay debugger, and a comprehensive
59 %description -l pl.UTF-8
60 OCaml (Objective Caml) jest funkcyjnym, obiektowo zorientowanym
61 językiem wysokiego poziomu z silnym typowaniem. Należy do rodziny
64 Ten pakiet zawiera dwa kompilatory (szybki kompilator do bajtkodu oraz
65 optymalizujący kompilator do kodu natywnego), interaktywne środowisko
66 pracy, narzędzia do tworzenia analizatorów leksykalnych oraz
67 składniowych (ocamllex, ocamlyacc), odpluskwiacz (ocamldebug) i
71 Summary: Runtime system for OCaml
72 Summary(pl.UTF-8): Środowisko uruchomieniowe dla OCamla
76 This package contains binaries needed to run bytecode OCaml programs:
77 ocamlrun bytecode interpreter, and basic dynamic link libraries.
79 %description runtime -l pl.UTF-8
80 Pakiet ten zawiera binaria potrzebne do uruchamiania programów w
81 OCamlu skompilowanych do bajtkodu: interpreter bajtkodu (ocamlrun)
82 oraz podstawowe biblioteki linkowane dynamicznie.
85 Summary: Sources of OCaml standard library
86 Summary(pl.UTF-8): Źródła biblioteki standardowej OCamla
87 Group: Development/Languages
88 Requires: %{name} = %{epoch}:%{version}-%{release}
90 %description lib-source
91 This sources come helpful during debugging of user programs with
94 %description lib-source -l pl.UTF-8
95 Źródła te są przydatne przy odpluskwianiu programów użytkownika z
99 Summary: HTML documentation for OCaml
100 Summary(pl.UTF-8): Dokumentacja dla OCamla w formacie HTML
101 Group: Development/Tools
103 %description doc-html
104 HTML documentation for OCaml.
106 %description doc-html -l pl.UTF-8
107 Dokumentacja dla OCamla w formacie HTML.
110 Summary: Info documentation for OCaml
111 Summary(pl.UTF-8): Dokumentacja info dla OCamla
112 Group: Development/Tools
114 %description doc-info
115 Info documentation for OCaml.
117 %description doc-info -l pl.UTF-8
118 Dokumentacja info dla OCamla.
120 %package compiler-objects
121 Summary: Compiled parts of OCaml compiler
122 Summary(pl.UTF-8): Skompilowane części kompilatora OCamla
123 Group: Development/Languages
124 Requires: %{name} = %{epoch}:%{version}-%{release}
125 Provides: ocaml-devel
126 Obsoletes: ocaml-devel < 3.06-3
128 %description compiler-objects
129 This package contains *.cmi and *.cmo files being parts of OCaml
130 compiler. They are needed to compile some programs.
132 %description compiler-objects -l pl.UTF-8
133 Pakiet ten zawiera pliki *.cmi oraz *.cmo będące częściami kompilatora
134 OCamla. Są one wymagane do kompilacji niektórych programów.
136 %package ocamldoc-devel
137 Summary: Files needed to develop programs using ocamldoc
138 Summary(pl.UTF-8): Pliki potrzebne do tworzenia programów używających ocamldoc
139 Group: Development/Languages
140 Requires: %{name} = %{epoch}:%{version}-%{release}
142 %description ocamldoc-devel
143 You need this package if you are going to write ocamldoc front end or
146 %description ocamldoc-devel -l pl.UTF-8
147 Będziesz potrzebować tego pakietu, jeśli zamierzasz pisać front end
148 dla ocamldoc lub coś podobnego.
150 # maybe we'll want to add some more stuff here?
152 Summary: Example source code for OCaml
153 Summary(pl.UTF-8): Przykładowe kody źródłowe w OCamlu
154 Group: Development/Languages
155 Requires: %{name} = %{epoch}:%{version}-%{release}
157 %description examples
158 This packages contains sources for Okasaki's Purely Functional
159 Datastructures in OCaml, along with some contributions.
161 %description examples -l pl.UTF-8
162 Pakiet ten zawiera źródła Czysto Funkcyjnych Struktur Danych autorstwa
163 Okasaki'ego, napisane w OCamlu, wraz z dodatkami.
168 gunzip infoman/ocaml.info.gz
172 tar xzf %{SOURCE4} -C examples
173 tar xzf %{SOURCE5} -C examples
174 # order mess with docs somewhat
176 %{__mv} htmlman docs/html/ocaml
182 --libdir=%{_libdir}/ocaml \
183 %{!?with_ocaml_opt:--disable-native-compiler}
187 %if %{with ocaml_opt}
193 rm -rf $RPM_BUILD_ROOT
194 install -d $RPM_BUILD_ROOT{%{_includedir},%{_infodir},%{_examplesdir}/%{name}-%{version}}
197 DESTDIR=$RPM_BUILD_ROOT
199 cat > $RPM_BUILD_ROOT%{_libdir}/%{name}/ld.conf <<EOF
200 %{_libdir}/%{name}/stublibs
204 # move includes to the proper place
205 %{__mv} $RPM_BUILD_ROOT%{_libdir}/ocaml/caml $RPM_BUILD_ROOT%{_includedir}/caml
206 # but leave compatibility symlink
207 ln -s ../../include/caml $RPM_BUILD_ROOT%{_libdir}/ocaml/caml
209 # compiled sources of compiler, needed by some programs
210 for f in %{?with_ocaml_opt:asmcomp} bytecomp parsing typing utils ; do
211 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
212 cp $f/*.{cmi,cmo} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
213 %{?with_ocaml_opt:cp $f/*.{cmx,o} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f}
216 cp -r examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
217 ln -sf %{_libdir}/%{name}/{scrape,add}labels $RPM_BUILD_ROOT%{_bindir}
220 %{__rm} -r $RPM_BUILD_ROOT%{_mandir}/man3
223 cp -p infoman/ocaml.info $RPM_BUILD_ROOT%{_infodir}
224 cp -p infoman/ocaml.info.body-*.gz $RPM_BUILD_ROOT%{_infodir}
227 rm -rf $RPM_BUILD_ROOT
229 %post doc-info -p /sbin/postshell
230 -/usr/sbin/fix-info-dir -c %{_infodir}
232 %postun doc-info -p /sbin/postshell
233 -/usr/sbin/fix-info-dir -c %{_infodir}
236 %defattr(644,root,root,755)
237 %doc Changes LICENSE README.adoc
238 %attr(755,root,root) %{_bindir}/addlabels
239 %attr(755,root,root) %{_bindir}/ocaml
240 %attr(755,root,root) %{_bindir}/ocamlc
241 %attr(755,root,root) %{_bindir}/ocamlc.byte
242 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlc.opt}
243 %attr(755,root,root) %{_bindir}/ocamlcmt
244 %attr(755,root,root) %{_bindir}/ocamlcp
245 %attr(755,root,root) %{_bindir}/ocamlcp.byte
246 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlcp.opt}
247 %attr(755,root,root) %{_bindir}/ocamldebug
248 %attr(755,root,root) %{_bindir}/ocamldep
249 %attr(755,root,root) %{_bindir}/ocamldep.byte
250 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamldep.opt}
251 %attr(755,root,root) %{_bindir}/ocamldoc
252 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamldoc.opt}
253 %attr(755,root,root) %{_bindir}/ocamllex
254 %attr(755,root,root) %{_bindir}/ocamllex.byte
255 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamllex.opt}
256 %attr(755,root,root) %{_bindir}/ocamlmklib
257 %attr(755,root,root) %{_bindir}/ocamlmklib.byte
258 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlmklib.opt}
259 %attr(755,root,root) %{_bindir}/ocamlmktop
260 %attr(755,root,root) %{_bindir}/ocamlmktop.byte
261 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlmktop.opt}
262 %attr(755,root,root) %{_bindir}/ocamlobjinfo
263 %attr(755,root,root) %{_bindir}/ocamlobjinfo.byte
264 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlobjinfo.opt}
265 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlopt}
266 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlopt.byte}
267 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlopt.opt}
268 %attr(755,root,root) %{_bindir}/ocamloptp
269 %attr(755,root,root) %{_bindir}/ocamloptp.byte
270 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamloptp.opt}
271 %attr(755,root,root) %{_bindir}/ocamlprof
272 %attr(755,root,root) %{_bindir}/ocamlprof.byte
273 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlprof.opt}
274 %attr(755,root,root) %{_bindir}/ocamlyacc
275 %attr(755,root,root) %{_bindir}/scrapelabels
277 %{_libdir}/%{name}/caml
278 %dir %{_libdir}/%{name}/compiler-libs
279 %{_libdir}/%{name}/compiler-libs/*.cm*
280 %{_libdir}/%{name}/compiler-libs/ocaml*.a
281 %{?with_ocaml_opt:%{_libdir}/%{name}/compiler-libs/*.o}
282 %dir %{_libdir}/%{name}/ocamldoc
283 %{_libdir}/%{name}/ocamldoc/*.hva
284 %dir %{_libdir}/%{name}/threads
285 %{_libdir}/%{name}/threads/*.cm*
286 %{_libdir}/%{name}/threads/threads.a
287 %{_libdir}/%{name}/*.a
288 %{?with_ocaml_opt:%{_libdir}/%{name}/*.o}
289 %{_libdir}/%{name}/*.cm*
290 %{_libdir}/%{name}/Makefile.config
291 %{_libdir}/%{name}/ld.conf
292 %{_libdir}/%{name}/camlheader
293 %{_libdir}/%{name}/camlheaderd
294 %{_libdir}/%{name}/camlheaderi
295 %{_libdir}/%{name}/camlheader_ur
296 %attr(755,root,root) %{_libdir}/%{name}/expunge
297 %attr(755,root,root) %{_libdir}/%{name}/extract_crc
298 %{_mandir}/man1/ocaml.1*
299 %{_mandir}/man1/ocamlc.1*
300 %{?with_ocaml_opt:%{_mandir}/man1/ocamlc.opt.1*}
301 %{_mandir}/man1/ocamlcp.1*
302 %{_mandir}/man1/ocamldebug.1*
303 %{_mandir}/man1/ocamldep.1*
304 %{_mandir}/man1/ocamldoc.1*
305 %{_mandir}/man1/ocamllex.1*
306 %{_mandir}/man1/ocamlmktop.1*
307 %{?with_ocaml_opt:%{_mandir}/man1/ocamlopt.1*}
308 %{?with_ocaml_opt:%{_mandir}/man1/ocamlopt.opt.1*}
309 %{_mandir}/man1/ocamloptp.1*
310 %{_mandir}/man1/ocamlprof.1*
311 %{_mandir}/man1/ocamlyacc.1*
314 %defattr(644,root,root,755)
315 %attr(755,root,root) %{_bindir}/ocamlrun
316 %attr(755,root,root) %{_bindir}/ocamlrund
317 %attr(755,root,root) %{_bindir}/ocamlruni
318 %dir %{_libdir}/%{name}
319 %{_libdir}/%{name}/eventlog_metadata
320 %{?with_ocaml_opt:%attr(755,root,root) %{_libdir}/%{name}/libasmrun_shared.so}
321 %dir %{_libdir}/%{name}/stublibs
322 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dllcamlstr.so
323 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dllthreads.so
324 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dllunix.so
325 %attr(755,root,root) %{_libdir}/%{name}/libcamlrun_shared.so
326 %{_mandir}/man1/ocamlrun.1*
329 %defattr(644,root,root,755)
330 %{_libdir}/%{name}/*.ml
331 %{_libdir}/%{name}/*.mli
332 %{_libdir}/%{name}/compiler-libs/*.mli
333 %{_libdir}/%{name}/ocamldoc/*.mli
334 %{_libdir}/%{name}/threads/*.mli
337 %defattr(644,root,root,755)
338 %doc docs/html/ocaml/*
341 %defattr(644,root,root,755)
342 %{_infodir}/ocaml.info*
344 %files compiler-objects
345 %defattr(644,root,root,755)
346 %{_libdir}/%{name}/compiler
348 %files ocamldoc-devel
349 %defattr(644,root,root,755)
350 %{_libdir}/%{name}/ocamldoc/*.cm*
351 %{?with_ocaml_opt:%{_libdir}/%{name}/ocamldoc/*.a}
354 %defattr(644,root,root,755)
355 %{_examplesdir}/%{name}-%{version}