diff options
-rw-r--r-- | Makefile.build | 22 | ||||
-rw-r--r-- | config/Makefile.template | 3 | ||||
-rw-r--r-- | config/coq_config.mli | 2 | ||||
-rwxr-xr-x | configure | 15 | ||||
-rw-r--r-- | scripts/coqmktop.ml | 3 |
5 files changed, 33 insertions, 12 deletions
diff --git a/Makefile.build b/Makefile.build index 0a60e4bb8..3a5cfd36a 100644 --- a/Makefile.build +++ b/Makefile.build @@ -196,7 +196,7 @@ $(CHICKENOPT): checker/check.cmxa checker/main.ml $(CHICKENBYTE): checker/check.cma checker/main.ml $(SHOW)'OCAMLC -o $@' - $(HIDE)$(OCAMLC) $(CHKBYTEFLAGS) -custom -o $@ unix.cma gramlib.cma checker/check.cma checker/main.ml + $(HIDE)$(OCAMLC) $(CHKBYTEFLAGS) -o $@ unix.cma gramlib.cma checker/check.cma checker/main.ml $(CHICKEN): $(ORDER_ONLY_SEP) $(BESTCHICKEN) cd bin && ln -sf coqchk.$(BEST)$(EXE) coqchk$(EXE) @@ -205,7 +205,7 @@ $(CHICKEN): $(ORDER_ONLY_SEP) $(BESTCHICKEN) $(COQMKTOPBYTE): $(COQMKTOPCMO) $(SHOW)'OCAMLC -o $@' - $(HIDE)$(OCAMLC) $(BYTEFLAGS) -custom -o $@ str.cma unix.cma \ + $(HIDE)$(OCAMLC) $(BYTEFLAGS) -o $@ str.cma unix.cma \ $(COQMKTOPCMO) $(OSDEPLIBS) $(COQMKTOPOPT): $(COQMKTOPCMX) @@ -227,7 +227,7 @@ scripts/tolink.ml: Makefile.build Makefile.common $(COQCBYTE): $(COQCCMO) $(COQTOPBYTE) $(BESTCOQTOP) $(SHOW)'OCAMLC -o $@' - $(HIDE)$(OCAMLC) $(BYTEFLAGS) -custom -o $@ unix.cma $(COQCCMO) $(OSDEPLIBS) + $(HIDE)$(OCAMLC) $(BYTEFLAGS) -o $@ unix.cma $(COQCCMO) $(OSDEPLIBS) $(COQCOPT): $(COQCCMX) $(COQTOPOPT) $(BESTCOQTOP) $(SHOW)'OCAMLOPT -o $@' @@ -368,7 +368,7 @@ contrib/micromega/csdpcert$(EXE): $(CSDPCERTCMX) else contrib/micromega/csdpcert$(EXE): $(CSDPCERTCMO) $(SHOW)'OCAMLC -o $@' - $(HIDE)$(OCAMLC) -custom $(BYTEFLAGS) nums.cma -o $@ $(CSDPCERTCMO) + $(HIDE)$(OCAMLC) $(BYTEFLAGS) nums.cma -o $@ $(CSDPCERTCMO) endif ########################################################################### @@ -467,7 +467,7 @@ bin/coq-interface.opt$(EXE): $(COQMKTOP) $(LINKCMX) $(LIBCOQRUN) $(INTERFACECMX) bin/coq-parser$(EXE):$(LIBCOQRUN) $(PARSERCMO) $(SHOW)'OCAMLC -o $@' - $(HIDE)$(OCAMLC) -custom -linkall $(BYTEFLAGS) -o $@ \ + $(HIDE)$(OCAMLC) $(COQRUNBYTEFLAGS) -linkall $(BYTEFLAGS) -o $@ \ dynlink.cma nums.cma $(LIBCOQRUN) $(CMA) $(PARSERCMO) bin/coq-parser.opt$(EXE): $(LIBCOQRUN) $(PARSERCMX) @@ -588,27 +588,27 @@ tools:: $(TOOLS) $(DEBUGPRINTERS) $(COQDEP): $(COQDEPCMO) $(SHOW)'OCAMLC -o $@' - $(HIDE)$(OCAMLC) $(BYTEFLAGS) -custom -o $@ unix.cma $(COQDEPCMO) $(OSDEPLIBS) + $(HIDE)$(OCAMLC) $(BYTEFLAGS) -o $@ unix.cma $(COQDEPCMO) $(OSDEPLIBS) $(GALLINA): $(GALLINACMO) $(SHOW)'OCAMLC -o $@' - $(HIDE)$(OCAMLC) $(BYTEFLAGS) -custom -o $@ $(GALLINACMO) + $(HIDE)$(OCAMLC) $(BYTEFLAGS) -o $@ $(GALLINACMO) $(COQMAKEFILE): tools/coq_makefile.cmo config/coq_config.cmo $(SHOW)'OCAMLC -o $@' - $(HIDE)$(OCAMLC) $(BYTEFLAGS) -custom -o $@ str.cma config/coq_config.cmo tools/coq_makefile.cmo + $(HIDE)$(OCAMLC) $(BYTEFLAGS) -o $@ str.cma config/coq_config.cmo tools/coq_makefile.cmo $(COQTEX): tools/coq-tex.cmo $(SHOW)'OCAMLC -o $@' - $(HIDE)$(OCAMLC) $(BYTEFLAGS) -custom -o $@ str.cma tools/coq-tex.cmo + $(HIDE)$(OCAMLC) $(BYTEFLAGS) -o $@ str.cma tools/coq-tex.cmo $(COQWC): tools/coqwc.cmo $(SHOW)'OCAMLC -o $@' - $(HIDE)$(OCAMLC) $(BYTEFLAGS) -custom -o $@ tools/coqwc.cmo + $(HIDE)$(OCAMLC) $(BYTEFLAGS) -o $@ tools/coqwc.cmo $(COQDOC): $(COQDOCCMO) $(SHOW)'OCAMLC -o $@' - $(HIDE)$(OCAMLC) $(BYTEFLAGS) -custom -o $@ str.cma unix.cma $(COQDOCCMO) + $(HIDE)$(OCAMLC) $(BYTEFLAGS) -o $@ str.cma unix.cma $(COQDOCCMO) ########################################################################### # Installation diff --git a/config/Makefile.template b/config/Makefile.template index a48bbceb9..cd19503ad 100644 --- a/config/Makefile.template +++ b/config/Makefile.template @@ -21,6 +21,9 @@ COQ_CONFIGURED=yes # Local use (no installation) LOCAL=LOCALINSTALLATION +# Bytecode link flags for VM ("-custom" or "-dllib -lcoqrun") +COQRUNBYTEFLAGS=XCOQRUNBYTEFLAGS + # Paths for true installation # BINDIR=path where coqtop, coqc, coqmktop, coq-tex, coqdep, gallina and # do_Makefile will reside diff --git a/config/coq_config.mli b/config/coq_config.mli index e8c1b5304..46404215f 100644 --- a/config/coq_config.mli +++ b/config/coq_config.mli @@ -24,6 +24,8 @@ val camlp4lib : string (* where is the library of Camlp4 *) val best : string (* byte/opt *) val arch : string (* architecture *) val osdeplibs : string (* OS dependant link options for ocamlc *) +val coqrunbyteflags : string (* -custom/-dllib -lcoqrun *) + (* val defined : string list (* options for lib/ocamlpp *) *) @@ -32,6 +32,8 @@ usage () { printf "\tSet installation directory to <dir>\n" echo "-local" printf "\tSet installation directory to the current source tree\n" + echo "-coqrunbyteflags" + printf "\tSet link flags for VM-dependent bytecode\n" echo "-src" printf "\tSpecifies the source directory\n" echo "-bindir" @@ -105,6 +107,7 @@ ar_exec=ar ranlib_exec=ranlib local=false +coqrunbyteflags_spec=no src_spec=no prefix_spec=no bindir_spec=no @@ -138,6 +141,9 @@ while : ; do prefix="$2" shift;; -local|--local) local=true;; + -coqrunbyteflags|--coqrunbyteflags) coqrunbyteflags_spec=yes + coqrunbyteflags="$2" + shift;; -src|--src) src_spec=yes COQSRC="$2" shift;; @@ -755,6 +761,12 @@ case $coqdocdir_spec/$prefix_spec/$local in esac;; esac +case $coqrunbyteflags_spec/$local in + yes/*) COQRUNBYTEFLAGS="$coqrunbyteflags";; + */true) COQRUNBYTEFLAGS="-custom";; + *) COQRUNBYTEFLAGS="-custom";; +esac + # case $emacs_spec in # no) echo "Which Emacs command should I use to compile coq.el [$emacs_def] ?" # read EMACS @@ -775,6 +787,7 @@ echo " Architecture : $ARCH" if test ! -z "$OS" ; then echo " Operating system : $OS" fi +echo " Coq VM bytecode link flags : $COQRUNBYTEFLAGS" echo " OS dependent libraries : $OSDEPLIBS" echo " Objective-Caml/Camlp4 version : $CAMLVERSION" echo " Objective-Caml/Camlp4 binaries in : $CAMLBIN" @@ -863,6 +876,7 @@ cat << END_OF_COQ_CONFIG > $mlconfig_file (* DO NOT EDIT THIS FILE: automatically generated by ../configure *) let local = $local +let coqrunbyteflags = "$COQRUNBYTEFLAGS" let bindir = "$ESCBINDIR" let coqlib = "$ESCLIBDIR" let coqtop = "$ESCCOQTOP" @@ -910,6 +924,7 @@ chmod a-w "$mlconfig_file" rm -f "$COQSRC/config/Makefile" sed -e "s|LOCALINSTALLATION|$local|" \ + -e "s|XCOQRUNBYTEFLAGS|$COQRUNBYTEFLAGS|" \ -e "s|COQSRCDIRECTORY|$COQSRC|" \ -e "s|COQVERSION|$VERSION|" \ -e "s|BINDIRDIRECTORY|$ESCBINDIR|" \ diff --git a/scripts/coqmktop.ml b/scripts/coqmktop.ml index ef869a17e..c89ea827e 100644 --- a/scripts/coqmktop.ml +++ b/scripts/coqmktop.ml @@ -289,7 +289,8 @@ let main () = (* bytecode (we shunt ocamlmktop script which fails on win32) *) let ocamlmktoplib = " toplevellib.cma" in let ocamlcexec = Filename.concat Coq_config.camldir "ocamlc" in - let ocamlccustom = ocamlcexec^" -custom -linkall" in + let ocamlccustom = Printf.sprintf "%s %s -linkall " + ocamlcexec Coq_config.coqrunbyteflags in (if !top then ocamlccustom^ocamlmktoplib else ocamlccustom) in (* files to link *) |