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
11 Summary: A composable build system for OCaml
17 Source0: https://github.com/ocaml/dune/archive/%{version}/%{module}-%{version}.tar.gz
18 # Source0-md5: 68fbc294aeed510425d20498225d416b
19 URL: https://github.com/ocaml/dune
20 BuildRequires: ocaml >= 3.04-7
21 BuildRequires: ocaml-csexp
22 %requires_eq ocaml-runtime
23 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
26 Dune is a build system designed for OCaml/Reason projects only. It
27 focuses on providing the user with a consistent experience and takes
28 care of most of the low-level details of OCaml compilation. All you
29 have to do is provide a description of your project and dune will do
33 Summary: Development files for dune
34 Requires: %{name} = %{version}-%{release}
35 Requires: ocaml-csexp-devel
38 This package contains libraries and signature files for developing
39 applications that use dune.
42 %setup -q -n %{module}-%{version}
46 --libdir %{_libdir}/ocaml \
50 CC="%{__cc} %{rpmcflags} -fPIC"
52 ./dune.exe build @install
56 # Relink the stublibs. See https://github.com/ocaml/dune/issues/2977.
57 cd _build/default/src/stdune
58 ocamlmklib -g -ldopt "%{rpmldflags}" -o stdune_stubs fcntl_stubs.o
60 cd _build/default/src/dune_filesystem_stubs
61 ocamlmklib -g -ldopt "%{rpmldflags}" -o dune_filesystem_stubs_stubs \
62 $(ar t libdune_filesystem_stubs_stubs.a)
65 rm -rf $RPM_BUILD_ROOT
68 DESTDIR=$RPM_BUILD_ROOT
70 # "make install" only installs the binary. We want the libraries, too.
71 ./dune.exe install --destdir $RPM_BUILD_ROOT
74 rm -rf $RPM_BUILD_ROOT
77 %defattr(644,root,root,755)
78 %doc LICENSE.md CHANGES.md README.md MIGRATION.md doc/_build/*
79 %attr(755,root,root) %{_bindir}/dune
80 %dir %{_libdir}/ocaml/dune
81 %dir %{_libdir}/ocaml/dune-action-plugin
82 %dir %{_libdir}/ocaml/dune-build-info
83 %dir %{_libdir}/ocaml/dune-configurator
84 %dir %{_libdir}/ocaml/dune-glob
85 %dir %{_libdir}/ocaml/dune-private-libs
86 %dir %{_libdir}/ocaml/dune-private-libs/dune-lang
87 %dir %{_libdir}/ocaml/dune-private-libs/dune_re
88 %dir %{_libdir}/ocaml/dune-private-libs/ocaml-config
89 %dir %{_libdir}/ocaml/dune-private-libs/stdune
90 %dir %{_libdir}/ocaml/dune-site
91 %dir %{_libdir}/ocaml/dune-site/plugins
92 %{_libdir}/ocaml/dune*/META
93 %{_libdir}/ocaml/dune*/*.cma
94 %{_libdir}/ocaml/dune*/*.cmi
95 %{_libdir}/ocaml/dune-configurator/.private
96 %{_libdir}/ocaml/dune-private-libs/*/*.cma
97 %{_libdir}/ocaml/dune-private-libs/*/*.cmi
98 %{_libdir}/ocaml/dune-site/*/*.cma
99 %{_libdir}/ocaml/dune-site/*/*.cmi
100 %if %{with ocaml_opt}
101 %{_libdir}/ocaml/dune*/*.cmxs
102 %{_libdir}/ocaml/dune-private-libs/*/*.cmxs
103 %{_libdir}/ocaml/dune-site/*/*.cmxs
105 %attr(755,root,root) %{_libdir}/ocaml/stublibs/dllstdune_stubs.so
106 %attr(755,root,root) %{_libdir}/ocaml/stublibs/dlldune_filesystem_stubs_stubs.so
107 %{_mandir}/man1/dune*.1*
108 %{_mandir}/man5/dune*.5*
111 %defattr(644,root,root,755)
112 %{_libdir}/ocaml/dune*/dune-package
113 %{_libdir}/ocaml/dune*/opam
114 %{_libdir}/ocaml/dune*/*.cmt
115 %{_libdir}/ocaml/dune*/*.cmti
116 %{_libdir}/ocaml/dune*/*.ml
117 %{_libdir}/ocaml/dune*/*.mli
118 %{_libdir}/ocaml/dune-private-libs/*/*.cmt
119 %{_libdir}/ocaml/dune-private-libs/*/*.cmti
120 %{_libdir}/ocaml/dune-private-libs/*/*.ml
121 %{_libdir}/ocaml/dune-private-libs/*/*.mli
122 %{_libdir}/ocaml/dune-site/*/*.cmt
123 %{_libdir}/ocaml/dune-site/*/*.cmti
124 %{_libdir}/ocaml/dune-site/*/*.ml
125 %{_libdir}/ocaml/dune-site/*/*.mli
126 %if %{with ocaml_opt}
127 %{_libdir}/ocaml/dune*/*.a
128 %{_libdir}/ocaml/dune*/*.cmx
129 %{_libdir}/ocaml/dune*/*.cmxa
130 %{_libdir}/ocaml/dune-private-libs/*/*.a
131 %{_libdir}/ocaml/dune-private-libs/*/*.cmx
132 %{_libdir}/ocaml/dune-private-libs/*/*.cmxa
133 %{_libdir}/ocaml/dune-site/*/*.a
134 %{_libdir}/ocaml/dune-site/*/*.cmx
135 %{_libdir}/ocaml/dune-site/*/*.cmxa
137 %{_libdir}/ocaml/dune-private-libs/filesystem_stubs/libdune_filesystem_stubs_stubs.a
138 %{_libdir}/ocaml/dune-private-libs/stdune/libstdune_stubs.a