diff --git a/configure.ac b/configure.ac index 43a610aa..9782bab4 100644 --- a/configure.ac +++ b/configure.ac @@ -333,16 +333,35 @@ AM_CONDITIONAL([HAVE_CURSES], [test x$curses = xyes]) AM_CONDITIONAL([HAVE_WINDOWS], [test x$have_win32 = xtrue]) AM_CONDITIONAL([HAVE_x86_64], [test x$have_x86_64 = xtrue]) -AC_CONFIG_SUBDIRS([compat/libusb-1.0]) if test "x$want_usbutils" != xfalse; then + dlibusb="no" AC_DEFINE([USE_USBUTILS], [1], [Defined to 1 if usbutils support required]) - LIBUSB_LIBS="compat/libusb-1.0/libusb/.libs/libusb-1.0.a" - if test "x$have_linux" = "xtrue"; then - PKG_CHECK_MODULES([UDEV], [libudev], LIBUSB_LIBS+=" -ludev", [AC_MSG_ERROR([Missing required libudev dev])]) - fi - if test "x$have_darwin" = "xtrue"; then - LIBUSB_LIBS+=" -lobjc" - LDFLAGS+=" -framework CoreFoundation -framework IOKit" + AC_ARG_WITH([system-libusb], + [AC_HELP_STRING([--with-system-libusb],[Compile against dynamic system libusb (default use included static libusb)])], + [dlibusb=$withval] + ) + + if test "x$dlibusb" != xno; then + case $target in + *-*-freebsd*) + LIBUSB_LIBS="-lusb" + LIBUSB_CFLAGS="" + AC_DEFINE(HAVE_LIBUSB, 1, [Define if you have libusb-1.0]) + ;; + *) + PKG_CHECK_MODULES(LIBUSB, libusb-1.0, [AC_DEFINE(HAVE_LIBUSB, 1, [Define if you have libusb-1.0])], [AC_MSG_ERROR([Could not find usb library - please install libusb-1.0])]) + ;; + esac + else + AC_CONFIG_SUBDIRS([compat/libusb-1.0]) + LIBUSB_LIBS="compat/libusb-1.0/libusb/.libs/libusb-1.0.a" + if test "x$have_linux" = "xtrue"; then + LIBUSB_LIBS+=" -ludev" + fi + if test "x$have_darwin" = "xtrue"; then + LIBUSB_LIBS+=" -lobjc" + LDFLAGS+=" -framework CoreFoundation -framework IOKit" + fi fi else LIBUSB_LIBS=""