configure: remove --enable-libusb0 option, rework libusb selection
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>__archive__
parent
71ee5f6b5f
commit
6be2a55bde
2
README
2
README
|
@ -291,7 +291,7 @@ options may be available there:
|
||||||
|
|
||||||
--disable-internal-jimtcl
|
--disable-internal-jimtcl
|
||||||
Disable building 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
|
--enable-remote-bitbang Enable building support for the Remote Bitbang jtag
|
||||||
driver
|
driver
|
||||||
|
|
||||||
|
|
73
configure.ac
73
configure.ac
|
@ -516,10 +516,6 @@ AC_ARG_ENABLE([internal-jimtcl],
|
||||||
AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
|
AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
|
||||||
[use_internal_jimtcl=$enableval], [use_internal_jimtcl=yes])
|
[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],
|
AC_ARG_ENABLE([aice],
|
||||||
AS_HELP_STRING([--enable-aice], [Enable building support for the Andes JTAG Programmer]),
|
AS_HELP_STRING([--enable-aice], [Enable building support for the Andes JTAG Programmer]),
|
||||||
[build_aice=$enableval], [build_aice=no])
|
[build_aice=$enableval], [build_aice=no])
|
||||||
|
@ -1178,42 +1174,53 @@ enum ftdi_chip_type x = TYPE_232H;
|
||||||
CFLAGS=$CFLAGS_SAVE
|
CFLAGS=$CFLAGS_SAVE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# check for usb.h when a driver will require it
|
# check if some driver requires libusb-0.1
|
||||||
build_usb=no
|
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_rlink = yes -o $build_ulink = yes -o $build_armjtagew = yes; then
|
||||||
$build_aice = yes
|
need_usb0=yes
|
||||||
then
|
|
||||||
build_usb=yes
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check for libusb1 ported drivers.
|
# check if some driver can work with either libusb version
|
||||||
build_usb_ng=no
|
need_usb=no
|
||||||
if test $build_jlink = yes -o $build_hladapter_stlink = yes -o $build_osbdm = yes -o \
|
if test $build_jlink = yes -o $build_osbdm = yes -o $build_opendous = yes -o \
|
||||||
$build_opendous = yes -o $build_ftdi = yes -o $build_hladapter_icdi = yes
|
$build_aice = yes; then
|
||||||
then
|
need_usb=yes
|
||||||
build_usb_ng=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
|
fi
|
||||||
|
|
||||||
# check for libusb library if necessary
|
# check for libusb library if necessary
|
||||||
use_libusb0=no
|
|
||||||
use_libusb1=no
|
use_libusb1=no
|
||||||
if test $build_usb = yes -o $build_usb_ng = yes; then
|
if test $need_usb = yes -o $need_usb_ng = yes; then
|
||||||
if test $check_libusb0 = no -a $build_usb_ng = yes; then
|
AC_CHECK_HEADER([libusb-1.0/libusb.h], [
|
||||||
AC_CHECK_HEADER([libusb-1.0/libusb.h], [
|
AC_DEFINE(HAVE_LIBUSB1, 1, [Define if you have libusb-1.x])
|
||||||
AC_DEFINE(HAVE_LIBUSB1, 1, [Define if you have libusb-1.0])
|
use_libusb1=yes
|
||||||
check_libusb0=no use_libusb1=yes
|
AC_SEARCH_LIBS([libusb_error_name], [usb-1.0],
|
||||||
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_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_MSG_WARN([libusb-1 older than 1.0.9 detected, consider updating])])
|
], [
|
||||||
], [
|
if test $need_usb_ng = yes; then
|
||||||
check_libusb0=yes use_libusb1=no ])
|
AC_MSG_ERROR([libusb-1.x is required for some driver(s) you've selected])
|
||||||
fi
|
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
|
use_libusb0=no
|
||||||
AC_CHECK_HEADERS([usb.h], [use_libusb0=yes],
|
if test $need_usb0 = yes; then
|
||||||
[AC_MSG_ERROR([libusb or libusb-1.0 are required to build some OpenOCD driver(s)])])
|
AC_CHECK_HEADERS([usb.h], [
|
||||||
fi
|
use_libusb0=yes
|
||||||
|
], [
|
||||||
|
AC_MSG_ERROR([libusb-0.1 is required to build some OpenOCD driver(s)])
|
||||||
|
])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AM_CONDITIONAL([RELEASE], [test $build_release = yes])
|
AM_CONDITIONAL([RELEASE], [test $build_release = yes])
|
||||||
|
@ -1252,8 +1259,6 @@ AM_CONDITIONAL([HLADAPTER], [test $build_hladapter_stlink = yes -o $build_hladap
|
||||||
AM_CONDITIONAL([OSBDM], [test $build_osbdm = yes])
|
AM_CONDITIONAL([OSBDM], [test $build_osbdm = yes])
|
||||||
AM_CONDITIONAL([OPENDOUS], [test $build_opendous = yes])
|
AM_CONDITIONAL([OPENDOUS], [test $build_opendous = yes])
|
||||||
AM_CONDITIONAL([SYSFSGPIO], [test $build_sysfsgpio = 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_LIBUSB0], [test $use_libusb0 = yes])
|
||||||
AM_CONDITIONAL([USE_LIBUSB1], [test $use_libusb1 = yes])
|
AM_CONDITIONAL([USE_LIBUSB1], [test $use_libusb1 = yes])
|
||||||
AM_CONDITIONAL([IS_CYGWIN], [test $is_cygwin = yes])
|
AM_CONDITIONAL([IS_CYGWIN], [test $is_cygwin = yes])
|
||||||
|
|
|
@ -19,18 +19,15 @@ SUBDIRS=
|
||||||
# Standard Driver: common files
|
# Standard Driver: common files
|
||||||
DRIVERFILES += driver.c
|
DRIVERFILES += driver.c
|
||||||
|
|
||||||
if USB
|
|
||||||
DRIVERFILES += usb_common.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
if USE_LIBUSB1
|
if USE_LIBUSB1
|
||||||
DRIVERFILES += libusb1_common.c
|
DRIVERFILES += libusb1_common.c
|
||||||
else
|
|
||||||
|
|
||||||
if USE_LIBUSB0
|
|
||||||
DRIVERFILES += libusb0_common.c
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if USE_LIBUSB0
|
||||||
|
DRIVERFILES += usb_common.c
|
||||||
|
if !USE_LIBUSB1
|
||||||
|
DRIVERFILES += libusb0_common.c
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if BITBANG
|
if BITBANG
|
||||||
|
|
Loading…
Reference in New Issue