X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=configure.in;h=959731134ce6ce13e160ce5c23be214906413d7d;hp=4ea748263fb8f2193520a40f5f58d2aa513840c5;hb=ade814a59b4660c5af865dd86cdd48cfa55e1ae5;hpb=20b1459a95e9a287e7e552ba0211095a92d1a59a diff --git a/configure.in b/configure.in index 4ea7482..9597311 100644 --- a/configure.in +++ b/configure.in @@ -1,55 +1,136 @@ -AC_INIT(configure.in) - +AC_INIT(libftdi, 0.17) +AM_INIT_AUTOMAKE AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(libftdi, 0.14) AC_LANG_C AC_PROG_CC AM_PROG_LIBTOOL +AC_PROG_CXX -dnl check for libusb-config -AC_PATH_PROG(HAVELIBUSB, libusb-config, $PATH) - -if test ! -z "$HAVELIBUSB"; then - LIBUSB_CFLAGS=`$HAVELIBUSB --cflags` - LIBUSB_LIBS=`$HAVELIBUSB --libs` +AC_CONFIG_MACRO_DIR([m4]) - CFLAGS="$CFLAGS $LIBUSB_CFLAGS" - LIBS="$LIBS $LIBUSB_LIBS" +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-config not found. You need a working libusb installation.]) + AC_MSG_ERROR([libusb-1.0 not found.]) fi -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;}'` +AC_ARG_WITH(examples, + AS_HELP_STRING([--without-examples], [disable example programs])) +AM_CONDITIONAL(BUILD_EXAMPLES, [test "x$with_examples" != "xno"]) -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.]) -else - AC_MSG_RESULT(yes) -fi +LIBFTDI_MODULES= +LIBFTDI_MODULES_PKGCONFIG= -ENABLE_ASYNC_MODE=0 -AC_ARG_WITH(async-mode, -[ --with-async-mode enable experimental async mode. Linux only.], +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)]), [ - AC_MSG_CHECKING(for experimental linux async mode) - if test "$withval" != "no"; then - ENABLE_ASYNC_MODE=1 - CFLAGS="$CFLAGS -DLIBFTDI_LINUX_ASYNC_MODE" + 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 +else AC_MSG_RESULT(no) - fi -]) -AC_SUBST(ENABLE_ASYNC_MODE) +fi +AM_CONDITIONAL(HAVE_LIBFTDIPP, [test "x$ENABLE_LIBFTDIPP" = "x1"]) dnl check for doxygen -AC_PATH_PROG(DOXYGEN, 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) -AC_OUTPUT([libftdi-config],[chmod a+x libftdi-config]) -AC_OUTPUT(Makefile src/Makefile ftdipp/Makefile examples/Makefile doc/Doxyfile doc/Makefile libftdi.pc libftdipp.pc libftdi.spec) +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 "$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 + build_python_binding="no" +fi + +AC_SUBST(LIBFTDI_MODULES) +AC_SUBST(LIBFTDI_MODULES_PKGCONFIG) + +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) + +if test "x$ENABLE_LIBFTDIPP" = "x1"; then + AC_CONFIG_FILES(ftdipp/Makefile libftdipp.pc) +fi + +AC_OUTPUT