[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openocd-development
Subject:    [OpenOCD-devel] [PATCH]: a66fdfb libusb: require pkg-config support
From:       gerrit () openocd ! zylin ! com
Date:       2013-06-29 17:00:39
Message-ID: 20130629170039.8D715242C4 () openocd ! zylin ! com
[Download RAW message or body]

This is an automated email from Gerrit.

Paul Fertser (fercerpav@gmail.com) just uploaded a new patch set to Gerrit, which you \
can find at http://openocd.zylin.com/1467

-- gerrit

commit a66fdfbb37fc26974da676f99ee94cdff1357a2e
Author: Paul Fertser <fercerpav@gmail.com>
Date:   Sat Jun 29 01:28:23 2013 +0400

    libusb: require pkg-config support
    
    An alternative approach to show how much cleaner the pure pkg-config
    way is.
    
    This changes the discovery procedures for libusb-1.0 and libusb-0.1,
    making them depend on pkg-config being properly installed and
    configured, including the necessary build host configuration for the
    cross-builds (see
    http://www.flameeyes.eu/autotools-mythbuster/pkgconfig/cross-compiling.html)
    
    It should make it possible to compile OpenOCD without changes and
    extra effort on GNU/Linux, FreeBSD users would need to supply a .pc
    file for their libusb implementation or add LIBUSB1_LIBS and
    LIBUSB1_CFLAGS to the configure environment.
    
    Change-Id: I826e378dd1e0d101a549a573b2c63212a7e00b64
    Signed-off-by: Paul Fertser <fercerpav@gmail.com>

diff --git a/configure.ac b/configure.ac
index 6e3f986..c9d0d47 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1198,10 +1198,12 @@ fi
 # check for libusb library if necessary
 use_libusb1=no
 if test $need_usb = yes -o $need_usb_ng = yes; then
-  AC_CHECK_HEADER([libusb-1.0/libusb.h], [
-	AC_DEFINE([HAVE_LIBUSB1], [1], [Define if you have libusb-1.x])
+  PKG_PROG_PKG_CONFIG([0.24])
+  PKG_CHECK_MODULES([LIBUSB1], [libusb-1.0], [
 	use_libusb1=yes
-	AC_SEARCH_LIBS([libusb_error_name], [usb-1.0],
+	AC_DEFINE([HAVE_LIBUSB1], [1], [Define if you have libusb-1.x])
+	LIBS="$LIBUSB1_LIBS $LIBS"
+	AC_SEARCH_LIBS([libusb_error_name], [],
 		[AC_DEFINE([HAVE_LIBUSB_ERROR_NAME], [1], [Define if your libusb has \
libusb_error_name()])],  [AC_MSG_WARN([libusb-1.x older than 1.0.9 detected, consider \
updating])])  ], [
@@ -1216,11 +1218,10 @@ fi
 
 use_libusb0=no
 if test $need_usb0 = yes; then
-	AC_CHECK_HEADERS([usb.h], [
-			use_libusb0=yes
-		], [
-			AC_MSG_ERROR([libusb-0.1 is required to build some OpenOCD driver(s)])
-		])
+	PKG_PROG_PKG_CONFIG([0.24])
+	PKG_CHECK_MODULES([LIBUSB0], [libusb], [use_libusb0=yes], [
+		AC_MSG_ERROR([libusb-0.1 is required to build some OpenOCD driver(s)])
+	])
 fi
 
 AM_CONDITIONAL([RELEASE], [test $build_release = yes])
diff --git a/src/Makefile.am b/src/Makefile.am
index badc80d..1f4cd32 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -75,11 +75,11 @@ endif
 
 LIBUSB =
 if USE_LIBUSB1
-LIBUSB += -lusb-1.0
+LIBUSB += $(LIBUSB1_LIBS)
 endif
 
 if USE_LIBUSB0
-LIBUSB += -lusb
+LIBUSB += $(LIBUSB0_LIBS)
 endif
 
 libopenocd_la_LIBADD = \
diff --git a/src/helper/Makefile.am b/src/helper/Makefile.am
index 9e27d05..215bbae 100644
--- a/src/helper/Makefile.am
+++ b/src/helper/Makefile.am
@@ -5,6 +5,8 @@ noinst_LTLIBRARIES = libhelper.la
 
 CONFIGFILES = options.c time_support_common.c
 
+libhelper_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBUSB1_CFLAGS)
+
 libhelper_la_SOURCES = \
 	binarybuffer.c \
 	$(CONFIGFILES) \
diff --git a/src/helper/replacements.c b/src/helper/replacements.c
index d8d8fd0..b083096 100644
--- a/src/helper/replacements.c
+++ b/src/helper/replacements.c
@@ -278,7 +278,7 @@ int win_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set \
*efds, struct time  #endif
 
 #if defined HAVE_LIBUSB1 && !defined HAVE_LIBUSB_ERROR_NAME
-#include <libusb-1.0/libusb.h>
+#include <libusb.h>
 /* Verbatim from git://git.libusb.org/libusb.git tag 1.0.9
  * The libusb_error enum is compatible down to v0.9.1
  */
diff --git a/src/jtag/aice/Makefile.am b/src/jtag/aice/Makefile.am
index 38c441e..7b9469d 100644
--- a/src/jtag/aice/Makefile.am
+++ b/src/jtag/aice/Makefile.am
@@ -1,6 +1,6 @@
 include $(top_srcdir)/common.mk
 
-AM_CPPFLAGS += -I$(top_srcdir)/src/jtag/drivers
+AM_CPPFLAGS += -I$(top_srcdir)/src/jtag/drivers $(LIBUSB1_CFLAGS) $(LIBUSB0_CFLAGS)
 
 noinst_LTLIBRARIES = libocdaice.la
 
diff --git a/src/jtag/drivers/Makefile.am b/src/jtag/drivers/Makefile.am
index 22bc89b..5a56c64 100644
--- a/src/jtag/drivers/Makefile.am
+++ b/src/jtag/drivers/Makefile.am
@@ -6,6 +6,8 @@ libocdjtagdrivers_la_LIBADD =
 libocdjtagdrivers_la_SOURCES = \
 	$(DRIVERFILES)
 
+libocdjtagdrivers_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBUSB1_CFLAGS) $(LIBUSB0_CFLAGS)
+
 ocddatadir = $(pkglibdir)
 nobase_dist_ocddata_DATA =
 
diff --git a/src/jtag/drivers/libusb1_common.h b/src/jtag/drivers/libusb1_common.h
index 8b2792c..970844b 100644
--- a/src/jtag/drivers/libusb1_common.h
+++ b/src/jtag/drivers/libusb1_common.h
@@ -22,7 +22,7 @@
 #ifndef JTAG_LIBUSB_COMMON_H
 #define JTAG_LIBUSB_COMMON_H
 
-#include <libusb-1.0/libusb.h>
+#include <libusb.h>
 
 #define jtag_libusb_device			libusb_device
 #define jtag_libusb_device_handle		libusb_device_handle
diff --git a/src/jtag/drivers/mpsse.c b/src/jtag/drivers/mpsse.c
index 82703bf..c495eb8 100644
--- a/src/jtag/drivers/mpsse.c
+++ b/src/jtag/drivers/mpsse.c
@@ -24,7 +24,7 @@
 
 #include "mpsse.h"
 #include "helper/log.h"
-#include <libusb-1.0/libusb.h>
+#include <libusb.h>
 
 /* Compatibility define for older libusb-1.0 */
 #ifndef LIBUSB_CALL
diff --git a/src/jtag/drivers/ti_icdi_usb.c b/src/jtag/drivers/ti_icdi_usb.c
index c0c0718..f10d120 100644
--- a/src/jtag/drivers/ti_icdi_usb.c
+++ b/src/jtag/drivers/ti_icdi_usb.c
@@ -33,7 +33,7 @@
 
 #include <target/cortex_m.h>
 
-#include <libusb-1.0/libusb.h>
+#include <libusb.h>
 
 #define ICDI_WRITE_ENDPOINT 0x02
 #define ICDI_READ_ENDPOINT 0x83

-- 

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic