diff --git a/Makefile.config.in b/Makefile.config.in index fd17ad4ced6..34ad773918b 100644 --- a/Makefile.config.in +++ b/Makefile.config.in @@ -168,6 +168,9 @@ HAVE_PTHREAD := @HAVE_PTHREAD@ LIBS := @LIBS@ +# Targets that we should build +TARGETS_TO_BUILD=@TARGETS_TO_BUILD@ + # Path to location for LLVM C/C++ front-end. You can modify this if you # want to override the value set by configure. LLVMGCCDIR := @LLVMGCCDIR@ @@ -259,3 +262,8 @@ NOLINKALL := @NOLINKALL@ # Get the value of HUGE_VAL_SANITY which will be either "yes" or "no" depending # on the check. HUGE_VAL_SANITY = @HUGE_VAL_SANITY@ + +# Bindings that we should build +BINDINGS_TO_BUILD = @BINDINGS_TO_BUILD@ +ALL_BINDINGS = @ALL_BINDINGS@ + diff --git a/autoconf/configure.ac b/autoconf/configure.ac index 25cdfec4f31..0d15ee0e968 100644 --- a/autoconf/configure.ac +++ b/autoconf/configure.ac @@ -432,6 +432,24 @@ case "$withval" in esac AC_SUBST(EXTRA_OPTIONS,$EXTRA_OPTIONS) +dnl Allow specific bindings to be specified for building (or not) +AC_ARG_ENABLE([bindings],AS_HELP_STRING([--enable-bindings], + [Build specific language bindings: all,auto,none,{binding-name} (default=auto)]),, + enableval=default) +BINDINGS_TO_BUILD="" +case "$enableval" in + all | yes | default | auto) BINDINGS_TO_BUILD="auto" ;; + all ) BINDINGS_TO_BUILD="ocaml" ;; + none | no) BINDINGS_TO_BUILD="" ;; + *)for a_binding in `echo $enableval|sed -e 's/,/ /g' ` ; do + case "$a_binding" in + ocaml) BINDINGS_TO_BUILD="ocaml $BINDINGS_TO_BUILD" ;; + *) AC_MSG_ERROR([Unrecognized binding $a_binding]) ;; + esac + done + ;; +esac + dnl===-----------------------------------------------------------------------=== dnl=== dnl=== SECTION 4: Check for programs we need and that they are the right version @@ -855,6 +873,19 @@ AC_DEFINE_UNQUOTED(LLVM_MANDIR, "$LLVM_MANDIR", AC_DEFINE_UNQUOTED(LLVM_CONFIGTIME, "$LLVM_CONFIGTIME", [Time at which LLVM was configured]) +# Determine which bindings to build. +if test "$BINDINGS_TO_BUILD" = auto ; then + BINDINGS_TO_BUILD="" + if test "x$OCAMLC" != x -a "x$OCAMLDEP" != x ; then + BINDINGS_TO_BUILD="ocaml $BINDINGS_TO_BUILD" + fi +fi +AC_SUBST(BINDINGS_TO_BUILD,$BINDINGS_TO_BUILD) + +# This isn't really configurey, but it avoids having to repeat the list in +# other files. +AC_SUBST(ALL_BINDINGS,ocaml) + dnl===-----------------------------------------------------------------------=== dnl=== dnl=== SECTION 10: Specify the output files and generate it diff --git a/bindings/Makefile b/bindings/Makefile index 82f84bc9cb9..792bb0ac791 100644 --- a/bindings/Makefile +++ b/bindings/Makefile @@ -11,8 +11,6 @@ LEVEL := .. include $(LEVEL)/Makefile.config -ifdef OCAMLC -PARALLEL_DIRS += ocaml -endif +PARALLEL_DIRS = $(BINDINGS_TO_BUILD) include $(LEVEL)/Makefile.common diff --git a/test/Makefile b/test/Makefile index a09f55da572..d1e9fba6261 100644 --- a/test/Makefile +++ b/test/Makefile @@ -34,9 +34,7 @@ ifndef RUNLLVM2CPP IGNORE_TESTS += llvm2cpp.exp endif -ifndef OCAMLC -IGNORE_TESTS += ocaml.exp -endif +IGNORE_TESTS += $(filter-out $(BINDINGS_TO_BUILD:=.exp),$(ALL_BINDINGS:=.exp)) ifdef IGNORE_TESTS RUNTESTFLAGS += --ignore "$(strip $(IGNORE_TESTS))"