Add ftdi_eeprom target (currently disabled). Get version info from CMakeLists.txt
[libftdi] / configure.in
index 00e4cf2..9597311 100644 (file)
-dnl    This file is part of the KDE libraries/packages
-dnl    Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
-dnl                       modified by Walter Tasin (tasin@kdevelop.org)
-dnl                       for c++ console applications
-
-dnl    This file is free software; you can redistribute it and/or
-dnl    modify it under the terms of the GNU Library General Public
-dnl    License as published by the Free Software Foundation; either
-dnl    version 2 of the License, or (at your option) any later version.
-
-dnl    This library is distributed in the hope that it will be useful,
-dnl    but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-dnl    Library General Public License for more details.
-
-dnl    You should have received a copy of the GNU Library General Public License
-dnl    along with this library; see the file COPYING.LIB.  If not, write to
-dnl    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-dnl    Boston, MA 02111-1307, USA.
-
-# Original Author was Kalle@kde.org
-# I lifted it in some mater. (Stephan Kulow)
-# I used much code from Janos Farkas
-
-dnl Process this file with autoconf to produce a configure script.
-
-AC_INIT(acinclude.m4) dnl a source file from your sub dir
-
-dnl This is so we can use kde-common
-AC_CONFIG_AUX_DIR(admin)
-
-dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
-unset CDPATH
-
-dnl Checking host/target/build systems, for make, install etc.
-AC_CANONICAL_SYSTEM
-dnl Perform program name transformation
-AC_ARG_PROGRAM
-
-dnl Automake doc recommends to do this only here. (Janos)
-AM_INIT_AUTOMAKE(libftdi, 0.1) dnl searches for some needed programs
-
-dnl almost the same like KDE_SET_PEFIX but the path is /usr/local
-dnl
-unset CDPATH
-dnl make /usr/local the default for the installation
-AC_PREFIX_DEFAULT(/usr/local)
-
-if test "x$prefix" = "xNONE"; then
-  prefix=$ac_default_prefix
-  ac_configure_args="$ac_configure_args --prefix $prefix"
-fi
-dnl KDE_FAST_CONFIGURE
-dnl KDE_CONF_FILES
-
-dnl without this order in this file, automake will be confused!
-dnl
+AC_INIT(libftdi, 0.17)
+AM_INIT_AUTOMAKE
 AM_CONFIG_HEADER(config.h)
 
-dnl checks for programs.
-dnl first check for c compiler
-AC_CHECK_C_COMPILER
-
-dnl CFLAGS="$NOOPT_CFLAGS" dnl __kdevelop[noopt]__
-
-dnl create only shared libtool-libraries
-AC_ENABLE_SHARED(yes)
-
-dnl set the following to yes, if you want to create static
-dnl libtool-libraries, too.
-AC_ENABLE_STATIC(yes)
-
-dnl create a working libtool-script
-KDEV_PROG_LIBTOOL
-
-dnl activate the next macro call for DLOPEN tests and setting LIBDL
-dnl   (n.b. KDE_MISC_TESTS does the same to you, so use either this or the next one)
-dnl KDE_CHECK_DLOPEN 
-
-dnl activate the next macro call for some additional tests
-dnl   (compat, crypt, socket, nsl, dlopen, ...)
-dnl KDE_MISC_TESTS dnl __kdevelop__
-
-dnl KDE_NEED_FLEX dnl __kdevelop__
-dnl AC_PROG_YACC dnl __kdevelop__
-
-
-dnl check for libusb-config
-AC_PATH_PROG(HAVELIBUSB, libusb-config, $PATH)
-
-if test ! -z "$HAVELIBUSB"; then
-dnl   LIBUSB_CFLAGS=`$HAVELIBUSB --cflags`
-   LIBUSB_LIBS=`$HAVELIBUSB --libs`
+AC_LANG_C
+AC_PROG_CC
+AM_PROG_LIBTOOL
+AC_PROG_CXX
+
+AC_CONFIG_MACRO_DIR([m4])
+
+dnl check for libusb-1.0
+have_libusb_1_0=no
+PKG_CHECK_MODULES(LIBUSB_1_0, [ libusb-1.0 >= 1.0.0 ], have_libusb_1_0=yes, have_libusb_1_0=no)
+if test "$have_libusb_1_0" = "yes"; then
+  CFLAGS="$CFLAGS $LIBUSB_1_0_CFLAGS"
+  CXXFLAGS="$CXXFLAGS $LIBUSB_1_0_CFLAGS"
+  USB_LIBS="$USB_LIBS $LIBUSB_1_0_LIBS"
+  HAVE_USB=yes
+  AC_DEFINE(HAVE_LIBUSB_1_0, 1, [Define to 1 if you have libusb-1.0.])
+  AC_SUBST(USB_LIBS)
+else
+  AC_MSG_ERROR([libusb-1.0 not found.])
+fi
 
-   CFLAGS="$CFLAGS $LIBUSB_CFLAGS"
-   LIBS="$LIBS $LIBUSB_LIBS"
+AC_ARG_WITH(examples,
+  AS_HELP_STRING([--without-examples], [disable example programs]))
+AM_CONDITIONAL(BUILD_EXAMPLES, [test "x$with_examples" != "xno"])
+
+LIBFTDI_MODULES=
+LIBFTDI_MODULES_PKGCONFIG=
+
+dnl libftdi C++ wrapper. Needs boost.
+AX_BOOST_BASE([1.33])
+ENABLE_LIBFTDIPP=0
+AC_MSG_CHECKING(if we can build the C++ wrapper)
+AC_ARG_ENABLE(libftdipp,
+                          AS_HELP_STRING([--enable-libftdipp],
+                                                     [enable libftdi C++ wrapper. Needs boost (default: auto)]),
+[
+    if test "$enableval" != "no"; then
+        if test "x$HAVE_BOOST" != "xyes"; then
+            AC_MSG_ERROR(Sorry, we need the boost library for the C++ wrapper)
+        fi
+        ENABLE_LIBFTDIPP=1
+    fi
+],
+[
+    dnl Build the wrapper if we got the boost library
+    if test "x$HAVE_BOOST" = "xyes"; then
+        ENABLE_LIBFTDIPP=1
+    fi
+])
+if test "x$ENABLE_LIBFTDIPP" = "x1"; then
+    LIBFTDI_MODULES="$LIBFTDI_MODULES ftdipp"
+    LIBFTDI_MODULES_PKGCONFIG="$LIBFTDI_MODULES_PKGCONFIG libftdipp.pc"
+    AC_MSG_RESULT(yes)
 else
-   AC_MSG_ERROR([*** libusb-config not found. You need a working libusb installation.])
+    AC_MSG_RESULT(no)
 fi
+AM_CONDITIONAL(HAVE_LIBFTDIPP, [test "x$ENABLE_LIBFTDIPP" = "x1"])
 
-dnl check for version of libusb
-AC_MSG_CHECKING([if libusb version is >= 0.1.7])
-libusb_version_needed="1007"
-libusb_version=`$HAVELIBUSB --version | sed -e "s/libusb //" | awk 'BEGIN { FS = "."; } { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'`
+dnl check for doxygen
+AC_ARG_WITH(docs,
+  AS_HELP_STRING([--without-docs], [disable doxygen usage]))
+if test "x$with_docs" != "xno"; then
+  AC_PATH_PROG(DOXYGEN, doxygen)
+else
+  DOXYGEN=
+fi
+AM_CONDITIONAL(HAVE_DOXYGEN, test -n $DOXYGEN)
+
+dnl ============================
+dnl Bindings for other languages
+dnl ==
+
+dnl ===============
+dnl Checks for SWIG
+dnl ===============
+AC_PATH_PROG([SWIG], [swig])
+AM_CONDITIONAL(HAVE_SWIG, test "$SWIG")
+
+dnl =================
+dnl Checks for Python
+dnl =================
+AM_PATH_PYTHON([2.0],
+               [],
+               [AC_MSG_WARN([Python not found. Python is required to build presage python binding. Python can be obtained from http://www.pyth
+on.org])])
+if test "$PYTHON"
+then
+     python_include_path=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
+     AC_CHECK_HEADERS([${python_include_path}/Python.h],
+                      [have_python_header=true],
+                      [AC_MSG_WARN([Python.h header file not found. Python development files are required to build presage python binding. Pyt
+hon can be obtained from http://www.python.org])],
+                      [])
+fi
+AM_CONDITIONAL(HAVE_PYTHON, test "$PYTHON" -a "x$have_python_header" = "xtrue")
+
+AC_ARG_ENABLE([python-binding],
+               AS_HELP_STRING([--enable-python-binding],
+                              [build python binding (default=no)]),
+               [ac_enable_python_binding=$enableval],
+               [ac_enable_python_binding=no])
+if test "x$ac_enable_python_binding" = "xyes"
+then
+    if test ! "$SWIG" -o ! "$PYTHON" -o ! "x$have_python_header" = "xtrue"
+    then
+        AC_MSG_WARN([Python binding for libftdi cannot be built. Ensure that SWIG and Python packages are available.])
+    fi
+else
+    AC_MSG_NOTICE([Python binding for libftdi will not be built.])
+    AC_MSG_NOTICE([Enable Python binding module building with --enable-python-binding])
+fi
+AM_CONDITIONAL(ENABLE_PYTHON_BINDING, test "x$ac_enable_python_binding" = "xyes")
 
-if test $libusb_version -lt $libusb_version_needed; then
-   AC_MSG_RESULT(no)
-   AC_MSG_ERROR([*** libusb is too old ($libusb_version). You need a libusb installation newer or equal to 0.1.7.])
+if test "$SWIG" -a "$PYTHON" -a "x$have_python_header" = "xtrue" -a "x$ac_enable_python_binding" = "xyes"
+then
+    AC_MSG_NOTICE([Python binding for libftdi will be built.])
+    build_python_binding="yes"
 else
-   AC_MSG_RESULT(yes)
+    build_python_binding="no"
 fi
 
+AC_SUBST(LIBFTDI_MODULES)
+AC_SUBST(LIBFTDI_MODULES_PKGCONFIG)
 
-dnl KDE_CHECK_EXTRA_LIBS
-all_libraries="$all_libraries $USER_LDFLAGS"
-all_includes="$all_includes $USER_INCLUDES"
-AC_SUBST(all_includes)
-AC_SUBST(all_libraries)
+AC_CONFIG_FILES([libftdi-config],[chmod a+x libftdi-config])
+AC_CONFIG_FILES(Makefile src/Makefile bindings/Makefile bindings/python/Makefile bindings/python/setup.py examples/Makefile doc/Doxyfile doc/Makefile libftdi.pc libftdi.spec)
 
-AC_SUBST(AUTODIRS)
+if test "x$ENABLE_LIBFTDIPP" = "x1"; then
+    AC_CONFIG_FILES(ftdipp/Makefile libftdipp.pc)
+fi
 
-KDE_CREATE_SUBDIRSLIST
-AC_CONFIG_FILES([ Makefile ])
-AC_CONFIG_FILES([ ftdi/Makefile ])
-AC_OUTPUT([libftdi-config], [chmod a+x libftdi-config])
 AC_OUTPUT
-if test "$all_tests" = "bad"; then
-  if test ! "$cache_file" = "/dev/null"; then
-    echo ""    
-    echo "Please remove the file $cache_file after changing your setup"
-    echo "so that configure will find the changes next time."
-    echo ""
-  fi
-else
-  echo ""
-  echo "Good - your configure finished. Start make now"
-  echo ""
-fi