aboutsummaryrefslogtreecommitdiff
path: root/configure.ml
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2020-06-22 17:52:18 +0200
committerEmilio Jesus Gallego Arias2021-03-03 16:06:14 +0100
commitab98d847d237af3cd0e46edef42218be65cfc98f (patch)
tree91d26077257724e2eeefe1bf39e24f24d34070be /configure.ml
parentef22a5aaf1728d840341d31befd67dd90c5b2e0e (diff)
[build] Split stdlib to it's own opam package.
We introduce a new package structure for Coq: - `coq-core`: Coq's OCaml tools code and plugins - `coq-stdlib`: Coq's stdlib [.vo files] - `coq`: meta-package that pulls `coq-{core,stdlib}` This has several advantages, in particular it allows to install Coq without the stdlib which is useful in several scenarios, it also open the door towards a versioning of the stdlib at the package level. The main user-visible change is that Coq's ML development files now live in `$lib/coq-core`, for compatibility in the regular build we install a symlink and support both setups for a while. Note that plugin developers and even `coq_makefile` should actually rely on `ocamlfind` to locate Coq's OCaml libs as to be more robust. There is a transient state where we actually look for both `$coqlib/plugins` and `$coqlib/../coq-core/plugins` as to support the non-ocamlfind plus custom variables. This will be much improved once #13617 is merged (which requires this PR first), then, we will introduce a `coq.boot` library so finally `coqdep`, `coqchk`, etc... can share the same path setup code. IMHO the plan should work fine.
Diffstat (limited to 'configure.ml')
-rw-r--r--configure.ml11
1 files changed, 9 insertions, 2 deletions
diff --git a/configure.ml b/configure.ml
index 7814204e42..abea59bd60 100644
--- a/configure.ml
+++ b/configure.ml
@@ -336,9 +336,16 @@ let arg_profile = Arg.String (fun s -> prefs := Profiles.get s !prefs)
(* TODO : earlier any option -foo was also available as --foo *)
+let check_absolute = function
+ | None -> ()
+ | Some path ->
+ if Filename.is_relative path then
+ die "argument to -prefix must be an absolute path"
+ else ()
+
let args_options = Arg.align [
- "-prefix", arg_string_option (fun p prefix -> { p with prefix }),
- "<dir> Set installation directory to <dir>";
+ "-prefix", arg_string_option (fun p prefix -> check_absolute prefix; { p with prefix }),
+ "<dir> Set installation directory to <dir> (absolute path required)";
"-local", arg_set (fun p local -> { p with local }),
" Set installation directory to the current source tree";
"-no-ask", arg_clear (fun p interactive -> { p with interactive }),