]>
Commit | Line | Data |
---|---|---|
d5b28b2d JR |
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 | %define module dune | |
11 | Summary: A composable build system for OCaml | |
12 | Name: ocaml-%{module} | |
5a04a328 | 13 | Version: 2.8.4 |
9889467a | 14 | Release: 4 |
d5b28b2d JR |
15 | License: MIT |
16 | Group: Libraries | |
17 | Source0: https://github.com/ocaml/dune/archive/%{version}/%{module}-%{version}.tar.gz | |
5a04a328 | 18 | # Source0-md5: 68fbc294aeed510425d20498225d416b |
d5b28b2d JR |
19 | URL: https://github.com/ocaml/dune |
20 | BuildRequires: ocaml >= 3.04-7 | |
12178e23 | 21 | BuildRequires: ocaml-csexp |
d5b28b2d JR |
22 | %requires_eq ocaml-runtime |
23 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
24 | ||
d5b28b2d | 25 | %description |
85cc6715 JR |
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 | |
30 | the rest. | |
d5b28b2d | 31 | |
12178e23 JR |
32 | %package devel |
33 | Summary: Development files for dune | |
34 | Requires: %{name} = %{version}-%{release} | |
35 | Requires: ocaml-csexp-devel | |
36 | ||
37 | %description devel | |
38 | This package contains libraries and signature files for developing | |
39 | applications that use dune. | |
40 | ||
d5b28b2d JR |
41 | %prep |
42 | %setup -q -n %{module}-%{version} | |
d5b28b2d JR |
43 | |
44 | %build | |
5a04a328 JR |
45 | ./configure \ |
46 | --libdir %{_libdir}/ocaml \ | |
47 | --mandir %{_mandir} | |
d5b28b2d | 48 | |
5a04a328 | 49 | %{__make} release \ |
d5b28b2d JR |
50 | CC="%{__cc} %{rpmcflags} -fPIC" |
51 | ||
12178e23 JR |
52 | ./dune.exe build @install |
53 | ||
5a04a328 JR |
54 | %{__make} doc |
55 | ||
12178e23 JR |
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 | |
59 | cd - | |
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) | |
63 | ||
d5b28b2d JR |
64 | %install |
65 | rm -rf $RPM_BUILD_ROOT | |
66 | ||
67 | %{__make} install \ | |
68 | DESTDIR=$RPM_BUILD_ROOT | |
69 | ||
12178e23 JR |
70 | # "make install" only installs the binary. We want the libraries, too. |
71 | ./dune.exe install --destdir $RPM_BUILD_ROOT | |
72 | ||
d5b28b2d JR |
73 | %clean |
74 | rm -rf $RPM_BUILD_ROOT | |
75 | ||
76 | %files | |
77 | %defattr(644,root,root,755) | |
12178e23 | 78 | %doc LICENSE.md CHANGES.md README.md MIGRATION.md doc/_build/* |
d5b28b2d | 79 | %attr(755,root,root) %{_bindir}/dune |
12178e23 JR |
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 | |
9889467a JR |
86 | %dir %{_libdir}/ocaml/dune-private-libs/cache |
87 | %dir %{_libdir}/ocaml/dune-private-libs/dune_csexp | |
12178e23 JR |
88 | %dir %{_libdir}/ocaml/dune-private-libs/dune-lang |
89 | %dir %{_libdir}/ocaml/dune-private-libs/dune_re | |
9889467a JR |
90 | %dir %{_libdir}/ocaml/dune-private-libs/dune-section |
91 | %dir %{_libdir}/ocaml/dune-private-libs/dune_util | |
92 | %dir %{_libdir}/ocaml/dune-private-libs/filesystem_stubs | |
93 | %dir %{_libdir}/ocaml/dune-private-libs/meta_parser | |
12178e23 JR |
94 | %dir %{_libdir}/ocaml/dune-private-libs/ocaml-config |
95 | %dir %{_libdir}/ocaml/dune-private-libs/stdune | |
9889467a | 96 | %dir %{_libdir}/ocaml/dune-private-libs/xdg |
12178e23 JR |
97 | %dir %{_libdir}/ocaml/dune-site |
98 | %dir %{_libdir}/ocaml/dune-site/plugins | |
99 | %{_libdir}/ocaml/dune*/META | |
100 | %{_libdir}/ocaml/dune*/*.cma | |
101 | %{_libdir}/ocaml/dune*/*.cmi | |
102 | %{_libdir}/ocaml/dune-configurator/.private | |
103 | %{_libdir}/ocaml/dune-private-libs/*/*.cma | |
104 | %{_libdir}/ocaml/dune-private-libs/*/*.cmi | |
105 | %{_libdir}/ocaml/dune-site/*/*.cma | |
106 | %{_libdir}/ocaml/dune-site/*/*.cmi | |
107 | %if %{with ocaml_opt} | |
12178e23 | 108 | %{_libdir}/ocaml/dune*/*.cmxs |
12178e23 | 109 | %{_libdir}/ocaml/dune-private-libs/*/*.cmxs |
12178e23 | 110 | %{_libdir}/ocaml/dune-site/*/*.cmxs |
f4cc696b | 111 | %endif |
12178e23 JR |
112 | %attr(755,root,root) %{_libdir}/ocaml/stublibs/dllstdune_stubs.so |
113 | %attr(755,root,root) %{_libdir}/ocaml/stublibs/dlldune_filesystem_stubs_stubs.so | |
d5b28b2d JR |
114 | %{_mandir}/man1/dune*.1* |
115 | %{_mandir}/man5/dune*.5* | |
12178e23 JR |
116 | |
117 | %files devel | |
118 | %defattr(644,root,root,755) | |
119 | %{_libdir}/ocaml/dune*/dune-package | |
120 | %{_libdir}/ocaml/dune*/opam | |
121 | %{_libdir}/ocaml/dune*/*.cmt | |
122 | %{_libdir}/ocaml/dune*/*.cmti | |
123 | %{_libdir}/ocaml/dune*/*.ml | |
124 | %{_libdir}/ocaml/dune*/*.mli | |
125 | %{_libdir}/ocaml/dune-private-libs/*/*.cmt | |
126 | %{_libdir}/ocaml/dune-private-libs/*/*.cmti | |
127 | %{_libdir}/ocaml/dune-private-libs/*/*.ml | |
128 | %{_libdir}/ocaml/dune-private-libs/*/*.mli | |
129 | %{_libdir}/ocaml/dune-site/*/*.cmt | |
130 | %{_libdir}/ocaml/dune-site/*/*.cmti | |
131 | %{_libdir}/ocaml/dune-site/*/*.ml | |
132 | %{_libdir}/ocaml/dune-site/*/*.mli | |
f4cc696b | 133 | %if %{with ocaml_opt} |
12178e23 JR |
134 | %{_libdir}/ocaml/dune*/*.a |
135 | %{_libdir}/ocaml/dune*/*.cmx | |
136 | %{_libdir}/ocaml/dune*/*.cmxa | |
137 | %{_libdir}/ocaml/dune-private-libs/*/*.a | |
138 | %{_libdir}/ocaml/dune-private-libs/*/*.cmx | |
139 | %{_libdir}/ocaml/dune-private-libs/*/*.cmxa | |
140 | %{_libdir}/ocaml/dune-site/*/*.a | |
141 | %{_libdir}/ocaml/dune-site/*/*.cmx | |
142 | %{_libdir}/ocaml/dune-site/*/*.cmxa | |
f4cc696b JR |
143 | %else |
144 | %{_libdir}/ocaml/dune-private-libs/filesystem_stubs/libdune_filesystem_stubs_stubs.a | |
145 | %{_libdir}/ocaml/dune-private-libs/stdune/libstdune_stubs.a | |
12178e23 | 146 | %endif |