This makes libusb handling more consistent: if any driver requires
libusb, first check for libusb-1 availability, if not found and
libusb0 is ok for this case, try libusb0.
A user-visible bug fixed by this is that when a user was selecting a
driver that required libusb-1 but was lacking the necessary dev files
or libraries, configure didn't complain (but the build was failing of
course).
--enable-stlink doesn't really require libusb-1 but since it's using the
same automake symbol HLAADAPTER, ti_icdi is getting built too which needs
libusb1 unconditionally. Since using libusb-0.1 makes little sense anyway,
leave that as is.
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Change-Id: I630a4ad9e4583743d45b2233bf5d8f4e5c0aab82
Reviewed-on: http://openocd.zylin.com/1434
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
--disable-internal-jimtcl
Disable building internal jimtcl
--disable-internal-jimtcl
Disable building internal jimtcl
- --enable-libusb0 Use libusb-0.1 library for USB JTAG devices
--enable-remote-bitbang Enable building support for the Remote Bitbang jtag
driver
--enable-remote-bitbang Enable building support for the Remote Bitbang jtag
driver
AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
[use_internal_jimtcl=$enableval], [use_internal_jimtcl=yes])
AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
[use_internal_jimtcl=$enableval], [use_internal_jimtcl=yes])
-AC_ARG_ENABLE([libusb0],
- AS_HELP_STRING([--enable-libusb0], [Use libusb-0.1 library for USB JTAG devices]),
- [check_libusb0=$enableval], [check_libusb0=no])
-
AC_ARG_ENABLE([aice],
AS_HELP_STRING([--enable-aice], [Enable building support for the Andes JTAG Programmer]),
[build_aice=$enableval], [build_aice=no])
AC_ARG_ENABLE([aice],
AS_HELP_STRING([--enable-aice], [Enable building support for the Andes JTAG Programmer]),
[build_aice=$enableval], [build_aice=no])
-# check for usb.h when a driver will require it
-build_usb=no
+# check if some driver requires libusb-0.1
+need_usb0=no
if test $build_vsllink = yes -o $build_usbprog = yes -o \
if test $build_vsllink = yes -o $build_usbprog = yes -o \
- $build_rlink = yes -o $build_ulink = yes -o $build_armjtagew = yes -o \
- $build_aice = yes
-then
- build_usb=yes
+ $build_rlink = yes -o $build_ulink = yes -o $build_armjtagew = yes; then
+ need_usb0=yes
-# Check for libusb1 ported drivers.
-build_usb_ng=no
-if test $build_jlink = yes -o $build_hladapter_stlink = yes -o $build_osbdm = yes -o \
- $build_opendous = yes -o $build_ftdi = yes -o $build_hladapter_icdi = yes
-then
- build_usb_ng=yes
+# check if some driver can work with either libusb version
+need_usb=no
+if test $build_jlink = yes -o $build_osbdm = yes -o $build_opendous = yes -o \
+ $build_aice = yes; then
+ need_usb=yes
+fi
+
+# check if some driver requires libusb-1.x
+need_usb_ng=no
+if test $build_ftdi = yes -o $build_hladapter_icdi = yes -o \
+ $build_hladapter_stlink = yes; then
+ need_usb_ng=yes
fi
# check for libusb library if necessary
fi
# check for libusb library if necessary
-if test $build_usb = yes -o $build_usb_ng = yes; then
- if test $check_libusb0 = no -a $build_usb_ng = yes; then
- AC_CHECK_HEADER([libusb-1.0/libusb.h], [
- AC_DEFINE(HAVE_LIBUSB1, 1, [Define if you have libusb-1.0])
- check_libusb0=no use_libusb1=yes
- AC_SEARCH_LIBS([libusb_error_name], [usb-1.0],
- [AC_DEFINE(HAVE_LIBUSB_ERROR_NAME, 1, [Define if your libusb has libusb_error_name()])],
- [AC_MSG_WARN([libusb-1 older than 1.0.9 detected, consider updating])])
- ], [
- check_libusb0=yes use_libusb1=no ])
- fi
+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])
+ use_libusb1=yes
+ AC_SEARCH_LIBS([libusb_error_name], [usb-1.0],
+ [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])])
+ ], [
+ if test $need_usb_ng = yes; then
+ AC_MSG_ERROR([libusb-1.x is required for some driver(s) you've selected])
+ else
+ AC_MSG_WARN([Trying legacy libusb-0.1 as a fallback, consider installing libusb-1 instead])
+ need_usb0=yes
+ fi
+ ])
+fi
- if test $check_libusb0 = yes -o $build_usb = yes; then
- AC_CHECK_HEADERS([usb.h], [use_libusb0=yes],
- [AC_MSG_ERROR([libusb or libusb-1.0 are required to build some OpenOCD driver(s)])])
- 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)])
+ ])
fi
AM_CONDITIONAL([RELEASE], [test $build_release = yes])
fi
AM_CONDITIONAL([RELEASE], [test $build_release = yes])
AM_CONDITIONAL([OSBDM], [test $build_osbdm = yes])
AM_CONDITIONAL([OPENDOUS], [test $build_opendous = yes])
AM_CONDITIONAL([SYSFSGPIO], [test $build_sysfsgpio = yes])
AM_CONDITIONAL([OSBDM], [test $build_osbdm = yes])
AM_CONDITIONAL([OPENDOUS], [test $build_opendous = yes])
AM_CONDITIONAL([SYSFSGPIO], [test $build_sysfsgpio = yes])
-AM_CONDITIONAL([USB], [test $build_usb = yes])
-AM_CONDITIONAL([USB_NG], [test $build_usb_ng = yes])
AM_CONDITIONAL([USE_LIBUSB0], [test $use_libusb0 = yes])
AM_CONDITIONAL([USE_LIBUSB1], [test $use_libusb1 = yes])
AM_CONDITIONAL([IS_CYGWIN], [test $is_cygwin = yes])
AM_CONDITIONAL([USE_LIBUSB0], [test $use_libusb0 = yes])
AM_CONDITIONAL([USE_LIBUSB1], [test $use_libusb1 = yes])
AM_CONDITIONAL([IS_CYGWIN], [test $is_cygwin = yes])
# Standard Driver: common files
DRIVERFILES += driver.c
# Standard Driver: common files
DRIVERFILES += driver.c
-if USB
-DRIVERFILES += usb_common.c
-endif
-
if USE_LIBUSB1
DRIVERFILES += libusb1_common.c
if USE_LIBUSB1
DRIVERFILES += libusb1_common.c
+DRIVERFILES += usb_common.c
+if !USE_LIBUSB1
DRIVERFILES += libusb0_common.c
endif
DRIVERFILES += libusb0_common.c
endif
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)