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 %define debug_package %{nil}
11 Summary: Preprocessor (cpp equivalent) for OCaml
12 Summary(pl.UTF-8): Preprocesor (odpowiednik cpp) dla OCamla
17 Group: Development/Tools
18 Source0: http://mjambon.com/releases/cppo/%{name}-%{version}.tar.gz
19 # Source0-md5: f1a551639c0c667ee8840d95ea5b2ab7
20 URL: http://mjambon.com/cppo.html
21 BuildRequires: ocaml >= 3.04-7
22 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
25 Cppo is an OCaml-friendly implementation of cpp, the C preprocessor.
26 It can replace camlp4 for preprocessing OCaml files, using cpp style
27 and syntax. It allows defining simple macros and file inclusion.
29 %description -l pl.UTF-8
30 Cppo to przyjazna dla OCamla implementacja cpp - preprocesora języka
31 C. Może zastąpić preprocesor camlp4 przy przetwarzaniu plików OCamla
32 z wykorzystaniem stylu oraz składni cpp. Pozwala na definiowanie
33 prostych makr oraz włączanie plików.
35 %package -n ocamlbuild-cppo
36 Summary: Cppo plugin for ocamlbuild
37 Summary(pl.UTF-8): Wtyczka cppo dla ocamlbuilda
39 Requires: %{name} = %{version}-%{release}
40 # ocamlbuild resides in ocaml package, so don't require just ocaml-runtime
43 %description -n ocamlbuild-cppo
44 Cppo plugin for ocamlbuild.
46 %description -n ocamlbuild-cppo -l pl.UTF-8
47 Wtyczka cppo dla ocamlbuilda.
49 %package -n ocamlbuild-cppo-devel
50 Summary: Development files for ocamlbuild_cppo library
51 Summary(pl.UTF-8): Pliki programistyczne biblioteki ocamlbuild_cppo
52 Group: Development/Libraries
53 Requires: ocamlbuild-cppo = %{version}-%{release}
56 %description -n ocamlbuild-cppo-devel
57 Development files for ocamlbuild_cppo library.
59 %description -n ocamlbuild-cppo-devel -l pl.UTF-8
60 Pliki programistyczne biblioteki ocamlbuild_cppo.
66 # "all" makes bytecode-based cppo, "opt" makes native
67 %{__make} -j1 %{!?with_ocaml_opt:all} %{?with_ocaml_opt:opt} ocamlbuild \
68 %{!?with_ocaml_opt:BEST=byte} \
69 CC="%{__cc} %{rpmcflags} -fPIC"
72 rm -rf $RPM_BUILD_ROOT
73 install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/ocaml/site-lib/cppo_ocamlbuild,%{_examplesdir}}
75 # make install-bin is broken outside Win*
76 install -p cppo $RPM_BUILD_ROOT%{_bindir}
78 %{__make} install-lib \
79 %{!?with_ocaml_opt:BEST=byte} \
80 OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml
82 cp -pr examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
84 %{__mv} $RPM_BUILD_ROOT%{_libdir}/ocaml/cppo_ocamlbuild/META \
85 $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/cppo_ocamlbuild
86 cat >>$RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/cppo_ocamlbuild/META <<EOF
87 directory="+cppo_ocamlbuild"
91 rm -rf $RPM_BUILD_ROOT
94 %defattr(644,root,root,755)
95 %doc Changes LICENSE README.md
96 %attr(755,root,root) %{_bindir}/cppo
97 %{_examplesdir}/%{name}-%{version}
99 %files -n ocamlbuild-cppo
100 %defattr(644,root,root,755)
101 %dir %{_libdir}/ocaml/cppo_ocamlbuild
102 %{_libdir}/ocaml/cppo_ocamlbuild/ocamlbuild_cppo.cma
103 %if %{with ocaml_opt}
104 %attr(755,root,root) %{_libdir}/ocaml/cppo_ocamlbuild/ocamlbuild_cppo.cmxs
106 %{_libdir}/ocaml/site-lib/cppo_ocamlbuild
108 %files -n ocamlbuild-cppo-devel
109 %defattr(644,root,root,755)
110 %{_libdir}/ocaml/cppo_ocamlbuild/ocamlbuild_cppo.cmi
111 %if %{with ocaml_opt}
112 %{_libdir}/ocaml/cppo_ocamlbuild/ocamlbuild_cppo.cmxa
113 %{_libdir}/ocaml/cppo_ocamlbuild/ocamlbuild_cppo.a