diff options
author | Sébastien Hinderer <Sebastien.Hinderer@inria.fr> | 2019-04-10 10:57:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-10 10:57:05 +0200 |
commit | 0dec0ce9d63d5d3168dadb193200af7e91b711c1 (patch) | |
tree | 8cdffb5bba3b960304ad694c2d77ece7b8fd14b9 | |
parent | 278e5abbc0b6a0c57edf2d3a63ceb4e1a3ff20df (diff) | |
download | ocaml-0dec0ce9d63d5d3168dadb193200af7e91b711c1.tar.gz |
Get rid of the stdlib/Compflags script (#8601)
This script was used to provide module-specific compiler flags.
Now that we use GNU make, these flags can be handled by make itslef.
-rw-r--r-- | .gitattributes | 1 | ||||
-rwxr-xr-x | stdlib/Compflags | 35 | ||||
-rw-r--r-- | stdlib/Makefile | 64 |
3 files changed, 57 insertions, 43 deletions
diff --git a/.gitattributes b/.gitattributes index 69fcb9781c..1a98474ae2 100644 --- a/.gitattributes +++ b/.gitattributes @@ -158,7 +158,6 @@ config/gnu/config.guess text eol=lf config/gnu/config.sub text eol=lf ocamldoc/remove_DEBUG text eol=lf ocamltest/getocamloptdefaultflags text eol=lf -stdlib/Compflags text eol=lf stdlib/sharpbang text eol=lf tools/ci/inria/remove-sinh-primitive.patch text eol=lf tools/check-typo text eol=lf diff --git a/stdlib/Compflags b/stdlib/Compflags deleted file mode 100755 index 8aa2439821..0000000000 --- a/stdlib/Compflags +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -#************************************************************************** -#* * -#* OCaml * -#* * -#* Xavier Leroy, projet Cristal, INRIA Rocquencourt * -#* * -#* Copyright 2004 Institut National de Recherche en Informatique et * -#* en Automatique. * -#* * -#* All rights reserved. This file is distributed under the terms of * -#* the GNU Lesser General Public License version 2.1, with the * -#* special exception on linking described in the file LICENSE. * -#* * -#************************************************************************** - -case $1 in - stdlib.cm[iox]) - echo ' -nopervasives -no-alias-deps -w -49' \ - ' -pp "$AWK -f expand_module_aliases.awk"';; - camlinternalOO.cmx) echo ' -inline 0 -afl-inst-ratio 0';; - camlinternalLazy.cmx) echo ' -afl-inst-ratio 0';; - # never instrument camlinternalOO or camlinternalLazy (PR#7725) - stdlib__buffer.cmx) echo ' -inline 3';; - # make sure add_char is inlined (PR#5872) - stdlib__buffer.cm[io]) echo ' -w A';; - camlinternalFormat.cm[io]) echo ' -w Ae';; - camlinternalFormatBasics*.cm[iox]) echo ' -nopervasives';; - stdlib__printf.cm[io]|stdlib__format.cm[io]|stdlib__scanf.cm[io]) - echo ' -w Ae';; - stdlib__scanf.cmx) echo ' -inline 9';; - *Labels.cm[ox]) echo ' -nolabels -no-alias-deps';; - stdlib__float.cm[ox]) echo ' -nolabels -no-alias-deps';; - *) echo ' ';; -esac diff --git a/stdlib/Makefile b/stdlib/Makefile index 31fa6cb6ac..039789e2f5 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -35,6 +35,57 @@ CAMLOPT=$(CAMLRUN) $(OPTCOMPILER) CAMLDEP=$(BOOT_OCAMLC) -depend DEPFLAGS=-slash +quote := ' +AWKPP = $(quote)$(AWK) -f expand_module_aliases.awk$(quote) + +# Module-specific compiler flags + +# A few files in this directory need to be compiled with module-specific +# compiler flags, which are defined in the MODCOMPFLAGS make variable. +# This variable is defined to be empty by default and receives the +# module-specific flags when appropriate. + +MODCOMPFLAGS = + +# The definitions of MODCOMPFLAGS take one of the two foollowing forms: +# 1. target: MODCOMPFLAGS = flags means that MODCOMPFLAGS will have the +# value "flags" when target is compiled and also when its prerequisites +# are compiled as prerequisites of this target (if they are compiled +# as prerequisites of another target, then the definition won't be taken +# into account) +# 2. target: private MODCOMPFLAGS = flags defines MODCOMPFLAGS to be +# "flags" but only for the target itself, not for its prerequisites + +# Here, "private" is used when a flag should be used to compile a +# .cmo file but should not be passed when compiling the prerequisite +# .cmi file. + +stdlib.cmo stdlib.cmx: MODCOMPFLAGS = \ + -nopervasives -no-alias-deps -w -49 -pp $(AWKPP) + +# never instrument camlinternalOO or camlinternalLazy (PR#7725) +camlinternalOO.cmx: MODCOMPFLAGS = -inline 0 -afl-inst-ratio 0 +camlinternalLazy.cmx: MODCOMPFLAGS = -afl-inst-ratio 0 + +stdlib__buffer.cmx: MODCOMPFLAGS = -inline 3 + +stdlib__buffer.cmo: MODCOMPFLAGS = -w A + +camlinternalFormat.cmo: MODCOMPFLAGS = -w Ae + +camlinternalFormatBasics.cmo camlinternalFormatBasics.cmx: \ + MODCOMPFLAGS = -nopervasives + +stdlib__printf.cmo stdlib__format.cmo \ +stdlib__scanf.cmo: MODCOMPFLAGS = -w Ae + +stdlib__scanf.cmx: MODCOMPFLAGS = -inline 9 + +%Labels.cmo %Labels.cmx: private MODCOMPFLAGS = -nolabels -no-alias-deps + +stdlib__float.cmo stdlib__float.cmx: \ + private MODCOMPFLAGS = -nolabels -no-alias-deps + OC_CPPFLAGS += -I$(ROOTDIR)/runtime # Object file prefix @@ -213,23 +264,22 @@ clean:: export AWK %.cmi: %.mli - $(CAMLC) $(COMPFLAGS) $(shell ./Compflags $@) -c $< + $(CAMLC) $(COMPFLAGS) $(MODCOMPFLAGS) -c $< stdlib__%.cmi: %.mli - $(CAMLC) $(COMPFLAGS) $(shell ./Compflags $@) -o $@ -c $< + $(CAMLC) $(COMPFLAGS) $(MODCOMPFLAGS) -o $@ -c $< %.cmo: %.ml - $(CAMLC) $(COMPFLAGS) $(shell ./Compflags $@) -c $< + $(CAMLC) $(COMPFLAGS) $(MODCOMPFLAGS) -c $< stdlib__%.cmo: %.ml - $(CAMLC) $(COMPFLAGS) $(shell ./Compflags $@) -o $@ -c $< + $(CAMLC) $(COMPFLAGS) $(MODCOMPFLAGS) -o $@ -c $< %.cmx: %.ml - $(CAMLOPT) $(COMPFLAGS) $(OPTCOMPFLAGS) $(shell ./Compflags $@) -c $< + $(CAMLOPT) $(COMPFLAGS) $(OPTCOMPFLAGS) $(MODCOMPFLAGS) -c $< stdlib__%.cmx: %.ml - $(CAMLOPT) $(COMPFLAGS) $(OPTCOMPFLAGS) $(shell ./Compflags $@) \ - -o $@ -c $< + $(CAMLOPT) $(COMPFLAGS) $(OPTCOMPFLAGS) $(MODCOMPFLAGS) -o $@ -c $< # Dependencies on the compiler COMPILER_DEPS=$(filter-out -use-prims $(CAMLRUN), $(CAMLC)) |