3 %bcond_without emacs # emacs subpackage
4 %bcond_without x # X11 support
5 %bcond_without ocaml_opt # native, optimized compiler
7 # ppc64, sparc64 and x32 variants not supported currently
8 # alpha, hppa, ia64, mips removed since 4.00
9 %ifnarch %{ix86} %{x8664} arm aarch64 ppc sparc sparcv9
10 %undefine with_ocaml_opt
15 Summary: The Objective Caml compiler and programming environment
16 Summary(pl.UTF-8): Kompilator OCamla (Objective Caml) oraz środowisko programistyczne
21 License: QPL v1.0 with linking exception (compiler), LGPL v2 with linking exception (library)
22 Group: Development/Languages
23 Source0: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{version}.tar.xz
24 # Source0-md5: a453ab62931776a78ba761112db9e00b
25 Source1: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman-html.tar.gz
26 # Source1-md5: 915a1949f7af7186e16354e9682dc1e5
27 Source2: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman.ps.gz
28 # Source2-md5: e85016fa23b6525d1d10da06010fd90a
29 Source3: http://caml.inria.fr/distrib/%{name}-%{sver}/%{name}-%{sver}-refman.info.tar.gz
30 # Source3-md5: 265b7db123e925e8b7b70ca2266b4206
31 Source4: https://github.com/mmottl/pure-fun/archive/v1.0.13/pure-fun-1.0.13.tar.gz
32 # Source4-md5: 0a6ff033df78d0880fe4883ace025ebe
34 Source5: http://www.ocaml.info/ocaml_sources/ds-contrib.tar.gz
35 # Source5-md5: 77fa1da7375dea1393cc0b6cd802d7e1
36 Patch1: %{name}-CFLAGS.patch
37 Patch2: %{name}-as_needed.patch
39 URL: http://caml.inria.fr/
40 %{?with_x:BuildRequires: xorg-lib-libX11-devel}
42 BuildRequires: sed >= 4.0
44 BuildRequires: emacs-common
46 Requires: %{name}-runtime = %{epoch}:%{version}-%{release}
47 Provides: ocaml-bytes-devel
48 Provides: ocaml-ocamldoc
49 Obsoletes: ocaml-ocamldoc
50 Obsoletes: ocaml-bytes-devel
51 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
53 %define specflags -fno-strict-aliasing
56 Objective Caml is a high-level, strongly-typed, functional and
57 object-oriented programming language from the ML family of languages.
59 This package comprises two batch compilers (a fast bytecode compiler
60 and an optimizing native-code compiler), an interactive toplevel
61 system, Lex&Yacc tools, a replay debugger, and a comprehensive
64 %description -l pl.UTF-8
65 OCaml (Objective Caml) jest funkcyjnym, obiektowo zorientowanym
66 językiem wysokiego poziomu z silnym typowaniem. Należy do rodziny
69 Ten pakiet zawiera dwa kompilatory (szybki kompilator do bajtkodu
70 oraz optymalizujący kompilator do kodu natywnego), interaktywne
71 środowisko pracy, narzędzia do tworzenia analizatorów leksykalnych
72 oraz składniowych (ocamllex, ocamlyacc), odpluskwiacz (ocamldebug) i
76 Summary: Runtime system for OCaml
77 Summary(pl.UTF-8): Środowisko uruchomieniowe dla OCamla
81 This package contains binaries needed to run bytecode OCaml programs:
82 ocamlrun bytecode interpreter, and basic dynamic link libraries.
84 %description runtime -l pl.UTF-8
85 Pakiet ten zawiera binaria potrzebne do uruchamiania programów w
86 OCamlu skompilowanych do bajtkodu: interpreter bajtkodu (ocamlrun)
87 oraz podstawowe biblioteki linkowane dynamicznie.
90 Summary: Sources of OCaml standard library
91 Summary(pl.UTF-8): Źródła biblioteki standardowej OCamla
92 Group: Development/Languages
93 Requires: %{name} = %{epoch}:%{version}-%{release}
95 %description lib-source
96 This sources come helpful during debugging of user programs with
99 %description lib-source -l pl.UTF-8
100 Źródła te są przydatne przy odpluskwianiu programów użytkownika
101 z użyciem ocamldebug.
104 Summary: HTML documentation for OCaml
105 Summary(pl.UTF-8): Dokumentacja dla OCamla w formacie HTML
106 Group: Development/Tools
108 %description doc-html
109 HTML documentation for OCaml.
111 %description doc-html -l pl.UTF-8
112 Dokumentacja dla OCamla w formacie HTML.
115 Summary: PostScript documentation for OCaml
116 Summary(pl.UTF-8): Dokumentacja dla OCamla w formacie PostScript
117 Group: Development/Tools
120 PostScript documentation for OCaml.
122 %description doc-ps -l pl.UTF-8
123 Dokumentacja dla OCamla w formacie PostScript.
126 Summary: Info documentation for OCaml
127 Summary(pl.UTF-8): Dokumentacja info dla OCamla
128 Group: Development/Tools
130 %description doc-info
131 Info documentation for OCaml.
133 %description doc-info -l pl.UTF-8
134 Dokumentacja info dla OCamla.
137 Summary: Emacs mode for OCaml
138 Summary(pl.UTF-8): Tryb OCamla dla Emacsa
139 Group: Development/Tools
140 Requires: %{name} = %{epoch}:%{version}-%{release}
143 Emacs mode files for Objective Caml language.
145 %description emacs -l pl.UTF-8
146 Pliki trybu OCamla dla Emacsa.
149 Summary: X11 graphic output for OCaml
150 Summary(pl.UTF-8): Dostęp do X11 dla OCamla
151 Group: Development/Libraries
152 Requires: %{name} = %{epoch}:%{version}-%{release}
154 %description x11graphics
155 x11graphics module gives OCaml program access to drawing in X11
156 windows. This package contains files needed to run bytecode OCaml
157 programs using x11graphics.
159 %description x11graphics -l pl.UTF-8
160 Moduł x11graphics daje programom napisanym w OCamlu możliwość
161 korzystania z interfejsu graficznego X11. Pakiet ten zawiera binaria
162 potrzebne do uruchamiania programów używających x11graphics.
164 %package x11graphics-devel
165 Summary: X11 graphic output for OCaml
166 Summary(pl.UTF-8): Dostęp do X11 dla OCamla
167 Group: Development/Libraries
168 Requires: %{name}-x11graphics = %{epoch}:%{version}-%{release}
170 %description x11graphics-devel
171 x11graphics module gives OCaml program access to drawing in X11
172 windows. This package contains files needed to develop OCaml programs
175 %description x11graphics-devel -l pl.UTF-8
176 Moduł x11graphics daje programom napisanym w OCamlu możliwość
177 korzystania z interfejsu graficznego X11. Pakiet ten zawiera pliki
178 niezbędne do tworzenia programów używających x11graphics.
180 %package compiler-objects
181 Summary: Compiled parts of OCaml compiler
182 Summary(pl.UTF-8): Skompilowane części kompilatora OCamla
183 Group: Development/Languages
184 Requires: %{name} = %{epoch}:%{version}-%{release}
185 Provides: ocaml-devel
186 Obsoletes: ocaml-devel
188 %description compiler-objects
189 This package contains *.cmi and *.cmo files being parts of OCaml
190 compiler. They are needed to compile some programs.
192 %description compiler-objects -l pl.UTF-8
193 Pakiet ten zawiera pliki *.cmi oraz *.cmo będące częściami kompilatora
194 OCamla. Są one wymagane do kompilacji niektórych programów.
196 %package ocamldoc-devel
197 Summary: Files needed to develop programs using ocamldoc
198 Summary(pl.UTF-8): Pliki potrzebne do tworzenia programów używających ocamldoc
199 Group: Development/Languages
200 Requires: %{name} = %{epoch}:%{version}-%{release}
202 %description ocamldoc-devel
203 You need this package if you are going to write ocamldoc front end or
206 %description ocamldoc-devel -l pl.UTF-8
207 Będziesz potrzebować tego pakietu, jeśli zamierzasz pisać front end
208 dla ocamldoc lub coś podobnego.
210 # maybe we'll want to add some more stuff here?
212 Summary: Example source code for OCaml
213 Summary(pl.UTF-8): Przykładowe kody źródłowe w OCamlu
214 Group: Development/Languages
215 Requires: %{name} = %{epoch}:%{version}-%{release}
217 %description examples
218 This packages contains sources for Okasaki's Purely Functional
219 Datastructures in OCaml, along with some contributions.
221 %description examples -l pl.UTF-8
222 Pakiet ten zawiera źródła Czysto Funkcyjnych Struktur Danych
223 autorstwa Okasaki'ego, napisane w OCamlu, wraz z dodatkami.
228 tar xzf %{SOURCE4} -C examples
229 tar xzf %{SOURCE5} -C examples
230 # order mess with docs somewhat
232 mv htmlman docs/html/ocaml
233 cp %{SOURCE2} docs/ocaml.ps.gz
239 cp -f /usr/share/automake/config.sub config/gnu
241 -host %{_target_platform} \
244 -libdir %{_libdir}/%{name} \
245 -mandir %{_mandir}/man1 \
249 %{__make} -j1 world bootstrap %{?with_ocaml_opt:opt.opt} \
250 CFLAGS="%{rpmcflags} -Wall -DUSE_INTERP_RESULT"
252 %{__make} -C tools objinfo \
253 CFLAGS="%{rpmcflags} -Wall -DUSE_INTERP_RESULT" -j1
256 rm -rf $RPM_BUILD_ROOT
257 install -d $RPM_BUILD_ROOT{%{_includedir},%{_infodir},%{_examplesdir}/%{name}-%{version}}
258 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/site-lib
261 BINDIR=$RPM_BUILD_ROOT%{_bindir} \
262 LIBDIR=$RPM_BUILD_ROOT%{_libdir}/%{name} \
263 MANDIR=$RPM_BUILD_ROOT%{_mandir}
265 cat > $RPM_BUILD_ROOT%{_libdir}/%{name}/ld.conf <<EOF
266 %{_libdir}/%{name}/stublibs
271 %{__make} -C emacs install \
272 DESTDIR=$RPM_BUILD_ROOT \
273 EMACSDIR="$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp" \
277 # symlink .opt versions of compilers (if present)
278 for f in ocamlc ocamlopt ocamldoc ocamllex; do
279 if test -f $RPM_BUILD_ROOT%{_bindir}/$f.opt; then
280 mv -f $RPM_BUILD_ROOT%{_bindir}/$f \
281 $RPM_BUILD_ROOT%{_bindir}/$f.byte
282 ln -sf %{_bindir}/$f.opt $RPM_BUILD_ROOT%{_bindir}/$f
286 # move includes to the proper place
287 mv -f $RPM_BUILD_ROOT%{_libdir}/%{name}/caml $RPM_BUILD_ROOT%{_includedir}/caml
288 # but leave compatibility symlink
289 ln -s ../../include/caml $RPM_BUILD_ROOT%{_libdir}/%{name}/caml
291 # compiled sources of compiler, needed by some programs
292 for f in {asm,byte}comp parsing typing utils ; do
293 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
294 cp $f/*.{cmi,cmo} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
295 %{?with_ocaml_opt:cp $f/*.{cmx,o} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f}
298 # this isn't installed by default, but is useful
299 install tools/objinfo $RPM_BUILD_ROOT%{_bindir}/ocamlobjinfo
300 cp -r examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
301 ln -sf %{_libdir}/%{name}/{scrape,add}labels $RPM_BUILD_ROOT%{_bindir}
304 %{__rm} -r $RPM_BUILD_ROOT%{_mandir}/man3
307 cp -f infoman/*.gz $RPM_BUILD_ROOT%{_infodir}
310 rm -rf $RPM_BUILD_ROOT
312 %post doc-info -p /sbin/postshell
313 -/usr/sbin/fix-info-dir -c %{_infodir}
315 %postun doc-info -p /sbin/postshell
316 -/usr/sbin/fix-info-dir -c %{_infodir}
319 %defattr(644,root,root,755)
320 %doc Changes LICENSE README
321 %attr(755,root,root) %{_bindir}/addlabels
322 %attr(755,root,root) %{_bindir}/ocaml
323 %attr(755,root,root) %{_bindir}/ocamlbuild*
324 %attr(755,root,root) %{_bindir}/ocamlc
325 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlc.*}
326 %attr(755,root,root) %{_bindir}/ocamlcp
327 %attr(755,root,root) %{_bindir}/ocamldebug
328 %attr(755,root,root) %{_bindir}/ocamldep*
329 %attr(755,root,root) %{_bindir}/ocamldoc*
330 %attr(755,root,root) %{_bindir}/ocamllex*
331 %attr(755,root,root) %{_bindir}/ocamlmklib
332 %attr(755,root,root) %{_bindir}/ocamlmktop
333 %attr(755,root,root) %{_bindir}/ocamlobjinfo
334 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlopt}
335 %{?with_ocaml_opt:%attr(755,root,root) %{_bindir}/ocamlopt.*}
336 %attr(755,root,root) %{_bindir}/ocamloptp
337 %attr(755,root,root) %{_bindir}/ocamlprof
338 %attr(755,root,root) %{_bindir}/ocamlyacc
339 %attr(755,root,root) %{_bindir}/scrapelabels
341 %{_libdir}/%{name}/caml
342 %{_libdir}/%{name}/compiler-libs
343 %{_libdir}/%{name}/threads
344 %dir %{_libdir}/%{name}/vmthreads
345 %dir %{_libdir}/%{name}/vmthreads/*.cm*
346 %dir %{_libdir}/%{name}/vmthreads/*.a
347 %{_libdir}/%{name}/*.a
348 %{?with_ocaml_opt:%{_libdir}/%{name}/*.o}
349 %{_libdir}/%{name}/*.cm*
350 %exclude %{_libdir}/%{name}/*graphics*
351 %{_libdir}/%{name}/Makefile.config
352 %{_libdir}/%{name}/ld.conf
353 %{_libdir}/%{name}/camlheader
354 %{_libdir}/%{name}/camlheader_ur
355 %{_libdir}/%{name}/ocamlbuild
356 %dir %{_libdir}/%{name}/ocamldoc
357 %{_libdir}/%{name}/ocamldoc/*.hva
358 %attr(755,root,root) %{_libdir}/%{name}/expunge
359 %attr(755,root,root) %{_libdir}/%{name}/extract_crc
360 %attr(755,root,root) %{_libdir}/%{name}/objinfo_helper
361 %{_mandir}/man1/ocaml*
362 %exclude %{_mandir}/man1/ocamlrun.1*
365 %defattr(644,root,root,755)
366 %attr(755,root,root) %{_bindir}/ocamlrun
367 %dir %{_libdir}/%{name}
368 %{_libdir}/%{name}/VERSION
369 %dir %{_libdir}/%{name}/site-lib
370 %dir %{_libdir}/%{name}/stublibs
371 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dll*.so
372 %exclude %{_libdir}/%{name}/stublibs/dllgraphics.so
373 %{?with_ocaml_opt:%attr(755,root,root) %{_libdir}/%{name}/libasmrun_shared.so}
374 %attr(755,root,root) %{_libdir}/%{name}/libcamlrun_shared.so
375 %{_mandir}/man1/ocamlrun.1*
378 %defattr(644,root,root,755)
379 %{_libdir}/%{name}/*.ml
380 %{_libdir}/%{name}/*.mli
381 %{_libdir}/%{name}/*/*.mli
384 %defattr(644,root,root,755)
385 %doc docs/html/ocaml/*
388 %defattr(644,root,root,755)
392 %defattr(644,root,root,755)
393 %{_infodir}/ocaml.info*
395 # they are poor, html is much better
401 %defattr(644,root,root,755)
402 %{_datadir}/emacs/site-lisp/*.el*
407 %defattr(644,root,root,755)
408 %attr(755,root,root) %{_libdir}/%{name}/stublibs/dllgraphics.so
410 %files x11graphics-devel
411 %defattr(644,root,root,755)
412 %{_libdir}/%{name}/graphics*.cm*
413 %{?with_ocaml_opt:%{_libdir}/%{name}/graphics.a}
414 %{_libdir}/%{name}/libgraphics.a
417 %files compiler-objects
418 %defattr(644,root,root,755)
419 %{_libdir}/%{name}/compiler
421 %files ocamldoc-devel
422 %defattr(644,root,root,755)
423 %{_libdir}/%{name}/ocamldoc/*.cm*
424 %{?with_ocaml_opt:%{_libdir}/%{name}/ocamldoc/*.a}
427 %defattr(644,root,root,755)
428 %{_examplesdir}/%{name}-%{version}