3 %bcond_without ocaml_opt # skip building native optimized binaries (bytecode is always built)
5 # not yet available on x32 (ocaml 4.02.1), update when upstream will support it
6 %ifnarch %{ix86} %{x8664} %{arm} aarch64 ppc sparc sparcv9
7 %undefine with_ocaml_opt
10 %if %{without ocaml_opt}
11 %define _enable_debug_packages 0
13 %define _debugsource_packages 0
15 Summary: Objective Caml Preprocessor
16 Summary(pl.UTF-8): Preprocesor OCamla
20 License: distributable
21 Group: Development/Languages
22 #Source0Download: https://github.com/camlp5/camlp5/releases
23 Source0: https://github.com/camlp5/camlp5/archive/rel%{version}/%{name}-%{version}.tar.gz
24 # Source0-md5: 096076be4b26034643508511e834ccc2
25 Patch0: no-warn-error.patch
26 Patch1: %{name}-flags.patch
27 URL: https://camlp5.github.io/
28 BuildRequires: db-devel >= 4.1
30 BuildRequires: ocaml-ocamlbuild
31 %requires_eq ocaml-runtime
32 Requires: %{name} = %{epoch}:%{version}-%{release}
33 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
36 Camlp5 is a Pre-Processor-Pretty-Printer for Objective Caml. It offers
37 tools for syntax (grammars) and the ability to modify the concrete
38 syntax of the language (quotations, syntax extensions).
40 Camlp5 can parse normal Ocaml concrete syntax or any other
41 user-definable syntax. As an example, an alternative syntax is
42 provided, named revised, because it tries to fix some small problems
45 Camlp5 can pretty print the normal Ocaml concrete syntax or the
46 revised one. It is therefore always possible to have a version of your
47 sources compilable by the Objective Caml compiler without
50 %description -l pl.UTF-8
51 Camlp5 jest preprocesorem OCamla. Oferuje narzędzia do manipulowania
52 składnią (gramatyki) oraz możliwość modyfikowania oryginalnej składni
53 języka (cytowania, rozszerzenia).
55 Camlp5 może sparsować oryginalną składnię Ocamla lub dowolną inną
56 definiowalną przez użytkownika. Jako przykład podana jest alternatywna
57 składnia (revised syntax), która próbuje poprawić drobne problemy
58 występujące w składni oryginalnej.
60 Camlp5 umie ładnie formatować źródła zarówno w oryginalnej jak i
61 poprawionej składni OCamla. Potrafi także tłumaczyć programy z jednej
65 Summary: Objective Caml Preprocessor - HTML documentation
66 Summary(pl.UTF-8): Preprocesor OCamla - dokumentacja HTML
67 Group: Development/Languages
70 Objective Caml Preprocessor - HTML documentation.
72 %description doc-html -l pl.UTF-8
73 Preprocesor OCamla - dokumentacja HTML.
76 Summary: Objective Caml Preprocessor - PDF documentation
77 Summary(pl.UTF-8): Preprocesor OCamla - dokumentacja w formacie PDF
78 Group: Development/Languages
81 Objective Caml Preprocessor - PDF documentation.
83 %description doc-pdf -l pl.UTF-8
84 Preprocesor OCamla - dokumentacja w formacie PDF.
87 %setup -q -n %{name}-rel%{version}
91 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+perl(\s|$),#!%{__perl}\1,' \
94 %{__sed} -i -e 's/DEBUG=/&-ccopt "%{rpmcflags}" -cclib "%{rpmldflags}"/' config/Makefile.tpl
100 -libdir %{_libdir}/ocaml \
101 -mandir %{_mandir}/man1
103 %{__make} -j1 world%{?with_ocaml_opt:.opt}
105 %{__make} -j1 -C doc/htmlp pdf
108 rm -rf $RPM_BUILD_ROOT
111 BINDIR=$RPM_BUILD_ROOT%{_bindir} \
112 LIBDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml \
113 MANDIR=$RPM_BUILD_ROOT%{_mandir}
115 # broken build system
116 for f in mkcamlp5.1 ocpp5.1 camlp5o.1 camlp5r.1 camlp5sch.1 \
117 %{?with_ocaml_opt:camlp5o.opt.1 camlp5r.opt.1 mkcamlp5.opt.1} ; do
118 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/$f
119 echo '.so camlp5.1' >$RPM_BUILD_ROOT%{_mandir}/man1/$f
123 rm -rf $RPM_BUILD_ROOT
126 %defattr(644,root,root,755)
127 %doc CHANGES DEVEL ICHANGES MODE README.md UPGRADING
128 %attr(755,root,root) %{_bindir}/camlp5*
129 %attr(755,root,root) %{_bindir}/mkcamlp5*
130 %attr(755,root,root) %{_bindir}/ocpp5
131 %{_libdir}/ocaml/%{name}
132 %{_mandir}/man1/camlp5*.1*
133 %{_mandir}/man1/mkcamlp5*.1*
134 %{_mandir}/man1/ocpp5.1*
137 %defattr(644,root,root,755)
141 %defattr(644,root,root,755)
142 %doc doc/htmlp/camlp5.pdf