Add enable-languages build option
authorAndre Heinecke <aheinecke@intevation.de>
Wed, 2 Mar 2016 13:00:48 +0000 (14:00 +0100)
committerAndre Heinecke <aheinecke@intevation.de>
Wed, 2 Mar 2016 13:00:48 +0000 (14:00 +0100)
* acinclude.m4 (LIST_MEMBER): New macro.
* configure.ac (enable-languages): New option. Add info output.
* lang/Makefile.am: Only add enabled language subdirs.

acinclude.m4
configure.ac
lang/Makefile.am

index cdfe6e4..575e526 100644 (file)
@@ -58,3 +58,19 @@ AC_DEFUN([GNUPG_CHECK_VA_COPY],
     AC_MSG_RESULT($gnupg_cv_must_copy_va_byval)
   fi
 ])
+
+dnl LIST_MEMBER()
+dnl Check wether an element ist contained in a list.  Set `found' to
+dnl `1' if the element is found in the list, to `0' otherwise.
+AC_DEFUN([LIST_MEMBER],
+[
+name=$1
+list=$2
+found=0
+
+for n in $list; do
+  if test "x$name" = "x$n"; then
+    found=1
+  fi
+done
+])
index fb6fa73..fc5f99e 100644 (file)
@@ -146,6 +146,8 @@ have_w32_system=no
 have_w64_system=no
 build_w32_glib=no
 build_w32_qt=no
+available_languages="cpp cl"
+default_languages="cpp cl"
 case "${host}" in
     x86_64-*mingw32*)
         have_w64_system=yes
@@ -245,6 +247,24 @@ if test x$fixed_search_path != x ; then
                     [Locate binaries only via this PATH])
 fi
 
+AC_ARG_ENABLE([languages],
+              AC_HELP_STRING([--enable-languages=languages],
+                             [enable only specific language bindings]),
+                             [enabled_languages=`echo $enableval | \
+                             tr ',:' '  ' | tr '[A-Z]' '[a-z]' | \
+                             sed 's/c++/cpp/'`],
+                             [enabled_languages="$default_languages"])
+if test "x$enabled_languages" = "x" \
+   -o "$enabled_languages" = "no"; then
+   enabled_languages=
+fi
+for language in $enabled_languages; do
+    LIST_MEMBER($language, $available_languages)
+    if test "$found" = "0"; then
+       AC_MSG_ERROR([unsupported language binding specified])
+    fi
+done
+AC_SUBST(ENABLED_LANGUAGES, $enabled_languages)
 
 #
 # Provide information about the build.
@@ -639,12 +659,14 @@ AC_OUTPUT
 echo "
         GPGME v${VERSION} has been configured as follows:
 
-        Revision:        mym4_revision  (mym4_revision_dec)
-        Platform:        $host
+        Revision:          mym4_revision  (mym4_revision_dec)
+        Platform:          $host
+
+        UI Server:         $uiserver
+        FD Passing:        $use_descriptor_passing
+        GPGME Pthread:     $have_pthread
 
-        UI Server:       $uiserver
-        FD Passing:      $use_descriptor_passing
-        GPGME Pthread:   $have_pthread
+        Language bindings: $enabled_languages
 "
 if test "x${gpg_config_script_warn}" != x; then
 cat <<G10EOF
index a8d33f5..bb75cf0 100644 (file)
@@ -17,6 +17,6 @@
 # License along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
 
-SUBDIRS = cl cpp
+SUBDIRS = $(ENABLED_LANGUAGES)
 
 EXTRA_DIST = README