Require flexlink.opt to be specified. Old behaviour:
make flexdll world.opt install
now becomes:
make flexdll world.opt flexlink.opt install
Without flexlink.opt, a bytecode version of flexlink.exe is installed.
The install-flexdll target now puts the object files for FlexDLL in a
subdirectory flexdll of the Standard Library instead of in the Standard
Library itself.
A configuration tweak means that -I +flexdll is effectively added to all
compiler invocations and also a pseudo-option -L+flexdll to ocamlmklib
calls to Config.mkdll which fixes PR#7373.
The code in this commit was written by Marcell Fischbach & Benedikt Meurer.
See [Mantis#5324](http://caml.inria.fr/mantis/view.php?id=5324) for some
context.
The code (which was originally written against 3.12) was ported to trunk by
doing
```bash
git clone https://github.com/bmeurer/ocaml-experimental/
cd ocaml-experimental
git diff master...linear-scan-register-allocator > t.diff
```
and then applying the diff by hand.
Run 'make lintapidiff' in the root of a git checkout to get a list of
potentially missing or wrong @since annotations.
The tool is not built by default, you have to first run 'make
world.opt', and then run 'make lintapidiff'.
lintapidiff doesn't support stop comments: add explicit list of changes to ignore.
see copyright header for license.
This target thus becomes available under Windows (Makefile.nt did not
define it).
Since no other rule makes use of this target, its usefulness needs to be
confirmed.
Before this commit, the rule was more sequential on the Unix build system
than on the Windows one. The more sequential version has been kept
so as not to break parallel builds.
Note: since commit dd74659c68, the
coreboot target on the Unix build system calls make promote with
CAMLRUN=byterun/ocamlrun, which the equivalent target on the Windows
system did not use before the present commit.
The present commit uses CAMLRUN=byterun/ocamlrun on both build systems.
On Unix core builds coldstart and coreall while on Windows core builds runtime
and coreall. This behaviour has been preserved but needs to be
clarified.
On the Unix build system, this recipe was creating stdlib/caml as a symlink
to byterun/caml. This is no longer done because it is not done on
Windows either and seems not useful.
It will however be available only on Unix because checkstack does not
yet work on Windows.
This commit removes the '@' character in front of the commands of
the checkstack rule to make debugging easier.
It also fixes the target by ensuiring that the $(EXE) extension
is used everywhere.