Commit Graph

1159 Commits (bdd9ca391e3a56253d7480b07bb1a8aac361904c)

Author SHA1 Message Date
Sébastien Hinderer bdd9ca391e Add the $(EXE) suffix to all programs at build rather than install time
This commit touches neither boot/ocamlc nor boot/ocamllex

It has the side-effect of fixing the cleanup rules which did not use the
$(EXE) extension when removing a file although it was produced with the
$(EXE) extension.
2020-06-18 11:16:55 +02:00
Sébastien Hinderer 41e4dc1dc8 tools/Makefile: stop considering ocamldep and cvt_emit as precious 2020-06-18 11:13:12 +02:00
Sébastien Hinderer c530b74e5e tools/ocamlmktop.ml: make use of the configured extension of executalbes
Before this commit, the name of the compiler to use (ocamlc or ocamlc.exe)
was determined base on the OS type. This commit replaces this by
a mere string concatenation of "ocamlc" and the configured extension
for executable files.

This introduces a dependency of tools/ocamlmktop on the compiler's
configuration module.
2020-06-18 11:07:43 +02:00
Sébastien Hinderer 758ab7d1a6 objinfo: take possible .exe extension into account when calling objinfo_helper 2020-06-18 11:07:43 +02:00
Sébastien Hinderer 92331f8025 objinfo_helper: slightly generalise usage message
Use argv[0] rather than hardcoding "objinfo_helper".

That way the message is accurate whether there is a ".exe" extension or not.
2020-06-18 11:07:43 +02:00
David Allsopp 2f38a52086
Merge pull request #9625 from dra27/warn-error
--enable-warn-error configure option
2020-06-10 11:32:13 +01:00
Sébastien Hinderer 2e4d1ecc12
Remove two oldish scripts (#9656) 2020-06-09 10:49:58 +02:00
David Allsopp d0051d0092
Fix tools/check-typo for mawk 1.3.4 (#9644)
Closes: #9643
2020-06-05 18:13:40 +02:00
Sébastien Hinderer e32c1b2e8e Inria CI: also test LibBFD support on FreeBSD 2020-06-04 19:13:35 +02:00
Nicolás Ojeda Bär 836d62470b
Fix load path ordering (#9611) 2020-06-03 00:10:38 +02:00
Stephen Dolan 0d44a6cfe6 Remove Const_pointer from Lambda and Clambda (#9585)
Lambda and Clambda distinguish Const_int from Const_pointer only so
that they can pass the information to Cmm. But now that that
Const_pointer is gone from Cmm (#9578), there's no need for the
distinction in Lambda either.

This PR requires a bootstrap, because the .cmo format changes:
Lambda.structured_constant has one fewer constructor.  The bootstrap
is in the following commit.
2020-06-02 11:19:20 +02:00
David Allsopp 75c9cd3b38 Add --enable-warn-error
On by default if +dev appears in VERSION and also fixed for MSVC.
2020-06-01 17:34:41 +01:00
Xavier Leroy b2f467abc0 Improve -with-bootstrap mode
- coreboot + opt.opt gives a faster build than bootstrap + opt.opt
- Restore the original bootstrap compilers on exit, so that
  other-configs works (it performs several builds in sequence).
2020-05-21 17:05:40 +02:00
Xavier Leroy f82a84f3e8 Force a bootstrap for the --disable-flat-float-array test
The default build procedure is broken in --disable-flat-float-array mode
since PR#2188 was merged.  This commit unblocks temporarily the situation
by using a build with bootstrap for --disable-float-float-array-mode.
2020-05-21 15:40:18 +02:00
Xavier Leroy ad804d1c4a Add option "-with-bootstrap"
This option forces a bootstrap of the bytecode compiler before the
whole system is built and tested.
2020-05-21 15:40:13 +02:00
Gabriel Scherer b42541395c Travis CheckDepend: show the difference, not just the problematic files
(No change entry needed)
2020-05-16 22:44:12 +02:00
Xavier Leroy 43f7a263b3 A lightweight variant of the Inria CI script "main"
Tries to build just what's needed to run the test suite.
2020-05-16 19:40:14 +02:00
octachron 0963b0c6b6 Restore ocamloptp 2020-05-14 10:11:42 +02:00
Gabriel Scherer fab58a938a makefiles: move the inclusion of Makefile.build_config in Makefile.common 2020-05-06 12:10:02 +02:00
Xavier Leroy f2587c1fb1
Merge pull request #9529 from dra27/macos-gnu-make
Further C dependency fixes
2020-05-06 09:53:45 +02:00
Xavier Leroy 29d5f485d8 Jenkins CI job to test the Dune-based build 2020-05-05 19:21:42 +02:00
David Allsopp 11d0d662ae Turn on dependency checking on Inria CI
Only the "old school build" test uses --disable-dependency-generation.
This is also tested on both Travis and AppVeyor, so we have good release
coverage checking of this option.
2020-05-03 12:29:23 +01:00
Gabriel Scherer cdccc0b1cb add a new Travis CI check that 'make alldepend' is a no-op 2020-05-01 22:23:28 +01:00
David Allsopp 5efcc1b474 AppVeyor: test dependency generation on msvc64 2020-05-01 09:53:01 +01:00
David Allsopp ac2a9dd188 Cease committing C dependendency information
When building for the first time, the only requirement is that generated
header files have been built (jumptbl.h, version.h and opnames.h).
Detailed dependency information is only required when headers have been
edited.

COMPUTE_DEPS in Makefile.config controls whether C dependency
information should be generated on a per-file basis. This variable is
controlled by a new --disable-dependency-generation in configure which
is enabled for Git checkouts and disabled for tarballs (i.e. releases).

The Microsoft C compiler (cl) cannot generate dependencies in a
consistent way which we can consume, so for a Git checkout configure
searches for an additional C compiler in order to compute dependencies.
This is obviously not required for a user-build.

As a result, the MSVC port can now safely run make alldepend, since only
OCaml dependency information is committed to the repo after this change.

CI does not need to waste time testing the dependency information,
because it only tests a single build. A single Travis job has been added
which tests the build system code to generate the dependency information
(and provides a single `make -j` run in CI, although Inria's CI also
tests parallel building continuously).
2020-04-17 14:11:22 +01:00
David Allsopp 3a40b2fd94 Introduce Makefile.build_config.in
This moves the configure-generated parts of Makefile.common to a
separate (generated) Makefile, allowing Makefile.common to be a normal
Makefile.

OCaml's build system Makefile's now include Makefile.build_config (which
itself includes Makefile.config) but Makefile.config is still installed
as before. This allows configure to generate variables which are
specific to the build process and are not intended to be exported to the
installation.
2020-04-17 13:53:49 +01:00
Enguerrand Decorne b7f0494df5 Rewrite the instrumented runtime to store traces in the CTF format.
The instrumentation code in the instrumented runtime was replaced
with new APIs to gather runtime statistics and output them in a new format
(Common Trace Format).
This commit also exposes new functions in the Gc module to pause or resume
instrumentation during a program execution (Gc.eventlog_pause and
Gc.eventlog_resume).
2020-04-30 10:32:01 +02:00
David Allsopp abd6712f6a
Merge pull request #9491 from dra27/bionic-travis
Switch Travis testing from Xenial to Bionic
2020-04-23 21:17:13 +01:00
Damien Doligez 2d3c211e00 release checklist: fix small problems in branching instructions 2020-04-23 21:28:41 +02:00
David Allsopp c6048eb406 Switch Travis testing from Xenial to Bionic 2020-04-23 15:58:36 +01:00
Damien Doligez e92d13c986 last commit before branching 4.11 2020-04-22 17:28:08 +02:00
David Allsopp 8a36b7ab30 Test distclean in CI
Ensure that distclean works in an unconfigured tree. At the end of the
build, ensure that no tracked files have been altered or untracked files
created and ensure that distclean removes all ignored files.
2020-04-20 11:07:28 +01:00
Nicolás Ojeda Bär 15b08d2fdf
Use Filename.quote_command (#9476) 2020-04-20 14:38:10 +02:00
David Allsopp 014105bf1c Use configure-caches on AppVeyor 2020-04-17 10:16:03 +01:00
David Allsopp db1d8488e6 Run AppVeyor with -j for branches 2020-04-17 09:35:16 +01:00
David Allsopp 644696e041 Display AppVeyor environment 2020-04-17 09:28:05 +01:00
David Allsopp 540df2ee65 Introduce $MAKE to AppVeyor script 2020-04-17 08:58:44 +01:00
David Allsopp 67c011b883
Revert "AppVeyor speed-ups" 2020-04-20 09:55:54 +01:00
David Allsopp eaa2a01eeb Use configure-caches on AppVeyor 2020-04-17 10:16:03 +01:00
David Allsopp 094447b8fe Run AppVeyor with -j for branches 2020-04-17 09:35:16 +01:00
David Allsopp 1850f55c58 Display AppVeyor environment 2020-04-17 09:28:05 +01:00
David Allsopp afe92bb4f3 Introduce $MAKE to AppVeyor script 2020-04-17 08:58:44 +01:00
David Allsopp f568f858f4 Update release-checklist 2019-10-15 12:04:04 +01:00
David Allsopp 13786d7d12 Ensure make distclean works on an unconfigured tree 2019-10-15 11:46:36 +01:00
David Allsopp 91913bc505 autogen -> make configure 2018-12-04 10:29:02 +00:00
David Allsopp d4a566573f Allow make to be invoked before configure
This should be improved to give better warnings for when Makefile.config
and Makefile.common are required.
2018-12-04 10:28:36 +00:00
Nicolás Ojeda Bär 57d329e07b
Deprecate -annot (#2141)
* Move driver code from Cmt2annot to Read_cmt
* Move cmt2annot.ml into typing/
* make depend
* Use standard error handling
* Move specific logic to read_cmt
* Do not pass full cmt record as argument
* Better locations
* Emit .annot files produced from cmt data
* Remove direct calls to Stypes
* Deprecate -annot
* Changes
* make depend
* Adapt doc
* make -C tools depend
2020-03-13 12:59:34 +01:00
David Allsopp fd6c0e3a03 Don't built ocamltest on release builds
--enable-ocamltest is paranoidly included in the CI scripts, although
the trees are never pushed with a release VERSION at the tip.
2020-02-13 16:53:07 +00:00
Stephen Dolan d6a3a8c58e
Merge pull request #9277 from dbuenzli/objinfo-c-metadata
Objinfo c metadata
2020-02-04 15:53:37 +00:00
Daniel Bünzli 47b9410b33 objinfo: print cm[x]a extra C object, options and dlls in the cli order.
Follow up to #4949. Closes #9276.
2020-01-31 15:12:47 +01:00