diff options
| author | Jason Gross | 2016-06-18 14:44:04 -0700 |
|---|---|---|
| committer | Jason Gross | 2016-06-18 14:44:04 -0700 |
| commit | 6bfdd3efccf852dad84b393b9272293434d65725 (patch) | |
| tree | 6d71600f3ecc31bfc0c254d0cb22868774c59314 | |
| parent | b2495b2326083776f9b15355acac77cde73545e1 (diff) | |
Fix the build on Windows
This fixes bug #4828 (https://coq.inria.fr/bugs/show_bug.cgi?id=4828).
| -rw-r--r-- | configure.ml | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/configure.ml b/configure.ml index 71502058fe..d253eecd99 100644 --- a/configure.ml +++ b/configure.ml @@ -178,6 +178,19 @@ let which prog = let program_in_path prog = try let _ = which prog in true with Not_found -> false +(** As per bug #4828, ocamlfind on Windows/Cygwin barfs if you pass it + a quoted path to camlpXo via -pp. So we only quote camlpXo on not + Windows, and warn on Windows if the path contains spaces *) +let contains_suspicious_characters str = + List.fold_left (fun b ch -> String.contains str ch || b) false [' '; '\t'] + +let win_aware_quote_executable str = + if not (os_type_win32 || os_type_cygwin) then + sprintf "%S" str + else + let _ = if contains_suspicious_characters str then + printf "*Warning* The string %S contains suspicious characters; ocamlfind might fail\n" str in + str (** * Date *) @@ -1064,7 +1077,7 @@ let _ = write_configml "config/coq_config.ml" (** * Symlinks or copies for the checker *) let _ = - let prog, args, prf = + let prog, args, prf = if arch = "win32" then "cp", [], "" else "ln", ["-s"], "../" in List.iter (fun file -> @@ -1126,7 +1139,7 @@ let write_makefile f = pr "# Camlp4 : flavor, binaries, libraries ...\n"; pr "# NB : avoid using CAMLP4LIB (conflict under Windows)\n"; pr "CAMLP4=%s\n" camlpX; - pr "CAMLP4O=%S\n" camlpXo; + pr "CAMLP4O=%s\n" (win_aware_quote_executable camlpXo); pr "CAMLP4COMPAT=%s\n" camlp4compat; pr "MYCAMLP4LIB=%S\n\n" camlpXlibdir; pr "# Your architecture\n"; |
