#
# Conditional build:
-%bcond_without ocaml_opt # skip building native optimized binaries (bytecode is always built)
-%bcond_without coq #
+%bcond_without ocaml_opt # native optimized binaries (bytecode is always built)
+%bcond_without coq # coq menhir library
# not yet available on x32 (ocaml 4.02.1), update when upstream will support it
-%ifnarch %{ix86} %{x8664} arm aarch64 ppc sparc sparcv9
+%ifnarch %{ix86} %{x8664} %{arm} aarch64 ppc sparc sparcv9
%undefine with_ocaml_opt
%undefine with_coq
%endif
Name: ocaml-%{module}
Version: 20210310
Release: 2
-License: GPL v2
+License: GPL v2 (generator), LGPL v2 with linking exception (library)
Group: Libraries
Source0: https://gitlab.inria.fr/fpottier/menhir/-/archive/%{version}/menhir-%{version}.tar.bz2
# Source0-md5: 1a0388baec7a5ba7c931e074d2c322d7
Summary: Menhir development part
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
-%requires_eq ocaml
+%requires_eq ocaml
%description devel
This package contains files needed to develop OCaml programs using
%package -n coq-menhirlib
Summary: Support library for verified Coq parsers produced by Menhir
-License: LGPLv3+
+License: LGPL v3+
Requires: coq
%description -n coq-menhirlib
dune build --verbose %{?_smp_mflags}
%if %{with coq}
-%{__make} -C coq-menhirlib
+%{__make} -C coq-menhirlib \
+ VERBOSE=1
%endif
%install
DESTDIR=$RPM_BUILD_ROOT
%endif
+# sources
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/ocaml/{menhirLib,menhirSdk}/*.ml
+# packaged as %doc
+%{__rm} -r $RPM_BUILD_ROOT%{_prefix}/doc/{menhir*,coq-menhirlib}
+%if %{without coq}
+%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/ocaml/coq-menhirlib
+%endif
+
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc doc/manual.pdf
+%doc LICENSE doc/manual.pdf
%attr(755,root,root) %{_bindir}/menhir
-%dir %{_libdir}/ocaml/%{module}*
-%{_libdir}/ocaml/%{module}*/*.cma
+%dir %{_libdir}/ocaml/menhir
+%{_libdir}/ocaml/menhir/META
+%dir %{_libdir}/ocaml/menhirLib
+%{_libdir}/ocaml/menhirLib/META
+%{_libdir}/ocaml/menhirLib/*.cma
+%dir %{_libdir}/ocaml/menhirSdk
+%{_libdir}/ocaml/menhirSdk/META
+%{_libdir}/ocaml/menhirSdk/*.cma
%if %{with ocaml_opt}
-%attr(755,root,root) %{_libdir}/ocaml/%{module}*/*.cmxs
+%attr(755,root,root) %{_libdir}/ocaml/menhirLib/*.cmxs
+%attr(755,root,root) %{_libdir}/ocaml/menhirSdk/*.cmxs
%endif
-%{_libdir}/ocaml/%{module}*/META
%{_mandir}/man1/menhir.1*
%files devel
%defattr(644,root,root,755)
-%doc LICENSE
-%{_libdir}/ocaml/%{module}*/*.cmi
-%{_libdir}/ocaml/%{module}*/*.cmt
-%{_libdir}/ocaml/%{module}*/*.cmti
-%{_libdir}/ocaml/%{module}*/*.mli
+%{_libdir}/ocaml/menhir/dune-package
+%{_libdir}/ocaml/menhirLib/dune-package
+%{_libdir}/ocaml/menhirLib/*.cmi
+%{_libdir}/ocaml/menhirLib/*.cmt
+%{_libdir}/ocaml/menhirLib/*.cmti
+%{_libdir}/ocaml/menhirLib/*.mli
+%{_libdir}/ocaml/menhirSdk/dune-package
+%{_libdir}/ocaml/menhirSdk/*.cmi
+%{_libdir}/ocaml/menhirSdk/*.cmt
+%{_libdir}/ocaml/menhirSdk/*.cmti
+%{_libdir}/ocaml/menhirSdk/*.mli
%if %{with ocaml_opt}
-%{_libdir}/ocaml/%{module}*/*.[ao]
-%{_libdir}/ocaml/%{module}*/*.cmx
-%{_libdir}/ocaml/%{module}*/*.cmxa
+%{_libdir}/ocaml/menhirLib/*.a
+%{_libdir}/ocaml/menhirLib/*.cmx
+%{_libdir}/ocaml/menhirLib/*.cmxa
+%{_libdir}/ocaml/menhirSdk/*.a
+%{_libdir}/ocaml/menhirSdk/*.cmx
+%{_libdir}/ocaml/menhirSdk/*.cmxa
%endif
-%{_libdir}/ocaml/%{module}*/dune-package
%if %{with coq}
%files -n coq-menhirlib
%defattr(644,root,root,755)
-%doc coq-menhirlib/CHANGES.md coq-menhirlib/README.md
+%doc coq-menhirlib/{CHANGES.md,LICENSE,README.md}
%dir %{_libdir}/ocaml/coq-menhirlib
%{_libdir}/ocaml/coq-menhirlib/META
%{_libdir}/ocaml/coq-menhirlib/dune-package