228b70d6b6081e1ddd0f4cb870b486e8eb4d056a
[packages/camlp5.git] / camlp5.spec
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 Summary:        Objective Caml Preprocessor
11 Summary(pl.UTF-8):      Preprocesor OCamla
12 Name:           camlp5
13 Version:        8.00
14 Release:        1
15 License:        distributable
16 Group:          Development/Languages
17 Source0:        https://github.com/camlp5/camlp5/archive/rel%{version}/%{name}-%{version}.tar.gz
18 # Source0-md5:  477cdfa2be786ebc37c75e280d3ee504
19 Patch0:         no-warn-error.patch
20 Patch1:         DESTDIR.patch
21 URL:            https://camlp5.github.io/
22 BuildRequires:  db-devel >= 4.1
23 BuildRequires:  ocaml
24 BuildRequires:  ocaml-ocamlbuild
25 %requires_eq    ocaml-runtime
26 Requires:       %{name} = %{epoch}:%{version}-%{release}
27 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
28
29 %description
30 Camlp5 is a Pre-Processor-Pretty-Printer for Objective Caml. It offers
31 tools for syntax (grammars) and the ability to modify the concrete
32 syntax of the language (quotations, syntax extensions).
33
34 Camlp5 can parse normal Ocaml concrete syntax or any other
35 user-definable syntax. As an example, an alternative syntax is
36 provided, named revised, because it tries to fix some small problems
37 of the normal syntax.
38
39 Camlp5 can pretty print the normal Ocaml concrete syntax or the
40 revised one. It is therefore always possible to have a version of your
41 sources compilable by the Objective Caml compiler without
42 preprocessing.
43
44 %description -l pl.UTF-8
45 Camlp5 jest preprocesorem OCamla. Oferuje narzędzia do manipulowania
46 składnią (gramatyki) oraz możliwość modyfikowania oryginalnej składni
47 języka (cytowania, rozszerzenia).
48
49 Camlp5 może sparsować oryginalną składnię Ocamla lub dowolną inną
50 definiowalną przez użytkownika. Jako przykład podana jest alternatywna
51 składnia (revised syntax), która próbuje poprawić drobne problemy
52 występujące w składni oryginalnej.
53
54 Camlp5 umie ładnie formatować źródła zarówno w oryginalnej jak i
55 poprawionej składni OCamla. Potrafi także tłumaczyć programy z jednej
56 składni na drugą.
57
58 %package doc-html
59 Summary:        Objective Caml Preprocessor - HTML documentation
60 Summary(pl.UTF-8):      Preprocesor OCamla - dokumentacja HTML
61 Group:          Development/Languages
62
63 %description doc-html
64 Objective Caml Preprocessor - HTML documentation.
65
66 %description doc-html -l pl.UTF-8
67 Preprocesor OCamla - dokumentacja HTML.
68
69 %package doc-pdf
70 Summary:        Objective Caml Preprocessor - PDF documentation
71 Summary(pl.UTF-8):      Preprocesor OCamla - dokumentacja w formacie PDF
72 Group:          Development/Languages
73
74 %description doc-pdf
75 Objective Caml Preprocessor - PDF documentation.
76
77 %description doc-pdf -l pl.UTF-8
78 Preprocesor OCamla - dokumentacja w formacie PDF.
79
80 %prep
81 %setup -q -n %{name}-rel%{version}
82 %patch0 -p1
83 %patch1 -p1
84
85 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+perl(\s|$),#!%{__perl}\1,' \
86       etc/mkcamlp5.pl
87
88 %build
89 ./configure \
90         -prefix %{_prefix} \
91         -bindir %{_bindir} \
92         -libdir %{_libdir}/ocaml \
93         -mandir %{_mandir}/man1
94
95 %{__make} -j1 world%{?with_ocaml_opt:.opt}
96 %{__make} -j1 -C doc/htmlp pdf
97
98 %install
99 rm -rf $RPM_BUILD_ROOT
100
101 %{__make} install \
102         BINDIR=$RPM_BUILD_ROOT%{_bindir} \
103         LIBDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml \
104         MANDIR=$RPM_BUILD_ROOT%{_mandir}
105
106 # broken build system
107 for f in mkcamlp5.1 ocpp5.1 camlp5o.1 camlp5r.1 camlp5sch.1 \
108         %{?with_ocaml_opt:camlp5o.opt.1 camlp5r.opt.1 mkcamlp5.opt.1} ; do
109         %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/$f
110         echo '.so camlp5.1' >$RPM_BUILD_ROOT%{_mandir}/man1/$f
111 done
112
113 %clean
114 rm -rf $RPM_BUILD_ROOT
115
116 %files
117 %defattr(644,root,root,755)
118 %doc CHANGES DEVEL ICHANGES MODE README.md UPGRADING
119 %attr(755,root,root) %{_bindir}/camlp5*
120 %attr(755,root,root) %{_bindir}/mkcamlp5*
121 %attr(755,root,root) %{_bindir}/ocpp5
122 %{_libdir}/ocaml/%{name}
123 %{_mandir}/man1/camlp5*.1*
124 %{_mandir}/man1/mkcamlp5*.1*
125 %{_mandir}/man1/ocpp5.1*
126
127 %files doc-html
128 %defattr(644,root,root,755)
129 %doc doc/html/*
130
131 %files doc-pdf
132 %defattr(644,root,root,755)
133 %doc doc/htmlp/camlp5.pdf
This page took 0.089145 seconds and 2 git commands to generate.