FAQ¶
Why do many dune projects contain a Makefile?¶
Many dune projects contain a toplevel Makefile. It is often only there for convenience, for the following reasons:
- there are many different build systems out there, all with a different CLI. If you have been hacking for a long time, the one true invocation you know is make && make install, possibly preceded by ./configure
- you often have a few common operations that are not part of the build and make <blah> is a good way to provide them
- make is shorter to type than dune build @install
How to add a configure step to a dune project?¶
The with-configure-step example shows one way to do it which preserves composability; i.e. it doesn’t require manually running ./configure script when working on multiple projects at the same time.
Can I use topkg with dune?¶
It’s possible using the topkg-jbuilder but it’s not recommended. dune-release subsumes topkg-jbuilder and is specifically tailored to dune projects.
How do I publish my packages with dune?¶
Dune is just a build system and considers publishing outside of its scope. However, the dune-release project is specifically designed for releasing dune projects to opam. We recommend using tool for publishing dune packages.
here can I find some examples of projects using dune?¶
The dune-universe repository contains a snapshot of the latest versions of all opam packages depending on dune. It is therefore a useful reference to search through to find different approaches to constructing build rules.