3 %bcond_without ocaml_opt # native optimized binaries (bytecode is always built)
4 %bcond_without coq # coq menhir library
6 # not yet available on x32 (ocaml 4.02.1), update when upstream will support it
7 %ifnarch %{ix86} %{x8664} %{arm} aarch64 ppc sparc sparcv9
8 %undefine with_ocaml_opt
12 %if %{without ocaml_opt}
13 %define _enable_debug_packages 0
17 Summary: LR(1) parser generator for the OCaml programming language
18 Summary(pl.UTF-8): Generator parserów LR(1) dla języka programowania OCaml
22 License: GPL v2 (generator), LGPL v2 with linking exception (library)
24 Source0: https://gitlab.inria.fr/fpottier/menhir/-/archive/%{version}/menhir-%{version}.tar.bz2
25 # Source0-md5: 1a0388baec7a5ba7c931e074d2c322d7
26 URL: http://gallium.inria.fr/~fpottier/menhir/
27 %{?with_coq:BuildRequires: coq}
28 BuildRequires: ocaml >= 3.04-7
29 BuildRequires: ocaml-dune
30 %requires_eq ocaml-runtime
31 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
34 Menhir is a LR(1) parser generator for the OCaml programming language.
35 That is, Menhir compiles LR(1) grammar specifications down to OCaml
38 Menhir is 90% compatible with ocamlyacc. Legacy ocamlyacc grammar
39 specifications are accepted and compiled by Menhir. The resulting
40 parsers run and produce correct parse trees. However, parsers that
41 explicitly invoke functions in module Parsing behave slightly
42 incorrectly. For instance, the functions that provide access to
43 positions return a dummy position when invoked by a Menhir parser.
44 Porting a grammar specification from ocamlyacc to Menhir requires
45 replacing all calls to module Parsing with new Menhir-specific
48 %description -l pl.UTF-8
49 Menhir to generator parserów LR(1) dla języka programownia OCaml.
50 Oznacza to, że Menhir kompiluje specyfikacje gramatyk LR(1) do kodu w
53 Menhir jest w 90% zgodny z ocamlyacc. Tradycyjne specyfikacje gramatyk
54 ocamlyacca są akceptowane i kompilowane przez Menhira. Wynikowe
55 parsery działają i tworzą poprawne drzewa analizy - jednak parsery
56 jawnie wywołujące funkcje z modułu Parsing zachowują się nie do końca
57 popeawnie. Na przykład funkcje dające dostęp do pozycji w przypadku
58 wywołania z parsera Menhir zwracają pozycję pustą. Przekładanie
59 specyfikacji gramatyki z ocamlyacca na Menhira wymaga zastąpienia
60 wszystkich wywołań modułu Parsing nowymi słowami kluczowymi
61 specyficznymi dla modułu Menhir.
64 Summary: Development part of OCaml Menhir library
65 Summary(pl.UTF-8): Programistyczna część biblioteki OCamla Menhir
66 Group: Development/Libraries
67 Requires: %{name} = %{version}-%{release}
71 This package contains files needed to develop OCaml programs using
75 Ten pakiet zawiera pliki potrzebne do tworzenia programów w OCamlu
76 używających biblioteki menhir.
78 %package -n coq-menhirlib
79 Summary: Support library for verified Coq parsers produced by Menhir
80 Summary(pl.UTF-8): Biblioteka wspierająca dla wygenerowanych przez Menhira parserów weryfikowanych przez Coq
84 %description -n coq-menhirlib
85 The Menhir parser generator, in --coq mode, can produce Coq parsers.
86 These parsers must be linked against this library, which provides both
87 an interpreter (which allows running the generated parser) and a
88 validator (which allows verifying, at parser construction time, that
89 the generated parser is correct and complete with respect to the
92 %description -n coq-menhirlib -l pl.UTF-8
93 Generator parserów Menhir w trybie --coq potrafi tworzyć parsery Coq.
94 Parsery te muszą być konsolidowane z tą biblioteką, zapewniającą
95 zarówno interpreter (pozwalający uruchamiać wygenerowane parsery), jak
96 i walidator (pozwalający na weryfikowanie w trakcie konstruowania
97 parsera, czy wygenerowany parser jest poprawny i kompletny względem
101 %setup -q -n %{module}-%{version}
104 dune build --verbose %{?_smp_mflags}
107 %{__make} -C coq-menhirlib \
112 rm -rf $RPM_BUILD_ROOT
116 --destdir=$RPM_BUILD_ROOT
119 %{__make} -C coq-menhirlib install \
120 DESTDIR=$RPM_BUILD_ROOT
124 %{__rm} $RPM_BUILD_ROOT%{_libdir}/ocaml/{menhirLib,menhirSdk}/*.ml
126 %{__rm} -r $RPM_BUILD_ROOT%{_prefix}/doc/{menhir*,coq-menhirlib}
128 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/ocaml/coq-menhirlib
132 rm -rf $RPM_BUILD_ROOT
135 %defattr(644,root,root,755)
136 %doc LICENSE doc/manual.pdf
137 %attr(755,root,root) %{_bindir}/menhir
138 %dir %{_libdir}/ocaml/menhir
139 %{_libdir}/ocaml/menhir/META
140 %dir %{_libdir}/ocaml/menhirLib
141 %{_libdir}/ocaml/menhirLib/META
142 %{_libdir}/ocaml/menhirLib/*.cma
143 %dir %{_libdir}/ocaml/menhirSdk
144 %{_libdir}/ocaml/menhirSdk/META
145 %{_libdir}/ocaml/menhirSdk/*.cma
146 %if %{with ocaml_opt}
147 %attr(755,root,root) %{_libdir}/ocaml/menhirLib/*.cmxs
148 %attr(755,root,root) %{_libdir}/ocaml/menhirSdk/*.cmxs
150 %{_mandir}/man1/menhir.1*
153 %defattr(644,root,root,755)
154 %{_libdir}/ocaml/menhir/dune-package
155 %{_libdir}/ocaml/menhirLib/dune-package
156 %{_libdir}/ocaml/menhirLib/*.cmi
157 %{_libdir}/ocaml/menhirLib/*.cmt
158 %{_libdir}/ocaml/menhirLib/*.cmti
159 %{_libdir}/ocaml/menhirLib/*.mli
160 %{_libdir}/ocaml/menhirSdk/dune-package
161 %{_libdir}/ocaml/menhirSdk/*.cmi
162 %{_libdir}/ocaml/menhirSdk/*.cmt
163 %{_libdir}/ocaml/menhirSdk/*.cmti
164 %{_libdir}/ocaml/menhirSdk/*.mli
165 %if %{with ocaml_opt}
166 %{_libdir}/ocaml/menhirLib/*.a
167 %{_libdir}/ocaml/menhirLib/*.cmx
168 %{_libdir}/ocaml/menhirLib/*.cmxa
169 %{_libdir}/ocaml/menhirSdk/*.a
170 %{_libdir}/ocaml/menhirSdk/*.cmx
171 %{_libdir}/ocaml/menhirSdk/*.cmxa
175 %files -n coq-menhirlib
176 %defattr(644,root,root,755)
177 %doc coq-menhirlib/{CHANGES.md,LICENSE,README.md}
178 %dir %{_libdir}/ocaml/coq-menhirlib
179 %{_libdir}/ocaml/coq-menhirlib/META
180 %{_libdir}/ocaml/coq-menhirlib/dune-package
181 %{_libdir}/coq/user-contrib/MenhirLib