]>
Commit | Line | Data |
---|---|---|
1 | # | |
2 | # Conditional build: | |
3 | %bcond_without ocaml_opt # skip building native optimized binaries (bytecode is always built) | |
4 | ||
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 | |
8 | %endif | |
9 | ||
10 | %if %{without ocaml_opt} | |
11 | %define _enable_debug_packages 0 | |
12 | %endif | |
13 | %define _debugsource_packages 0 | |
14 | ||
15 | Summary: Objective Caml Preprocessor | |
16 | Summary(pl.UTF-8): Preprocesor OCamla | |
17 | Name: camlp5 | |
18 | Version: 8.00.02 | |
19 | Release: 2 | |
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 | |
29 | BuildRequires: ocaml | |
30 | BuildRequires: ocaml-ocamlbuild | |
31 | %requires_eq ocaml-runtime | |
32 | Requires: %{name} = %{epoch}:%{version}-%{release} | |
33 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
34 | ||
35 | %description | |
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). | |
39 | ||
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 | |
43 | of the normal syntax. | |
44 | ||
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 | |
48 | preprocessing. | |
49 | ||
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). | |
54 | ||
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. | |
59 | ||
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 | |
62 | składni na drugą. | |
63 | ||
64 | %package doc-html | |
65 | Summary: Objective Caml Preprocessor - HTML documentation | |
66 | Summary(pl.UTF-8): Preprocesor OCamla - dokumentacja HTML | |
67 | Group: Development/Languages | |
68 | ||
69 | %description doc-html | |
70 | Objective Caml Preprocessor - HTML documentation. | |
71 | ||
72 | %description doc-html -l pl.UTF-8 | |
73 | Preprocesor OCamla - dokumentacja HTML. | |
74 | ||
75 | %package doc-pdf | |
76 | Summary: Objective Caml Preprocessor - PDF documentation | |
77 | Summary(pl.UTF-8): Preprocesor OCamla - dokumentacja w formacie PDF | |
78 | Group: Development/Languages | |
79 | ||
80 | %description doc-pdf | |
81 | Objective Caml Preprocessor - PDF documentation. | |
82 | ||
83 | %description doc-pdf -l pl.UTF-8 | |
84 | Preprocesor OCamla - dokumentacja w formacie PDF. | |
85 | ||
86 | %prep | |
87 | %setup -q -n %{name}-rel%{version} | |
88 | %patch0 -p1 | |
89 | %patch1 -p1 | |
90 | ||
91 | %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+perl(\s|$),#!%{__perl}\1,' \ | |
92 | etc/mkcamlp5.pl | |
93 | ||
94 | %{__sed} -i -e 's/DEBUG=/&-ccopt "%{rpmcflags}" -cclib "%{rpmldflags}"/' config/Makefile.tpl | |
95 | ||
96 | %build | |
97 | ./configure \ | |
98 | -prefix %{_prefix} \ | |
99 | -bindir %{_bindir} \ | |
100 | -libdir %{_libdir}/ocaml \ | |
101 | -mandir %{_mandir}/man1 | |
102 | ||
103 | %{__make} -j1 world%{?with_ocaml_opt:.opt} | |
104 | ||
105 | %{__make} -j1 -C doc/htmlp pdf | |
106 | ||
107 | %install | |
108 | rm -rf $RPM_BUILD_ROOT | |
109 | ||
110 | %{__make} install \ | |
111 | BINDIR=$RPM_BUILD_ROOT%{_bindir} \ | |
112 | LIBDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml \ | |
113 | MANDIR=$RPM_BUILD_ROOT%{_mandir} | |
114 | ||
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 | |
120 | done | |
121 | ||
122 | %clean | |
123 | rm -rf $RPM_BUILD_ROOT | |
124 | ||
125 | %files | |
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* | |
135 | ||
136 | %files doc-html | |
137 | %defattr(644,root,root,755) | |
138 | %doc doc/html/* | |
139 | ||
140 | %files doc-pdf | |
141 | %defattr(644,root,root,755) | |
142 | %doc doc/htmlp/camlp5.pdf |