# ppc64, sparc64 and x32 variants not supported currently
# alpha, hppa, ia64, mips removed since 4.00
-%ifnarch %{ix86} %{x8664} arm aarch64 ppc sparc sparcv9
+%ifnarch %{ix86} %{x8664} %{arm} aarch64 ppc sparc sparcv9
%undefine with_ocaml_opt
%endif
Summary(pl.UTF-8): Kompilator OCamla (Objective Caml) oraz środowisko programistyczne
Name: ocaml
Version: 4.12.0
-Release: 0.1
+Release: 5
Epoch: 1
License: QPL v1.0 with linking exception (compiler), LGPL v2 with linking exception (library)
Group: Development/Languages
# note: dead URL
Source5: http://www.ocaml.info/ocaml_sources/ds-contrib.tar.gz
# Source5-md5: 77fa1da7375dea1393cc0b6cd802d7e1
+Patch0: %{name}-10266.patch
+Patch1: %{name}-info.patch
URL: https://www.ocaml.org/
Requires: %{name}-runtime = %{epoch}:%{version}-%{release}
Provides: ocaml-bytes-devel
Provides: ocaml-ocamldoc
-Obsoletes: ocaml-bytes-devel
-Obsoletes: ocaml-doc-ps < 4.12
-Obsoletes: ocaml-emacs < 4.12
-Obsoletes: ocaml-ocamldoc
-Obsoletes: ocaml-x11graphics < 4.12
-Obsoletes: ocaml-x11graphics-devel < 4.12
+Obsoletes: ocaml-bytes-devel < 1.4
+Obsoletes: ocaml-doc-ps < 1:4.12
+Obsoletes: ocaml-emacs < 1:4.12
+Obsoletes: ocaml-ocamldoc <= pre4
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define specflags -fno-strict-aliasing
+%if %{without ocaml_opt}
+%define _noautoreq Backend_intf Inlining_decision_intf Simplify_boxed_integer_ops_intf
+%endif
+
%description
Objective Caml is a high-level, strongly-typed, functional and
object-oriented programming language from the ML family of languages.
Group: Development/Languages
Requires: %{name} = %{epoch}:%{version}-%{release}
Provides: ocaml-devel
-Obsoletes: ocaml-devel
+Obsoletes: ocaml-devel < 3.06-3
%description compiler-objects
This package contains *.cmi and *.cmo files being parts of OCaml
%prep
%setup -q -a1 -a3
+%patch0 -p1
+gunzip infoman/ocaml.info.gz
+%patch1 -p1
+
mkdir examples
tar xzf %{SOURCE4} -C examples
tar xzf %{SOURCE5} -C examples
# order mess with docs somewhat
mkdir -p docs/html
-mv htmlman docs/html/ocaml
+%{__mv} htmlman docs/html/ocaml
%build
%configure \
AS=%{__as} \
ASPP="%{__cc} -c" \
- --libdir=%{_libdir}/ocaml
-
-%{__make} -j1 world bootstrap %{?with_ocaml_opt:opt.opt}
+ --libdir=%{_libdir}/ocaml \
+ %{!?with_ocaml_opt:--disable-native-compiler}
+
+%{__make} world
+%{__make} bootstrap
+%if %{with ocaml_opt}
+%{__make} opt
+%{__make} opt.opt
+%endif
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{%{_includedir},%{_infodir},%{_examplesdir}/%{name}-%{version}}
-install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/site-lib
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
ln -s ../../include/caml $RPM_BUILD_ROOT%{_libdir}/ocaml/caml
# compiled sources of compiler, needed by some programs
-for f in {asm,byte}comp parsing typing utils ; do
+for f in %{?with_ocaml_opt:asmcomp} bytecomp parsing typing utils ; do
install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
cp $f/*.{cmi,cmo} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f
%{?with_ocaml_opt:cp $f/*.{cmx,o} $RPM_BUILD_ROOT%{_libdir}/%{name}/compiler/$f}
%{__rm} -r $RPM_BUILD_ROOT%{_mandir}/man3
# install info pages
-cp -f infoman/*.gz $RPM_BUILD_ROOT%{_infodir}
+cp -p infoman/ocaml.info $RPM_BUILD_ROOT%{_infodir}
+cp -p infoman/ocaml.info.body-*.gz $RPM_BUILD_ROOT%{_infodir}
%clean
rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_bindir}/scrapelabels
%{_includedir}/caml
%{_libdir}/%{name}/caml
-%{_libdir}/%{name}/compiler-libs
-%{_libdir}/%{name}/threads
+%dir %{_libdir}/%{name}/compiler-libs
+%{_libdir}/%{name}/compiler-libs/*.cm*
+%{_libdir}/%{name}/compiler-libs/ocaml*.a
+%{?with_ocaml_opt:%{_libdir}/%{name}/compiler-libs/*.o}
+%dir %{_libdir}/%{name}/ocamldoc
+%{_libdir}/%{name}/ocamldoc/*.hva
+%dir %{_libdir}/%{name}/threads
+%{_libdir}/%{name}/threads/*.cm*
+%{_libdir}/%{name}/threads/threads.a
%{_libdir}/%{name}/*.a
%{?with_ocaml_opt:%{_libdir}/%{name}/*.o}
%{_libdir}/%{name}/*.cm*
%{_libdir}/%{name}/camlheaderd
%{_libdir}/%{name}/camlheaderi
%{_libdir}/%{name}/camlheader_ur
-%dir %{_libdir}/%{name}/ocamldoc
-%{_libdir}/%{name}/ocamldoc/*.hva
%attr(755,root,root) %{_libdir}/%{name}/expunge
%attr(755,root,root) %{_libdir}/%{name}/extract_crc
-%{_mandir}/man1/ocaml*
-%exclude %{_mandir}/man1/ocamlrun.1*
+%{_mandir}/man1/ocaml.1*
+%{_mandir}/man1/ocamlc.1*
+%{?with_ocaml_opt:%{_mandir}/man1/ocamlc.opt.1*}
+%{_mandir}/man1/ocamlcp.1*
+%{_mandir}/man1/ocamldebug.1*
+%{_mandir}/man1/ocamldep.1*
+%{_mandir}/man1/ocamldoc.1*
+%{_mandir}/man1/ocamllex.1*
+%{_mandir}/man1/ocamlmktop.1*
+%{?with_ocaml_opt:%{_mandir}/man1/ocamlopt.1*}
+%{?with_ocaml_opt:%{_mandir}/man1/ocamlopt.opt.1*}
+%{_mandir}/man1/ocamloptp.1*
+%{_mandir}/man1/ocamlprof.1*
+%{_mandir}/man1/ocamlyacc.1*
%files runtime
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/ocamlrund
%attr(755,root,root) %{_bindir}/ocamlruni
%dir %{_libdir}/%{name}
-%dir %{_libdir}/%{name}/site-lib
-%dir %{_libdir}/%{name}/stublibs
%{_libdir}/%{name}/eventlog_metadata
-%attr(755,root,root) %{_libdir}/%{name}/stublibs/dll*.so
%{?with_ocaml_opt:%attr(755,root,root) %{_libdir}/%{name}/libasmrun_shared.so}
+%dir %{_libdir}/%{name}/stublibs
+%attr(755,root,root) %{_libdir}/%{name}/stublibs/dllcamlstr.so
+%attr(755,root,root) %{_libdir}/%{name}/stublibs/dllthreads.so
+%attr(755,root,root) %{_libdir}/%{name}/stublibs/dllunix.so
%attr(755,root,root) %{_libdir}/%{name}/libcamlrun_shared.so
%{_mandir}/man1/ocamlrun.1*
%defattr(644,root,root,755)
%{_libdir}/%{name}/*.ml
%{_libdir}/%{name}/*.mli
-%{_libdir}/%{name}/*/*.mli
+%{_libdir}/%{name}/compiler-libs/*.mli
+%{_libdir}/%{name}/ocamldoc/*.mli
+%{_libdir}/%{name}/threads/*.mli
%files doc-html
%defattr(644,root,root,755)