diff --git a/Makefile b/Makefile index 582741e0b7567594271b8b4618460975daea49e5..2212163281b7a343eb57aebff51a58b5e1c0d2c5 100644 --- a/Makefile +++ b/Makefile @@ -1288,12 +1288,22 @@ gui: gui-$(OCAMLBEST) ALL_GUI_CMO= $(ALL_CMO) $(GRAPH_GUICMO) $(GUICMO) ALL_GUI_CMX= $(patsubst %.cma,%.cmxa,$(ALL_GUI_CMO:.cmo=.cmx)) +ifeq ($(NATIVE_THREADS),yes) +ifneq ($(PLATFORM),MacOS) +GUI_THREAD=-thread +else +GUI_THREAD= +endif +else +GUI_THREAD= +endif + bin/viewer.byte$(EXE): BYTE_LIBS+= $(GRAPH_GUICMO) bin/viewer.byte$(EXE): $(filter-out $(GRAPH_GUICMO),$(ALL_GUI_CMO)) \ $(GEN_BYTE_LIBS) \ $(PLUGIN_DYN_CMO_LIST) $(PLUGIN_DYN_GUI_CMO_LIST) $(PRINT_LINKING) $@ - $(OCAMLC) $(BLINKFLAGS) $(THREAD) -o $@ $(BYTE_LIBS) \ + $(OCAMLC) $(BLINKFLAGS) $(GUI_THREAD) -o $@ $(BYTE_LIBS) \ $(CMO) \ $(filter-out \ $(patsubst $(PLUGIN_GUI_LIB_DIR)/%,$(PLUGIN_LIB_DIR)/%,\ @@ -1307,7 +1317,7 @@ bin/viewer.opt$(EXE): $(filter-out $(GRAPH_GUICMX),$(ALL_GUI_CMX)) \ $(PLUGIN_DYN_CMX_LIST) $(PLUGIN_DYN_GUI_CMX_LIST) \ $(PLUGIN_CMX_LIST) $(PLUGIN_GUI_CMX_LIST) $(PRINT_LINKING) $@ - $(OCAMLOPT) $(OLINKFLAGS) $(THREAD) -o $@ $(OPT_LIBS) \ + $(OCAMLOPT) $(OLINKFLAGS) $(GUI_THREAD) -o $@ $(OPT_LIBS) \ $(CMX) \ $(filter-out \ $(patsubst $(PLUGIN_GUI_LIB_DIR)/%,$(PLUGIN_LIB_DIR)/%,\ @@ -2297,21 +2307,21 @@ PTESTS_SRC=ptests/ptests_config.ml ptests/ptests.ml PTESTS_CONFIG:= $(shell if test -d tests; then echo tests/ptests_config; fi) ifeq ($(NATIVE_THREADS),yes) -THREAD=-thread +PTEST_THREAD=-thread ptests: bin/ptests.$(PTESTSBEST)$(EXE) $(PTESTS_CONFIG) else -THREAD=-vmthread +PTEST_THREAD=-vmthread ptests: bin/ptests.byte$(EXE) $(PTESTS_CONFIG) endif bin/ptests.byte$(EXE): $(PTESTS_SRC) $(PRINT_LINKING) $@ - $(OCAMLC) -I ptests -dtypes $(THREAD) -g -o $@ \ + $(OCAMLC) -I ptests -dtypes $(PTEST_THREAD) -g -o $@ \ unix.cma threads.cma str.cma dynlink.cma $^ bin/ptests.opt$(EXE): $(PTESTS_SRC) $(PRINT_LINKING) $@ - $(OCAMLOPT) -I ptests -dtypes $(THREAD) -o $@ \ + $(OCAMLOPT) -I ptests -dtypes $(PTEST_THREAD) -o $@ \ unix.cmxa threads.cmxa str.cmxa dynlink.cmxa $^ GENERATED+=ptests/ptests_config.ml tests/ptests_config diff --git a/configure.in b/configure.in index 09121c03098bc616365e96ecc5ce9d4d9387366c..c87bf5bac293230276ad801656996a35491b4634 100644 --- a/configure.in +++ b/configure.in @@ -424,6 +424,7 @@ rm -f test_os_type.cmi test_os_type.cmo test_os_type.ml test_os_type if test "$OCAML_OS_TYPE" = "Win32"; then AC_MSG_RESULT(Win32) AC_CHECK_PROG(CYGPATH,cygpath,cygpath,no) + PLATFORM=Win32 OCAMLWIN32=yes EXE=.exe # OCaml on Win32 does not support vmthreads, use native ones. @@ -432,9 +433,16 @@ else OCAMLWIN32=no if test "$OCAML_OS_TYPE" = "Cygwin"; then AC_MSG_RESULT(Cygwin) + PLATFORM=Cygwin EXE=.exe else - AC_MSG_RESULT(Unix) + if test -x "/Applications/Mail.app"; then + AC_MSG_RESULT(MacOS) + PLATFORM=MacOS + else + AC_MSG_RESULT(Unix) + PLATFORM=Unix + fi EXE= fi @@ -1016,6 +1024,7 @@ check_frama_c_dependencies EXTERNAL_PLUGINS="${EXTERNAL_PLUGINS} ${EXTRA_EXTERNAL_PLUGINS}" +AC_SUBST(PLATFORM) AC_SUBST(VERBOSEMAKE) AC_SUBST(DEVELOPMENT) AC_SUBST(DOT) diff --git a/share/Makefile.config.in b/share/Makefile.config.in index f6b545148e78dc450b717a4f7d9b5c539f4a0cfc..f0bc8ae518d5973c1e46e30e979ecf6e1dcdfd73 100644 --- a/share/Makefile.config.in +++ b/share/Makefile.config.in @@ -91,6 +91,7 @@ HAS_OCAML405 ?=@HAS_OCAML405@ HAS_OCAML407 ?=@HAS_OCAML407@ HAS_OCAML408 ?=@HAS_OCAML408@ +PLATFORM ?=@PLATFORM@ NATIVE_THREADS ?=@HAS_NATIVE_THREADS@ OCAMLWIN32 ?=@OCAMLWIN32@ PTESTSBEST ?=@PTESTSBEST@