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: https://github.com/mjambon/cppo/archive/v%{version}/%{name}-%{version}.tar.gz
19 # Source0-md5: bdc99442945f6bc26e7a8096d0975239
20 Patch0: noopt-install.patch
21 URL: http://mjambon.com/cppo.html
22 BuildRequires: ocaml >= 3.04-7
23 BuildRequires: ocaml-ocamlbuild
24 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
27 Cppo is an OCaml-friendly implementation of cpp, the C preprocessor.
28 It can replace camlp4 for preprocessing OCaml files, using cpp style
29 and syntax. It allows defining simple macros and file inclusion.
31 %description -l pl.UTF-8
32 Cppo to przyjazna dla OCamla implementacja cpp - preprocesora języka
33 C. Może zastąpić preprocesor camlp4 przy przetwarzaniu plików OCamla
34 z wykorzystaniem stylu oraz składni cpp. Pozwala na definiowanie
35 prostych makr oraz włączanie plików.
37 %package -n ocamlbuild-cppo
38 Summary: Cppo plugin for ocamlbuild
39 Summary(pl.UTF-8): Wtyczka cppo dla ocamlbuilda
41 Requires: %{name} = %{version}-%{release}
42 # ocamlbuild resides in ocaml package, so don't require just ocaml-runtime
45 %description -n ocamlbuild-cppo
46 Cppo plugin for ocamlbuild.
48 %description -n ocamlbuild-cppo -l pl.UTF-8
49 Wtyczka cppo dla ocamlbuilda.
51 %package -n ocamlbuild-cppo-devel
52 Summary: Development files for ocamlbuild_cppo library
53 Summary(pl.UTF-8): Pliki programistyczne biblioteki ocamlbuild_cppo
54 Group: Development/Libraries
55 Requires: ocamlbuild-cppo = %{version}-%{release}
58 %description -n ocamlbuild-cppo-devel
59 Development files for ocamlbuild_cppo library.
61 %description -n ocamlbuild-cppo-devel -l pl.UTF-8
62 Pliki programistyczne biblioteki ocamlbuild_cppo.
69 # "all" makes bytecode-based cppo, "opt" makes native
70 %{__make} -j1 %{!?with_ocaml_opt:all} %{?with_ocaml_opt:opt} ocamlbuild \
71 %{!?with_ocaml_opt:BEST=byte} \
72 CC="%{__cc} %{rpmcflags} -fPIC"
75 rm -rf $RPM_BUILD_ROOT
76 install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/ocaml/site-lib/cppo_ocamlbuild,%{_examplesdir}}
78 # make install-bin is broken outside Win*
79 install -p cppo $RPM_BUILD_ROOT%{_bindir}
81 %{__make} install-lib \
82 %{!?with_ocaml_opt:BEST=byte} \
83 OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml
85 cp -pr examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
87 %{__mv} $RPM_BUILD_ROOT%{_libdir}/ocaml/cppo_ocamlbuild/META \
88 $RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/cppo_ocamlbuild
89 cat >>$RPM_BUILD_ROOT%{_libdir}/ocaml/site-lib/cppo_ocamlbuild/META <<EOF
90 directory="+cppo_ocamlbuild"
94 rm -rf $RPM_BUILD_ROOT
97 %defattr(644,root,root,755)
98 %doc Changes LICENSE README.md
99 %attr(755,root,root) %{_bindir}/cppo
100 %{_examplesdir}/%{name}-%{version}
102 %files -n ocamlbuild-cppo
103 %defattr(644,root,root,755)
104 %dir %{_libdir}/ocaml/cppo_ocamlbuild
105 %{_libdir}/ocaml/cppo_ocamlbuild/ocamlbuild_cppo.cma
106 %if %{with ocaml_opt}
107 %attr(755,root,root) %{_libdir}/ocaml/cppo_ocamlbuild/ocamlbuild_cppo.cmxs
109 %{_libdir}/ocaml/site-lib/cppo_ocamlbuild
111 %files -n ocamlbuild-cppo-devel
112 %defattr(644,root,root,755)
113 %{_libdir}/ocaml/cppo_ocamlbuild/ocamlbuild_cppo.cmi
114 %if %{with ocaml_opt}
115 %{_libdir}/ocaml/cppo_ocamlbuild/ocamlbuild_cppo.cmxa
116 %{_libdir}/ocaml/cppo_ocamlbuild/ocamlbuild_cppo.a