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>
Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-on: http://openocd.zylin.com/1467
Reviewed-by: Xiaofan <xiaofanc@gmail.com>
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Tested-by: Spencer Oliver <spen@spen-soft.co.uk>
This commit is contained in:
Paul Fertser
2013-09-11 23:07:59 +02:00
committed by Andreas Fritiofson
parent 10df176b0f
commit 191a5736c2
12 changed files with 46 additions and 19 deletions

View File

@@ -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 = \

View File

@@ -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) \

View File

@@ -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
*/

View File

@@ -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

View File

@@ -6,6 +6,8 @@ libocdjtagdrivers_la_LIBADD =
libocdjtagdrivers_la_SOURCES = \
$(DRIVERFILES)
libocdjtagdrivers_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBUSB1_CFLAGS) $(LIBUSB0_CFLAGS)
ULINK_FIRMWARE = $(srcdir)/OpenULINK
EXTRA_DIST = $(ULINK_FIRMWARE)

View File

@@ -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

View File

@@ -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

View File

@@ -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