Switch to dune
As discussed, this merge request implements the switch of the build system to dune (version >= 2.0 is required). Apart from the switch of build system there are some actual changes to the codebase:
- Removed dependency on
ocamlfind
. The flag--sugest-ocamlfind
is deprecated and printsfalse
unconditionally. - Most
demos
were duplicated betweenocamlbuild
anddune
versions. Theocamlbuild
versions were removed or switched todune
, as needed. - The
Installation.libdir
variable (which is only used for the--suggest-menhirLib
flag) is deduced from the location of the executable (as$BINDIR/../lib
), so it does not have to be set by a "configure" step. This is useful so that this flag works even ifmenhir
is not installed but being built out of the current dune workspace. - Files
version.ml
,StaticVersion.ml
andStaticVersion.mli
are now generated by the build system. The version is taken from thedune-project
file. This version is updated when preparing a release. - The library
menhirLib
is now installed under the namemenhir.lib
, but with an ocamlfind "proxy"menhirLib -> menhir.lib
for backwards compatibility. Same formenhirSdk
andmenhir.sdk
. - I tried to maintain the same semantics for the various
Makefile
targets, but there may be slight differences. - As it is not currently possible to set the
-noassert
flag on a per-file basis with dune, I added an explicit "debug" flag toLRijkstra{,Core}
to toggle the assertions. - The demos are no longer installed:
dune
does not have an easy way to install a directory of sources. We could work around this restriction if this is crucial.