summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
10df176)
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>
12 files changed:
+- pkg-config >= 0.23 (or compatible)
Additionally, for building from git:
Additionally, for building from git:
- texinfo
USB-based adapters depend on libusb-1.0 and some older drivers require
- texinfo
USB-based adapters depend on libusb-1.0 and some older drivers require
-libusb-0.1 or libusb-compat-0.1.
+libusb-0.1 or libusb-compat-0.1. A compatible implementation, such as
+FreeBSD's, additionally needs the corresponding .pc files.
USB-Blaster, ASIX Presto, OpenJTAG and ft2232 interface adapter
drivers need either one of:
USB-Blaster, ASIX Presto, OpenJTAG and ft2232 interface adapter
drivers need either one of:
./configure --host=i686-w64-mingw32 [options]
./configure --host=i686-w64-mingw32 [options]
+To make pkg-config work nicely for cross-compiling, you might need an
+additional wrapper script as described at
+
+ http://www.flameeyes.eu/autotools-mythbuster/pkgconfig/cross-compiling.html
+
+This is needed to tell pkg-config where to look for the target
+libraries that OpenOCD depends on. Alternatively, you can specify
+*_CFLAGS and *_LIBS environment variables directly, see "./configure
+--help" for the details.
+
Parallel Port Dongles
---------------------
Parallel Port Dongles
---------------------
or
- Homebrew (http://mxcl.github.io/homebrew/)
or
- Homebrew (http://mxcl.github.io/homebrew/)
-libtool, automake, autoconf and libusb can be easily installed via
-MacPorts:
- sudo port install libtool automake autoconf libusb [libusb-compat]
+libtool, automake, autoconf, pkg-config and libusb can be easily
+installed via MacPorts:
+ sudo port install libtool automake autoconf pkgconfig libusb [libusb-compat]
or with Homebrew:
brew install libtool automake libusb [libusb-compat]
or with Homebrew:
brew install libtool automake libusb [libusb-compat]
Cygwin. Alternatively, one can cross-compile it using MinGW on a *nix
host. See README for the generic instructions.
Cygwin. Alternatively, one can cross-compile it using MinGW on a *nix
host. See README for the generic instructions.
+Native MinGW/MSYS compilation
+-----------------------------
+
+As MSYS doesn't come with pkg-config pre-installed, you need to add it
+manually. The easiest way to do that is to download pkg-config-lite
+from:
+
+ http://sourceforge.net/projects/pkgconfiglite/
+
+Then simply unzip the archive to the root directory of your MSYS
+installation.
+
USB adapters
------------
USB adapters
------------
AC_PROG_CC_C99
AM_PROG_CC_C_O
AC_PROG_RANLIB
AC_PROG_CC_C99
AM_PROG_CC_C_O
AC_PROG_RANLIB
+PKG_PROG_PKG_CONFIG([0.23])
dnl disable checks for C++, Fortran and GNU Java Compiler
m4_defun([_LT_AC_LANG_CXX_CONFIG], [:])
dnl disable checks for C++, Fortran and GNU Java Compiler
m4_defun([_LT_AC_LANG_CXX_CONFIG], [:])
# check for libusb library if necessary
use_libusb1=no
if test $need_usb = yes -o $need_usb_ng = yes; then
# 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_CHECK_MODULES([LIBUSB1], [libusb-1.0], [
- AC_SEARCH_LIBS([libusb_error_name], [usb-1.0],
+ AC_DEFINE([HAVE_LIBUSB1], [1], [Define if you have libusb-1.x])
+ PKG_CHECK_EXISTS([libusb-1.0 >= 1.0.9],
[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])])
], [
[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])])
], [
use_libusb0=no
if test $need_usb0 = yes; then
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_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])
fi
AM_CONDITIONAL([RELEASE], [test $build_release = yes])
+LIBUSB += $(LIBUSB1_LIBS)
+LIBUSB += $(LIBUSB0_LIBS)
endif
libopenocd_la_LIBADD = \
endif
libopenocd_la_LIBADD = \
CONFIGFILES = options.c time_support_common.c
CONFIGFILES = options.c time_support_common.c
+libhelper_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBUSB1_CFLAGS)
+
libhelper_la_SOURCES = \
binarybuffer.c \
$(CONFIGFILES) \
libhelper_la_SOURCES = \
binarybuffer.c \
$(CONFIGFILES) \
#endif
#if defined HAVE_LIBUSB1 && !defined HAVE_LIBUSB_ERROR_NAME
#endif
#if defined HAVE_LIBUSB1 && !defined HAVE_LIBUSB_ERROR_NAME
-#include <libusb-1.0/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
*/
/* Verbatim from git://git.libusb.org/libusb.git tag 1.0.9
* The libusb_error enum is compatible down to v0.9.1
*/
include $(top_srcdir)/common.mk
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
noinst_LTLIBRARIES = libocdaice.la
libocdjtagdrivers_la_SOURCES = \
$(DRIVERFILES)
libocdjtagdrivers_la_SOURCES = \
$(DRIVERFILES)
+libocdjtagdrivers_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBUSB1_CFLAGS) $(LIBUSB0_CFLAGS)
+
ULINK_FIRMWARE = $(srcdir)/OpenULINK
EXTRA_DIST = $(ULINK_FIRMWARE)
ULINK_FIRMWARE = $(srcdir)/OpenULINK
EXTRA_DIST = $(ULINK_FIRMWARE)
#ifndef JTAG_LIBUSB_COMMON_H
#define JTAG_LIBUSB_COMMON_H
#ifndef JTAG_LIBUSB_COMMON_H
#define JTAG_LIBUSB_COMMON_H
-#include <libusb-1.0/libusb.h>
#define jtag_libusb_device libusb_device
#define jtag_libusb_device_handle libusb_device_handle
#define jtag_libusb_device libusb_device
#define jtag_libusb_device_handle libusb_device_handle
#include "mpsse.h"
#include "helper/log.h"
#include "mpsse.h"
#include "helper/log.h"
-#include <libusb-1.0/libusb.h>
/* Compatibility define for older libusb-1.0 */
#ifndef LIBUSB_CALL
/* Compatibility define for older libusb-1.0 */
#ifndef LIBUSB_CALL
#include <target/cortex_m.h>
#include <target/cortex_m.h>
-#include <libusb-1.0/libusb.h>
#define ICDI_WRITE_ENDPOINT 0x02
#define ICDI_READ_ENDPOINT 0x83
#define ICDI_WRITE_ENDPOINT 0x02
#define ICDI_READ_ENDPOINT 0x83
Linking to existing account procedure
If you already have an account and want to add another login method
you
MUST first sign in with your existing account and
then change URL to read
https://review.openocd.org/login/?link
to get to this page again but this time it'll work for linking. Thank you.
SSH host keys fingerprints
1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=.. |
|+o.. . |
|*.o . . |
|+B . . . |
|Bo. = o S |
|Oo.+ + = |
|oB=.* = . o |
| =+=.+ + E |
|. .=o . o |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)