aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Pierre Boutillier <pierre.boutillier@ens-lyon.org>2014-08-26 10:46:18 +0200
committerGravatar Pierre Boutillier <pierre.boutillier@ens-lyon.org>2014-08-26 17:48:50 +0200
commita410de733817ff337cfae1e305cb0283ccebecb1 (patch)
treec796acc24d9effc80fd1702595165a764c94d972
parentbcfd854d7a6e012ac6bf116487a59a0f997725ee (diff)
Configure.ml creates metadata to annotate MacOS binaries
-rw-r--r--.gitignore1
-rw-r--r--Makefile2
-rw-r--r--Makefile.common5
-rw-r--r--configure.ml31
4 files changed, 36 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore
index cb5e7c818..b91f40129 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,6 +47,7 @@ plugins/*/*_mod.ml
myocamlbuild_config.ml
config/Makefile
config/coq_config.ml
+config/Info-*.plist
dev/ocamldebug-coq
plugins/micromega/csdpcert
kernel/byterun/dllcoqrun.so
diff --git a/Makefile b/Makefile
index 31b36c792..c7fb1ff76 100644
--- a/Makefile
+++ b/Makefile
@@ -239,7 +239,7 @@ cacheclean:
find theories plugins test-suite -name '.*.aux' -delete
cleanconfig:
- rm -f config/Makefile config/coq_config.ml myocamlbuild_config.ml dev/ocamldebug-v7
+ rm -f config/Makefile config/coq_config.ml myocamlbuild_config.ml dev/ocamldebug-v7 config/Info-*.plist
distclean: clean cleanconfig cacheclean
diff --git a/Makefile.common b/Makefile.common
index 7d05f591d..5b90e19db 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -22,8 +22,6 @@ COQTOPEXE:=bin/coqtop$(EXE)
CHICKENBYTE:=bin/coqchk.byte$(EXE)
CHICKEN:=bin/coqchk$(EXE)
-FAKEIDE:=bin/fake_ide$(EXE)
-
ifeq ($(CAMLP4),camlp4)
CAMLP4MOD:=camlp4lib
else
@@ -95,9 +93,12 @@ GALLINA:=bin/gallina$(EXE)
COQTEX:=bin/coq-tex$(EXE)
COQWC:=bin/coqwc$(EXE)
COQDOC:=bin/coqdoc$(EXE)
+FAKEIDE:=bin/fake_ide$(EXE)
TOOLS:=$(COQDEP) $(COQMAKEFILE) $(GALLINA) $(COQTEX) $(COQWC) $(COQDOC) $(COQC)
+PRIVATEBINARIES:=$(FAKEIDE) $(COQDEPBOOT)
+
###########################################################################
# Documentation
###########################################################################
diff --git a/configure.ml b/configure.ml
index 7cb37e82c..a586e6a49 100644
--- a/configure.ml
+++ b/configure.ml
@@ -12,8 +12,12 @@
open Printf
let coq_version = "trunk"
+let coq_macos_version = "8.4.99" (** "[...] should be a string comprised of
+three non-negative, period-separed integers [...]" *)
let vo_magic = 8511
let state_magic = 58511
+let distributed_exec = ["coqtop";"coqc";"coqchk";"coqdoc";"coqmktop";"coqdoc";
+"coq_makefile";"coq-tex";"gallina";"coqwc";"csdpcert"]
let verbose = ref false (* for debugging this script *)
@@ -1146,3 +1150,30 @@ let write_makefile f =
Unix.chmod f 0o444
let _ = write_makefile "config/Makefile"
+
+let write_macos_metadata exec =
+ let f = "config/Info-"^exec^".plist" in
+ let () = safe_remove f in
+ let o = open_out f in
+ let pr s = fprintf o s in
+ pr "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
+ pr "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n";
+ pr "<plist version=\"1.0\">\n";
+ pr "<dict>\n";
+ pr " <key>CFBundleIdentifier</key>\n";
+ pr " <string>fr.inria.coq.%s</string>\n" exec;
+ pr " <key>CFBundleName</key>\n";
+ pr " <string>%s</string>\n" exec;
+ pr " <key>CFBundleVersion</key>\n";
+ pr " <string>%s</string>\n" coq_macos_version;
+ pr " <key>CFBundleShortVersionString</key>\n";
+ pr " <string>%s</string>\n" coq_macos_version;
+ pr " <key>CFBundleInfoDictionaryVersion</key>\n";
+ pr " <string>6.0</string>\n";
+ pr "</dict>\n";
+ pr "</plist>\n";
+ let () = close_out o in
+ Unix.chmod f 0o444
+
+let () = if arch = "Darwin" then
+List.iter write_macos_metadata distributed_exec