Commit Graph

494 Commits (7ef4018bd7520bd0ac5f0fe61442dd0b40b03987)

Author SHA1 Message Date
David Allsopp 7ef4018bd7 Don't build flexlink.opt in opt.opt
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.
2017-04-09 19:00:06 +02:00
David Allsopp 5a29efa469 Split FlexDLL bootstrap into flexdll and flexlink
Allows the C object files to be provided separately and just the
flexlink binary itself to be bootstrapped.
2017-04-09 19:00:06 +02:00
David Allsopp 65fd726329 Install bootstrapped FlexDLL objects to flexdll/
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.
2017-04-09 19:00:06 +02:00
David Allsopp 614dd0b756 Allow backslashes in FLEXLINK_FLAGS
Also in MKEXE, MKDLL and MKMAINDDLL as a result.
2017-04-09 19:00:06 +02:00
Sébastien Hinderer eef958007e Build system: rename variables related to manual pages
Rename MANEXT (resp. LIB_MANEXT) to PROGRAMS_MAN_SECTION (resp.
LIBRARIES_MAN_SECTION).

Also get rid of a useless variable assignment in configure.
2017-03-29 11:10:06 +02:00
Sébastien Hinderer 3564aade19 Introduce and use the OUTPUTEXE and OUTPUTOBJ build variables 2017-03-29 11:10:06 +02:00
Sébastien Hinderer f2d5d60376 Define new build variables for C compiler and preprocessor flags 2017-03-29 11:10:06 +02:00
Sébastien Hinderer 8868a7c023 Rename the BYTECCLINKOPTS build variable to LDFLAGS 2017-03-29 11:10:05 +02:00
Pierre Chambart cb81cc6fe2 Declare record type for flambda function parameters (#1028) 2017-03-16 10:40:47 +00:00
Sébastien Hinderer d05d521d6e Fix dependencies generation for otherlibs
Generate dependencies for all of them, not just those that will
actually be built.
2017-03-09 17:12:02 +01:00
Sébastien Hinderer a85b39654a Clearly report that dependencies cannot be regenerated for the MSVC ports 2017-03-09 17:12:02 +01:00
Sébastien Hinderer ccf22c8471 Make .depend files generated for C sources more portable
This implements a suggestion provided by @xavierleroy in
https://github.com/ocaml/ocaml/pull/941#issuecomment-266047690

Before this commit, the dependencies of the win32unix C files were not
taken into account at all. This commit fixes this, too.
2017-03-09 17:12:02 +01:00
Christopher Zimmermann feaab3e40e use $(MAKE) variable 2017-03-05 21:36:13 +01:00
Gabriel Scherer 838b6f8fd2 Merge pull request #1074 from stedolan/parallel-make-fix
Fix for parallel make
2017-03-02 17:00:01 -05:00
Stephen Dolan fa576384b2 Fix for parallel make 2017-03-02 10:15:40 +00:00
Nicolas Ojeda Bar e75c87dc48 Initial import of linear-scan-register-allocator
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.
2017-02-22 17:09:18 +01:00
Török Edwin d1cd849d3f Documentation tool: add tools/lintapidiff.ml
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.
2017-02-21 17:13:38 +02:00
fdopen 9174a1d1ec also install ocamlyacc 2017-02-17 16:38:26 +01:00
Sébastien Hinderer 42ae45f5b4 Makefile: declare the distclean and coreboot targets as PHONY
Makefile: declare the coreboot target as PHONY
2017-02-15 16:06:23 +01:00
Sébastien Hinderer 14614a5c2e Makefile: reorder a few phony and variable declarations 2017-02-15 11:19:08 +01:00
Sébastien Hinderer 05005bd7d3 Makefile: get rid of commented rule 2017-02-15 11:19:08 +01:00
Sébastien Hinderer 460019eb69 Makefile: minor improvement of a rule related to the native dynlink library 2017-02-15 11:19:08 +01:00
Sébastien Hinderer a23bec29ec Makefile: minor fix of the clean rule
Move the phony declaration above the first definition of the clean rule.
2017-02-15 11:19:08 +01:00
Sébastien Hinderer 73179f8972 Makefile: slightly improve the flexdll rule 2017-02-15 11:19:07 +01:00
Sébastien Hinderer 4c9ac6d2bf Makefile: slightly improve the opt-core rule 2017-02-15 11:19:07 +01:00
Sébastien Hinderer 7c988144bc Makefile: define the INCLUDES variable earlier to improve readability 2017-02-15 11:19:07 +01:00
Sébastien Hinderer 294e0a73a1 Makefile: get rid of variables related to ocamlbuild
They have become useless
2017-02-15 11:19:07 +01:00
Sébastien Hinderer f8dc9e4c85 Move the content of Makefile.shared to Makefile
Also update Makefile.nt so as to include Makefile
2017-02-15 11:19:05 +01:00
Sébastien Hinderer 7e034f20fa Get rid of the MAKEREC and MAKECMD make variables
Now that the Unix and Windows build systems have been merged, thiese
variables are no longer useful.
2017-02-15 11:18:10 +01:00
Sébastien Hinderer 4865cbac4f Makefiles: deduplicate the inclusion of the .depend file 2017-02-15 11:18:10 +01:00
Sébastien Hinderer fbead55c66 Makefiles: deduplicate the world.opt rule 2017-02-15 11:18:10 +01:00
Sébastien Hinderer ae4eb8ba9a Makefiles: deduplicate the natruntop rule 2017-02-15 11:18:10 +01:00
Sébastien Hinderer 11fd71c6ff Makefiles: deduplicate the opt and opt.opt rules
The recipes work differently on Unix and Windows. This commit
preserves this situation but this will probably need to be clarified.
2017-02-15 11:18:10 +01:00
Sébastien Hinderer 5eb5cdfd04 Move the base.opt recipe from Makefile to Makefile.shared
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.
2017-02-15 11:18:10 +01:00
Sébastien Hinderer d7fdcd6a93 Makefiles: deduplicate the opt-core rule 2017-02-15 11:18:10 +01:00
Sébastien Hinderer b7845ece69 Move the reconfigure rule from Makefile to Makefile.shared
Make sure it can be used only on Unix, though, since ./configure does
not work on Windows yet.
2017-02-15 11:18:10 +01:00
Sébastien Hinderer fca37bb47b Makefiles: deduplicate the world rule 2017-02-15 11:18:10 +01:00
Sébastien Hinderer a000862dd3 Makefiles: deduplicate the runtop rule
The recipes for the Unix and Windows build systems are different. This
difference has been preserved for the moment but the rules should be
unified.
2017-02-15 11:18:10 +01:00
Sébastien Hinderer 44097e323a Deduplicate the bootstrap rule 2017-02-15 11:18:10 +01:00
Sébastien Hinderer 2bd60155ef Makefiles: deduplicate the all rule
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.
2017-02-15 11:18:09 +01:00
Sébastien Hinderer 6d5914f4d1 Makefiles: deduplicate the coreboot rule
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.
2017-02-15 11:18:09 +01:00
Sébastien Hinderer 50071de8ff Makefiles: deduplicate .PHONY declarations of tools-related rules
The ocamltools, ocamltoolsopt and ocamltoolsopt.opt rules were already
shared but their .PHONY declarations were duplicated.
2017-02-15 11:18:09 +01:00
Sébastien Hinderer 749eb08256 Makefiles: deduplicate the promote-cross, promote and cleanboot rules 2017-02-15 11:18:09 +01:00
Sébastien Hinderer 21cd9de7ad Makefiles: deduplicate the backup, restore and compare rules 2017-02-15 11:18:09 +01:00
Sébastien Hinderer 91e353acc8 Makefiles: deduplicate the coreall and core rules
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.
2017-02-15 11:18:09 +01:00
Sébastien Hinderer 731766c3b2 Makefiles: deduplicate the coldstart rule
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.
2017-02-15 11:18:09 +01:00
Sébastien Hinderer 7a24ff49e5 Makefiles: deduplicate the default rules
After this commit, ocamldep is called with the -shash option under
Unix, which was not the case before but should not change anything
in practice.
2017-02-15 11:18:09 +01:00
Sébastien Hinderer 83aff485b3 Move the rules related to MacOS X pakcaging from Makefile to Makefile.shared
Make sure they can be used only under Unix, though.
2017-02-15 11:18:09 +01:00
Sébastien Hinderer e5cb725761 Move the checkstack rule from Makefile to Makefile.shared
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.
2017-02-15 11:18:09 +01:00
Sébastien Hinderer df392ade71 Makefiles: deduplicate the rules that clean the testsuite 2017-02-15 11:18:09 +01:00