Browse Source

Bugfix: Use pkgconfig for libusb when available, and try to guess the include path if not

Luke Dashjr 13 years ago
parent
commit
888c5d6d63
4 changed files with 36 additions and 17 deletions
  1. 1 1
      Makefile.am
  2. 33 14
      configure.ac
  3. 1 1
      libztex.h
  4. 1 1
      miner.h

+ 1 - 1
Makefile.am

@@ -8,7 +8,7 @@ EXTRA_DIST	= example.conf m4/gnulib-cache.m4 linux-usb-bfgminer \
 
 
 SUBDIRS		= lib ccan
 SUBDIRS		= lib ccan
 
 
-INCLUDES	= $(PTHREAD_FLAGS) -fno-strict-aliasing $(USB_FLAGS)
+INCLUDES	= $(PTHREAD_FLAGS) -fno-strict-aliasing $(USB_CFLAGS)
 
 
 bin_PROGRAMS	= bfgminer
 bin_PROGRAMS	= bfgminer
 
 

+ 33 - 14
configure.ac

@@ -66,7 +66,7 @@ have_cygwin=false
 have_win32=false
 have_win32=false
 PTHREAD_FLAGS="-lpthread"
 PTHREAD_FLAGS="-lpthread"
 USB_LIBS=""
 USB_LIBS=""
-USB_FLAGS=""
+USB_CFLAGS=""
 DLOPEN_FLAGS="-ldl"
 DLOPEN_FLAGS="-ldl"
 WS2_LIBS=""
 WS2_LIBS=""
 TIMER_LIBS=""
 TIMER_LIBS=""
@@ -190,15 +190,36 @@ if test "x$modminer" = xyes; then
 fi
 fi
 AM_CONDITIONAL([HAS_MODMINER], [test x$modminer = xyes])
 AM_CONDITIONAL([HAS_MODMINER], [test x$modminer = xyes])
 
 
-AC_CHECK_LIB(usb-1.0, libusb_init,
-	[
-		libusb=yes
-		AC_DEFINE([HAVE_LIBUSB], [1], [Defined to 1 if libusb is wanted])
-		USB_LIBS="-lusb-1.0"
-		USB_FLAGS=""
-	],
-	[libusb=no]
-)
+PKG_PROG_PKG_CONFIG()
+
+libusb=no
+libusb_include_path=""
+PKG_CHECK_MODULES([USB], [libusb-1.0],[
+	libusb=yes
+],[
+	AC_CHECK_LIB(usb-1.0, libusb_init,
+		[
+			AC_CHECK_DECL([libusb_init],[
+				libusb=yes
+			],[
+				AC_MSG_CHECKING([whether libusb_init is declared in subdirectory])
+				libusb_include_path=`echo '#include <libusb-1.0/libusb.h>' | cpp -M 2>/dev/null | sed 's/^[^[:space:]]\+[[:space:]]\+\([^[:space:]]\+\)\/.*$/\1/;t;d'`
+				if test "x$libusb_include_path" != "x"; then
+					libusb=yes
+					USB_CFLAGS="-I$libusb_include_path"
+					AC_MSG_RESULT([yes])
+				else
+					AC_MSG_RESULT([no])
+				fi
+			],[#include <libusb.h>])
+		],
+		[]
+	)
+])
+if test "x$libusb" = xyes; then
+	AC_DEFINE([HAVE_LIBUSB], [1], [Defined to 1 if libusb is wanted])
+	USB_LIBS="-lusb-1.0"
+fi
 
 
 AC_ARG_ENABLE([ztex],
 AC_ARG_ENABLE([ztex],
 	[AC_HELP_STRING([--disable-ztex],[Compile support for Ztex (default if libusb)])],
 	[AC_HELP_STRING([--disable-ztex],[Compile support for Ztex (default if libusb)])],
@@ -361,8 +382,6 @@ if test "x$bitforce$modminer" != xnono; then
 fi
 fi
 AM_CONDITIONAL([HAVE_LIBUDEV], [test x$libudev != xno])
 AM_CONDITIONAL([HAVE_LIBUDEV], [test x$libudev != xno])
 
 
-PKG_PROG_PKG_CONFIG()
-
 PKG_CHECK_MODULES([LIBCURL], [libcurl >= 7.15.6], [AC_DEFINE([CURL_HAS_SOCKOPT], [1], [Defined if version of curl supports sockopts.])],
 PKG_CHECK_MODULES([LIBCURL], [libcurl >= 7.15.6], [AC_DEFINE([CURL_HAS_SOCKOPT], [1], [Defined if version of curl supports sockopts.])],
 [PKG_CHECK_MODULES([LIBCURL], [libcurl >= 7.10.1], ,[AC_MSG_ERROR([Missing required libcurl dev >= 7.10.1])])])
 [PKG_CHECK_MODULES([LIBCURL], [libcurl >= 7.10.1], ,[AC_MSG_ERROR([Missing required libcurl dev >= 7.10.1])])])
 AC_SUBST(LIBCURL_LIBS)
 AC_SUBST(LIBCURL_LIBS)
@@ -424,7 +443,7 @@ AC_SUBST(TIMER_LIBS)
 AC_SUBST(MATH_LIBS)
 AC_SUBST(MATH_LIBS)
 AC_SUBST(UDEV_LIBS)
 AC_SUBST(UDEV_LIBS)
 AC_SUBST(USB_LIBS)
 AC_SUBST(USB_LIBS)
-AC_SUBST(USB_FLAGS)
+AC_SUBST(USB_CFLAGS)
 
 
 AC_CONFIG_FILES([
 AC_CONFIG_FILES([
 	Makefile
 	Makefile
@@ -512,7 +531,7 @@ echo
 echo "Compilation............: make (or gmake)"
 echo "Compilation............: make (or gmake)"
 echo "  CPPFLAGS.............: $CPPFLAGS $NCURSES_CPPFLAGS"
 echo "  CPPFLAGS.............: $CPPFLAGS $NCURSES_CPPFLAGS"
 echo "  CFLAGS...............: $CFLAGS"
 echo "  CFLAGS...............: $CFLAGS"
-echo "  LDFLAGS..............: $LDFLAGS $PTHREAD_FLAGS $USB_FLAGS"
+echo "  LDFLAGS..............: $LDFLAGS $PTHREAD_FLAGS $USB_CFLAGS"
 echo "  LDADD................: $DLOPEN_FLAGS $LIBCURL_LIBS $JANSSON_LIBS $PTHREAD_LIBS $NCURSES_LIBS $PDCURSES_LIBS $WS2_LIBS $TIMER_LIBS $MATH_LIBS $UDEV_LIBS $USB_LIBS"
 echo "  LDADD................: $DLOPEN_FLAGS $LIBCURL_LIBS $JANSSON_LIBS $PTHREAD_LIBS $NCURSES_LIBS $PDCURSES_LIBS $WS2_LIBS $TIMER_LIBS $MATH_LIBS $UDEV_LIBS $USB_LIBS"
 echo
 echo
 echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')"
 echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')"

+ 1 - 1
libztex.h

@@ -22,7 +22,7 @@
 #ifndef __LIBZTEX_H__
 #ifndef __LIBZTEX_H__
 #define __LIBZTEX_H__
 #define __LIBZTEX_H__
 
 
-#include <libusb-1.0/libusb.h>
+#include <libusb.h>
 
 
 #include "dynclock.h"
 #include "dynclock.h"
 
 

+ 1 - 1
miner.h

@@ -89,7 +89,7 @@ void *alloca (size_t);
 #endif
 #endif
 
 
 #ifdef HAVE_LIBUSB
 #ifdef HAVE_LIBUSB
-  #include <libusb-1.0/libusb.h>
+  #include <libusb.h>
 #endif
 #endif
 
 
 #ifdef USE_ZTEX
 #ifdef USE_ZTEX