summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.config.in8
-rw-r--r--autoconf/configure.ac31
-rw-r--r--bindings/Makefile4
-rw-r--r--test/Makefile4
4 files changed, 41 insertions, 6 deletions
diff --git a/Makefile.config.in b/Makefile.config.in
index fd17ad4ced..34ad773918 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 25cdfec4f3..0d15ee0e96 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 82f84bc9cb..792bb0ac79 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 a09f55da57..d1e9fba626 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))"