Newer
Older
[OpenOCD Mailing List <openocd-devel@lists.sourceforge.net>])
AM_INIT_AUTOMAKE([-Wall -Wno-portability dist-bzip2 dist-zip])
#include <helper/replacements.h>
])
AC_LANG_C
AC_PROG_CC
AC_PROG_CC_C99
AM_PROG_CC_C_O
AC_PROG_RANLIB
dnl disable checks for C++, Fortran and GNU Java Compiler
m4_defun([_LT_AC_LANG_CXX_CONFIG], [:])
m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
m4_defun([_LT_AC_LANG_GCJ_CONFIG], [:])
AC_DISABLE_SHARED
AC_PROG_LIBTOOL
dnl configure checks required for Jim files (these are obsolete w/ C99)
AC_C_CONST
AC_TYPE_LONG_LONG_INT
AC_SEARCH_LIBS([ioperm], [ioperm])
AC_SEARCH_LIBS([dlopen], [dl])
AC_CHECK_HEADERS([sys/socket.h])
AC_CHECK_HEADERS([arpa/inet.h], [], [], [dnl
#include <stdio.h>
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# ifdef HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
])
AC_CHECK_HEADERS([elf.h])
AC_CHECK_HEADERS([dirent.h])
AC_CHECK_HEADERS([fcntl.h])
AC_CHECK_HEADERS([ifaddrs.h], [], [], [dnl
#include <stdio.h>
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# ifdef HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
])
AC_CHECK_HEADERS([malloc.h])
AC_CHECK_HEADERS([netdb.h])
AC_CHECK_HEADERS([netinet/in.h], [], [], [dnl
#include <stdio.h>
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# ifdef HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
])
AC_CHECK_HEADERS([netinet/tcp.h], [], [], [dnl
#include <stdio.h>
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# ifdef HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
])
AC_CHECK_HEADERS([pthread.h])
AC_CHECK_HEADERS([strings.h])
AC_CHECK_HEADERS([sys/ioctl.h])
AC_CHECK_HEADERS([sys/param.h])
AC_CHECK_HEADERS([sys/poll.h])
AC_CHECK_HEADERS([sys/select.h])
AC_CHECK_HEADERS([sys/stat.h])
AC_CHECK_HEADERS([sys/time.h])
AC_CHECK_HEADERS([sys/types.h])
AC_CHECK_HEADERS([unistd.h])
AC_CHECK_HEADERS([net/if.h], [], [], [dnl
#include <stdio.h>
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# ifdef HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
])
AC_HEADER_ASSERT
AC_HEADER_STDBOOL
AC_HEADER_TIME
AC_C_BIGENDIAN
AC_CHECK_FUNCS([strndup])
AC_CHECK_FUNCS([strnlen])
AC_CHECK_FUNCS([gettimeofday])
AC_CHECK_FUNCS([usleep])
AC_CHECK_FUNCS([vasprintf])
build_bitbang=no
build_bitq=no
is_cygwin=no
is_mingw=no
is_win32=no
is_darwin=no
# guess-rev.sh only exists in the repository, not in the released archives
AC_MSG_CHECKING([whether to build a release])
if test -x $srcdir/guess-rev.sh ; then
else
build_release=yes
# We are not *ALWAYS* being installed in the standard place.
# We may be installed in a "tool-build" specific location.
# Normally with other packages - as part of a tool distro.
# Thus - we should search that 'libdir' also.
#
# And - if we are being installed there - the odds are
# The libraries unique to what we are are there too.
#
# Expand nd deal with NONE - just like configure will do later
OCDprefix=$prefix
OCDxprefix=$exec_prefix
test x"$OCDprefix" = xNONE && OCDprefix=$ac_default_prefix
# Let make expand exec_prefix.
test x"$OCDxprefix" = xNONE && OCDxprefix="$OCDprefix"
# what matters is the "exec-prefix"
if test "$OCDxprefix" != "$ac_default_prefix"
then
# We are installing in a non-standard place
# Nonstandard --prefix and/or --exec-prefix
# We have an override of some sort.
# use build specific install library dir
LDFLAGS="$LDFLAGS -L$OCDxprefix/lib"
# RPATH becomes an issue on Linux only
if test $host_os = linux-gnu || test $host_os = linux ; then
LDFLAGS="$LDFLAGS -Wl,-rpath,$OCDxprefix/lib"
fi
# The "INCDIR" is also usable
CFLAGS="$CFLAGS -I$includedir"
fi
AC_ARG_WITH(ftd2xx,
AS_HELP_STRING([--with-ftd2xx=<PATH>],[This option has been removed.]),
[
# Option Given.
cat << __EOF__
The option: --with-ftd2xx=<PATH> has been removed.
On Linux, the new option is:
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
--with-ftd2xx-linux-tardir=/path/to/files
Where <path> is the path the the directory where the "tar.gz" file
from FTDICHIP.COM was unpacked, for example:
--with-ftd2xx-linux-tardir=${HOME}/libftd2xx0.4.16
On Cygwin/MingW32, the new option is:
--with-ftd2xx-win32-zipdir=/path/to/files
Where <path> is the path to the directory where the "zip" file from
FTDICHIP.COM was unpacked, for example:
--with-ftd2xx-win32-zipdir=${HOME}/ftd2xx.cdm.files
__EOF__
AC_MSG_ERROR([Sorry Cannot continue])
], [true])
#========================================
# FTD2XXX support comes in 4 forms.
# (1) win32 - via a zip file
# (2) linux - via a tar file
# (3) linux/cygwin/mingw - via libftdi
# (4) darwin - installed under /usr/local
#
# In case (1) and (2) we need to know where the package was unpacked.
AC_ARG_WITH(ftd2xx-win32-zipdir,
AS_HELP_STRING([--with-ftd2xx-win32-zipdir],[Where (CYGWIN/MINGW) the zip file from ftdichip.com was unpacked (default=search)]),
[
# option present
if test -d $with_ftd2xx_win32_zipdir
then
with_ftd2xx_win32_zipdir=`cd $with_ftd2xx_win32_zipdir && pwd`
AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_win32_zipdir])
else
AC_MSG_ERROR([Parameter to --with-ftd2xx-win32-zipdir is not a dir: $with_ftd2xx_win32_zipdir])
fi
], [true])
AC_ARG_WITH(ftd2xx-linux-tardir,
AS_HELP_STRING([--with-ftd2xx-linux-tardir], [Where (Linux/Unix) the tar file from ftdichip.com was unpacked (default=search)]),
[
# Option present
if test $is_win32 = yes ; then
AC_MSG_ERROR([The option: --with-ftd2xx-linux-tardir is only usable on linux])
fi
if test -d $with_ftd2xx_linux_tardir
then
with_ftd2xx_linux_tardir=`cd $with_ftd2xx_linux_tardir && pwd`
AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_linux_tardir])
else
AC_MSG_ERROR([Parameter to --with-ftd2xx-linux-tardir is not a dir: $with_ftd2xx_linux_tardir])
fi
], [true])
AC_ARG_WITH(ftd2xx-lib,
AS_HELP_STRING([--with-ftd2xx-lib],
[Use static or shared ftd2xx libs (default=static)]),
[
case "$withval" in
static)
with_ftd2xx_lib=$withval
;;
shared)
with_ftd2xx_lib=$withval
;;
*)
AC_MSG_ERROR([Option: --with-ftd2xx-lib=static or --with-ftd2xx-lib=shared not, $withval])
;;
esac
], [
# Default is static - it is simpler :-(
with_ftd2xx_lib=static
])
AS_HELP_STRING([--disable-doxygen-html],
[Disable building Doxygen manual as HTML.]),
[doxygen_as_html=$enableval], [doxygen_as_html=yes])
AC_MSG_CHECKING([whether to build Doxygen as HTML])
AS_HELP_STRING([--enable-doxygen-pdf],
[Enable building Doxygen manual as PDF.]),
[doxygen_as_pdf=$enableval], [doxygen_as_pdf=no])
AC_MSG_CHECKING([whether to build Doxygen as PDF])
AS_HELP_STRING([--disable-gccwarnings], [Disable compiler warnings]),
[gcc_warnings=$enableval], [gcc_warnings=yes])
AS_HELP_STRING([--disable-wextra], [Disable extra compiler warnings]),
[gcc_wextra=$enableval], [gcc_wextra=$gcc_warnings])
AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
[gcc_werror=$enableval], [gcc_werror=$gcc_warnings])
# set default verbose options, overridden by following options
debug_jtag_io=no
debug_usb_io=no
debug_usb_comms=no
[Enable verbose JTAG I/O messages (for debugging).]),
[
debug_jtag_io=$enableval
debug_usb_io=$enableval
debug_usb_comms=$enableval
], [])
[Enable verbose JTAG I/O messages (for debugging).]),
AC_ARG_ENABLE([verbose_usb_io],
[Enable verbose USB I/O messages (for debugging)]),
AC_ARG_ENABLE([verbose_usb_comms],
[Enable verbose USB communication messages (for debugging)]),
[debug_usb_comms=$enableval], [])
AC_MSG_CHECKING([whether to enable verbose JTAG I/O messages]);
if test $debug_jtag_io = yes; then
AC_DEFINE([_DEBUG_JTAG_IO_],[1], [Print verbose JTAG I/O messages])
fi
AC_MSG_CHECKING([whether to enable verbose USB I/O messages]);
if test $debug_usb_io = yes; then
AC_DEFINE([_DEBUG_USB_IO_],[1], [Print verbose USB I/O messages])
fi
AC_MSG_CHECKING([whether to enable verbose USB communication messages]);
if test $debug_usb_comms = yes; then
AC_DEFINE([_DEBUG_USB_COMMS_],[1], [Print verbose USB communication messages])
fi
debug_malloc=no
[Include free space in logging messages (requires malloc.h).]),
[debug_malloc=$enableval], [])
AC_MSG_CHECKING([whether to enable malloc free space logging]);
if test $debug_malloc = yes; then
AC_DEFINE([_DEBUG_FREE_SPACE_],[1], [Include malloc free space in logging])
fi
AS_HELP_STRING([--enable-dummy], [Enable building the dummy port driver]),
AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
[Disable use of ppdev (/dev/parportN) for parport (for x86 only)]),
[parport_use_ppdev=$enableval], [parport_use_ppdev=yes])
[Enable use of giveio for parport (for CygWin only)]),
AS_HELP_STRING([--enable-ft2232_libftdi], [Enable building support for FT2232 based devices using the libftdi driver, opensource alternate of FTD2XX]),
AS_HELP_STRING([--enable-ft2232_ftd2xx], [Enable building support for FT2232 based devices using the FTD2XX driver from ftdichip.com]),
AC_ARG_ENABLE([ftdi],
AS_HELP_STRING([--enable-ftdi], [Enable building support for the MPSSE mode of FTDI based devices, using libusb-1.0 in asynchronous mode]),
[build_ftdi=$enableval], [build_ftdi=no])
AC_ARG_ENABLE([usb_blaster_libftdi],
AS_HELP_STRING([--enable-usb_blaster_libftdi], [Enable building support for the Altera USB-Blaster using the libftdi driver, opensource alternate of FTD2XX]),
[build_usb_blaster_libftdi=$enableval], [build_usb_blaster_libftdi=no])
AC_ARG_ENABLE([usb_blaster_ftd2xx],
AS_HELP_STRING([--enable-usb_blaster_ftd2xx], [Enable building support for the Altera USB-Blaster using the FTD2XX driver from ftdichip.com]),
[build_usb_blaster_ftd2xx=$enableval], [build_usb_blaster_ftd2xx=no])
AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
AS_HELP_STRING([--enable-zy1000-master], [Use ZY1000 JTAG master registers]),
[build_zy1000_master=$enableval], [build_zy1000_master=no])
AS_HELP_STRING([--enable-zy1000], [Enable ZY1000 interface]),
[build_zy1000=$enableval], [build_zy1000=no])
AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]),
AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]),
AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
[build_at91rm9200=$enableval], [build_at91rm9200=no])
;;
AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
[build_gw16012=$enableval], [build_gw16012=no])
AS_HELP_STRING([--enable-presto_libftdi], [Enable building support for ASIX Presto Programmer using the libftdi driver]),
[build_presto_libftdi=$enableval], [build_presto_libftdi=no])
AS_HELP_STRING([--enable-presto_ftd2xx], [Enable building support for ASIX Presto Programmer using the FTD2XX driver]),
[build_presto_ftd2xx=$enableval], [build_presto_ftd2xx=no])
AS_HELP_STRING([--enable-usbprog], [Enable building support for the usbprog JTAG Programmer]),
[build_usbprog=$enableval], [build_usbprog=no])
AS_HELP_STRING([--enable-oocd_trace],
[Enable building support for some prototype OpenOCD+trace ETM capture hardware]),
AS_HELP_STRING([--enable-jlink], [Enable building support for the Segger J-Link JTAG Programmer]),
[build_jlink=$enableval], [build_jlink=no])
AS_HELP_STRING([--enable-vsllink], [Enable building support for the Versaloon-Link JTAG Programmer]),
[build_vsllink=$enableval], [build_vsllink=no])
AS_HELP_STRING([--enable-rlink], [Enable building support for the Raisonance RLink JTAG Programmer]),
[build_rlink=$enableval], [build_rlink=no])
AS_HELP_STRING([--enable-ulink], [Enable building support for the Keil ULINK JTAG Programmer]),
[build_ulink=$enableval], [build_ulink=no])
AS_HELP_STRING([--enable-arm-jtag-ew], [Enable building support for the Olimex ARM-JTAG-EW Programmer]),
[build_armjtagew=$enableval], [build_armjtagew=no])
AS_HELP_STRING([--enable-buspirate], [Enable building support for the Buspirate]),
[build_buspirate=$enableval], [build_buspirate=no])
AC_ARG_ENABLE([stlink],
AS_HELP_STRING([--enable-stlink], [Enable building support for the ST-Link JTAG Programmer]),
[build_stlink=$enableval], [build_stlink=no])
AC_ARG_ENABLE([osbdm],
AS_HELP_STRING([--enable-osbdm], [Enable building support for the OSBDM (JTAG only) Programmer]),
[build_osbdm=$enableval], [build_osbdm=no])
AC_ARG_ENABLE([opendous],
AS_HELP_STRING([--enable-opendous], [Enable building support for the estick/opendous JTAG Programmer]),
[build_opendous=$enableval], [build_opendous=no])
AS_HELP_STRING([--enable-minidriver-dummy], [Enable the dummy minidriver.]),
[build_minidriver_dummy=$enableval], [build_minidriver_dummy=no])
AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
[use_internal_jimtcl=$enableval], [use_internal_jimtcl=yes])
AS_HELP_STRING([--enable-libusb0], [Use libusb-0.1 library for USB JTAG devices]),
[check_libusb0=$enableval], [check_libusb0=no])
build_minidriver=no
AC_MSG_CHECKING([whether to enable ZY1000 minidriver])
if test $build_minidriver = yes; then
AC_MSG_ERROR([Multiple minidriver options have been enabled.])
fi
AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
[Define to 1 if you have the <jtag_minidriver.h> header file.])
build_minidriver=yes
fi
AS_HELP_STRING([--enable-remote-bitbang], [Enable building support for the Remote Bitbang jtag driver]),
[build_remote_bitbang=$enableval], [build_remote_bitbang=no])
AC_MSG_CHECKING([whether to enable dummy minidriver])
if test $build_minidriver_dummy = yes; then
if test $build_minidriver = yes; then
AC_MSG_ERROR([Multiple minidriver options have been enabled.])
fi
build_minidriver=yes
AC_DEFINE([BUILD_MINIDRIVER_DUMMY], [1], [Use the dummy minidriver.])
AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
[Define to 1 if you have the <jtag_minidriver.h> header file.])
fi
AC_MSG_RESULT([$build_minidriver_dummy])
AC_MSG_CHECKING([whether standard drivers can be built])
if test "$build_minidriver" = yes; then
AC_MSG_RESULT([no])
AC_MSG_WARN([Using the minidriver disables all other drivers.])
sleep 2
else
AC_MSG_RESULT([yes])
fi
if test x$parport_use_ppdev = xno; then
AC_MSG_WARN([--disable-parport-ppdev is not supported by the host CPU])
fi
parport_use_ppdev=yes
;;
esac
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[return __MINGW32__;]])],
AC_DEFINE([IS_MINGW], [1], [1 if building for MinGW.])
if test x$parport_use_giveio = xno; then
AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
fi
parport_use_giveio=yes
is_cygwin=no
else
is_cygwin=yes
AC_DEFINE([IS_CYGWIN], [1], [1 if building for Cygwin.])
ntfreak
committed
# sys/io.h needed under cygwin for parport access
if test $build_parport = yes; then
AC_CHECK_HEADERS([sys/io.h],[],AC_MSG_ERROR([Please install the cygwin ioperm package]))
ntfreak
committed
fi
AC_DEFINE([IS_WIN32], [1], [1 if building for Win32.])
AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
if test x$parport_use_giveio = xno; then
AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
fi
parport_use_giveio=yes
if test x$build_buspirate = xyes; then
AC_MSG_ERROR([buspirate currently not supported by MinGW32 hosts])
fi
CFLAGS="$CFLAGS -D__USE_MINGW_ANSI_STDIO"
AC_DEFINE([IS_MINGW], [1], [1 if building for MinGW.])
AC_DEFINE([IS_WIN32], [1], [1 if building for Win32.])
AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
*darwin*)
is_darwin=yes
if test x$parport_use_giveio = xyes; then
AC_MSG_WARN([--enable-parport-giveio cannot be used by Darwin hosts])
fi
parport_use_giveio=no
AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
AC_DEFINE([IS_DARWIN], [1], [1 if building for Darwin.])
if test x$parport_use_giveio = xyes; then
AC_MSG_WARN([--enable-parport-giveio cannot be used by ]$host[ hosts])
fi
parport_use_giveio=no
AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
;;
esac
if test $build_parport = yes; then
build_bitbang=yes
AC_DEFINE([BUILD_PARPORT], [1], [1 if you want parport.])
AC_DEFINE([BUILD_PARPORT], [0], [0 if you don't want parport.])
AC_DEFINE([BUILD_DUMMY], [1], [1 if you want dummy driver.])
AC_DEFINE([BUILD_DUMMY], [0], [0 if you don't want dummy driver.])
AC_DEFINE([BUILD_EP93XX], [1], [1 if you want ep93xx.])
AC_DEFINE([BUILD_EP93XX], [0], [0 if you don't want ep93xx.])
AC_DEFINE([BUILD_ZY1000], [1], [1 if you want ZY1000.])
AC_DEFINE([BUILD_ZY1000], [0], [0 if you don't want ZY1000.])
if test $build_zy1000_master = yes; then
AC_DEFINE([BUILD_ZY1000_MASTER], [1], [1 if you want ZY1000 JTAG master registers.])
AC_DEFINE([BUILD_ZY1000_MASTER], [0], [0 if you don't want ZY1000 JTAG master registers.])
AC_DEFINE([BUILD_AT91RM9200], [1], [1 if you want at91rm9200.])
AC_DEFINE([BUILD_AT91RM9200], [0], [0 if you don't want at91rm9200.])
AC_DEFINE([PARPORT_USE_PPDEV], [1], [1 if you want parport to use ppdev.])
AC_DEFINE([PARPORT_USE_PPDEV], [0], [0 if you don't want parport to use ppdev.])
AC_DEFINE([PARPORT_USE_GIVEIO], [1], [1 if you want parport to use giveio.])
AC_DEFINE([PARPORT_USE_GIVEIO], [0], [0 if you don't want parport to use giveio.])
AC_DEFINE([BUILD_BITBANG], [1], [1 if you want a bitbang interface.])
AC_DEFINE([BUILD_BITBANG], [0], [0 if you don't want a bitbang interface.])
AC_DEFINE([BUILD_FT2232_LIBFTDI], [1], [1 if you want libftdi ft2232.])
AC_DEFINE([BUILD_FT2232_LIBFTDI], [0], [0 if you don't want libftdi ft2232.])
AC_DEFINE([BUILD_FT2232_FTD2XX], [1], [1 if you want ftd2xx ft2232.])
AC_DEFINE([BUILD_FT2232_FTD2XX], [0], [0 if you don't want ftd2xx ft2232.])
if test $build_ftdi = yes; then
AC_DEFINE([BUILD_FTDI], [1], [1 if you want ftdi.])
else
AC_DEFINE([BUILD_FTDI], [0], [0 if you don't want ftdi.])
fi
if test $build_usb_blaster_libftdi = yes; then
build_bitbang=yes
AC_DEFINE([BUILD_USB_BLASTER_LIBFTDI], [1], [1 if you want libftdi usb_blaster.])
AC_DEFINE([BUILD_USB_BLASTER_LIBFTDI], [0], [0 if you don't want libftdi usb_blaster.])
fi
if test $build_usb_blaster_ftd2xx = yes; then
build_bitbang=yes
AC_DEFINE([BUILD_USB_BLASTER_FTD2XX], [1], [1 if you want ftd2xx usb_blaster.])
AC_DEFINE([BUILD_USB_BLASTER_FTD2XX], [0], [0 if you don't want ftd2xx usb_blaster.])
AC_DEFINE([BUILD_AMTJTAGACCEL], [1], [1 if you want the Amontec JTAG-Accelerator driver.])
AC_DEFINE([BUILD_AMTJTAGACCEL], [0], [0 if you don't want the Amontec JTAG-Accelerator driver.])
AC_DEFINE([BUILD_GW16012], [1], [1 if you want the Gateworks GW16012 driver.])
AC_DEFINE([BUILD_GW16012], [0], [0 if you don't want the Gateworks GW16012 driver.])
fi
if test $build_presto_libftdi = yes; then
build_bitq=yes
AC_DEFINE([BUILD_PRESTO_LIBFTDI], [1], [1 if you want the ASIX PRESTO driver using libftdi.])
AC_DEFINE([BUILD_PRESTO_LIBFTDI], [0], [0 if you don't want the ASIX PRESTO driver using libftdi.])
fi
if test $build_presto_ftd2xx = yes; then
build_bitq=yes
AC_DEFINE([BUILD_PRESTO_FTD2XX], [1], [1 if you want the ASIX PRESTO driver using FTD2XX.])
AC_DEFINE([BUILD_PRESTO_FTD2XX], [0], [0 if you don't want the ASIX PRESTO driver using FTD2XX.])
AC_DEFINE([BUILD_BITQ], [1], [1 if you want a bitq interface.])
AC_DEFINE([BUILD_BITQ], [0], [0 if you don't want a bitq interface.])
AC_DEFINE([BUILD_USBPROG], [1], [1 if you want the usbprog JTAG driver.])
AC_DEFINE([BUILD_USBPROG], [0], [0 if you don't want the usbprog JTAG driver.])
AC_DEFINE([BUILD_OOCD_TRACE], [1], [1 if you want the OpenOCD+trace ETM capture driver.])
AC_DEFINE([BUILD_OOCD_TRACE], [0], [0 if you don't want the OpenOCD+trace ETM capture driver.])
AC_DEFINE([BUILD_JLINK], [1], [1 if you want the J-Link JTAG driver.])
AC_DEFINE([BUILD_JLINK], [0], [0 if you don't want the J-Link JTAG driver.])
AC_DEFINE([BUILD_VSLLINK], [1], [1 if you want the Versaloon-Link JTAG driver.])
AC_DEFINE([BUILD_VSLLINK], [0], [0 if you don't want the Versaloon-Link JTAG driver.])
AC_DEFINE([BUILD_RLINK], [1], [1 if you want the RLink JTAG driver.])
AC_DEFINE([BUILD_RLINK], [0], [0 if you don't want the RLink JTAG driver.])
if test $build_ulink = yes; then
AC_DEFINE([BUILD_ULINK], [1], [1 if you want the ULINK JTAG driver.])
AC_DEFINE([BUILD_ULINK], [0], [0 if you don't want the ULINK JTAG driver.])
AC_DEFINE([BUILD_ARMJTAGEW], [1], [1 if you want the ARM-JTAG-EW JTAG driver.])
AC_DEFINE([BUILD_ARMJTAGEW], [0], [0 if you don't want the ARM-JTAG-EW JTAG driver.])
if test $build_buspirate = yes; then
AC_DEFINE([BUILD_BUSPIRATE], [1], [1 if you want the Buspirate JTAG driver.])
AC_DEFINE([BUILD_BUSPIRATE], [0], [0 if you don't want the Buspirate JTAG driver.])
AC_DEFINE([BUILD_STLINK], [1], [1 if you want the ST-Link JTAG driver.])
AC_DEFINE([BUILD_STLINK], [0], [0 if you don't want the ST-Link JTAG driver.])
if test $build_osbdm = yes; then
AC_DEFINE([BUILD_OSBDM], [1], [1 if you want the OSBDM driver.])
AC_DEFINE([BUILD_OSBDM], [0], [0 if you don't want the OSBDM driver.])
if test $build_opendous = yes; then
AC_DEFINE([BUILD_OPENDOUS], [1], [1 if you want the estick/opendous JTAG driver.])
else
AC_DEFINE([BUILD_OPENDOUS], [0], [0 if you don't want the estick/opendous JTAG driver.])
fi
if test "$use_internal_jimtcl" = yes; then
if test -f "$srcdir/jimtcl/configure.ac"; then
AX_CONFIG_SUBDIR_OPTION([jimtcl], [--disable-install-jim])
else
AC_MSG_ERROR([jimtcl not found, run git submodule init and git submodule update.])
fi
fi
if test $build_remote_bitbang = yes; then
build_bitbang=yes
AC_DEFINE([BUILD_REMOTE_BITBANG], [1], [1 if you want the Remote Bitbang JTAG driver.])
AC_DEFINE([BUILD_REMOTE_BITBANG], [0], [0 if you don't want the Remote Bitbang JTAG driver.])
#-- Deal with MingW/Cygwin FTD2XX issues
if test $is_win32 = yes; then
if test "${with_ftd2xx_linux_tardir+set}" = set
then
AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
fi
if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
# if we are given a zipdir...
if test "${with_ftd2xx_win32_zipdir+set}" = set
then
# Set the CFLAGS for "ftd2xx.h"
f=$with_ftd2xx_win32_zipdir/ftd2xx.h
if test ! -f $f ; then
AC_MSG_ERROR([File: $f cannot be found])
fi
CFLAGS="$CFLAGS -I$with_ftd2xx_win32_zipdir"
# And calculate the LDFLAGS for the machine
case "$host_cpu" in
LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/i386"
LIBS="$LIBS -lftd2xx"
f=$with_ftd2xx_win32_zipdir/i386/ftd2xx.lib
;;
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/amd64"
LIBS="$LIBS -lftd2xx"
f=$with_ftd2xx_win32_zipdir/amd64/ftd2xx.lib
;;
*)
AC_MSG_ERROR([Unknown Win32 host cpu: $host_cpu])
;;
esac
if test ! -f $f ; then
AC_MSG_ERROR([Library: $f not found])
fi
else
LIBS="$LIBS -lftd2xx"
AC_MSG_WARN([ASSUMPTION: The (win32) FTDICHIP.COM files: ftd2xx.h and ftd2xx.lib are in a proper place])
fi
fi
fi # win32
if test $is_darwin = yes ; then
if test "${with_ftd2xx_win32_zipdir+set}" = set
then
AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
fi
if test "${with_ftd2xx_linux_tardir+set}" = set
then
AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
fi
if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
AC_MSG_CHECKING([for libftd2xx.a (darwin)])
if test ! -f /usr/local/include/ftd2xx.h ; then
AC_MSG_ERROR([ftd2xx library from FTDICHIP.com seems to be missing, cannot find: /usr/local/include/ftd2xx.h])
fi
CFLAGS="$CFLAGS -I/usr/local/include"
LDFLAGS="$LDFLAGS -L/usr/local/lib"
LIBS="$LIBS -lftd2xx"
AC_MSG_RESULT([-L/usr/local/lib -lftd2xx])
fi
fi # darwin
if test $is_win32 = no && test $is_darwin = no ; then
if test "${with_ftd2xx_win32_zipdir+set}" = set
then
AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
fi
if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
# Must be linux
if test $host_os != linux-gnu && test $host_os != linux ; then
AC_MSG_ERROR([The (linux) ftd2xx library from FTDICHIP.com is linux only. Try --enable-ft2232-libftdi instead])
fi
# Are we given a TAR directory?
if test "${with_ftd2xx_linux_tardir+set}" = set
then
AC_MSG_CHECKING([uninstalled ftd2xx distribution])
# The .H file is simple..
FTD2XX_H=$with_ftd2xx_linux_tardir/ftd2xx.h
if test ! -f "${FTD2XX_H}"; then
AC_MSG_ERROR([Option: --with-ftd2xx-linux-tardir appears wrong, cannot find: ${FTD2XX_H}])
fi
CFLAGS="$CFLAGS -I$with_ftd2xx_linux_tardir"
if test $with_ftd2xx_lib = shared; then
FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir"
FTD2XX_LIB="-lftd2xx"
else
# Test #1 - v1.0.x
case "$host_cpu" in
i?86|x86_32)
dir=build/i386;;
amd64|x86_64)
dir=build/x86_64;;
*)
dir=none;;
esac
if test -f "$with_ftd2xx_linux_tardir/$dir/libftd2xx.a"; then
FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir/$dir"
# Also needs -lrt
FTD2XX_LIB="-lftd2xx -lrt"
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
else
# Test Number2.
# Grr.. perhaps it exists as a version number?
FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a.*.*.*"
count=`ls ${FTD2XX_LIB} | wc -l`
if test $count -gt 1 ; then
AC_MSG_ERROR([Multiple libftd2xx.a files found in: $with_ftd2xx_linux_tardir/static_lib sorry cannot handle this yet])
fi
if test $count -ne 1 ; then
AC_MSG_ERROR([Not found: $f, option: --with-ftd2xx-linux-tardir appears to be wrong])
fi
# Because the "-l" rules do not understand version numbers...
# we will just stuff the absolute path onto the LIBS variable
FTD2XX_LIB="`ls ${FTD2XX_LIB}` -lpthread"
FTD2XX_LDFLAGS=""
fi
fi
LDFLAGS="${LDFLAGS} ${FTD2XX_LDFLAGS}"
LIBS="${LIBS} ${FTD2XX_LIB}"
AC_MSG_RESULT([${FTD2XX_LDFLAGS} ${FTD2XX_LIB}])
else
AC_CHECK_HEADER([ftd2xx.h],[],[
AC_MSG_ERROR([You seem to be missing the FTD2xx driver header file.])
])
AC_SEARCH_LIBS([FT_GetLibraryVersion],[ftd2xx],,[
AC_MSG_ERROR([You appear to be missing the FTD2xx driver library.])
],[])
fi
fi
fi # linux
if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes; then
# Before we go any further - make sure we can *BUILD* and *RUN*
# a simple app with the "ftd2xx.lib" file - in what ever form we where given
# We should be able to compile, link and run this test program now
AC_MSG_CHECKING([whether ftd2xx library works])
#
# Save the LDFLAGS for later..
LDFLAGS_SAVE=$LDFLAGS
CFLAGS_SAVE=$CFLAGS
_LDFLAGS=`eval echo $LDFLAGS`
_CFLAGS=`eval echo $CFLAGS`
LDFLAGS=$_LDFLAGS
CFLAGS=$_CFLAGS
#include "confdefs.h"
#if IS_WIN32
#include "windows.h"
#endif
#include <stdio.h>
#include <ftd2xx.h>
AC_MSG_RESULT([Success!])
], [
AC_MSG_ERROR([Cannot build & run test program using ftd2xx.lib])
], [
AC_MSG_RESULT([Skipping as we are cross-compiling])
])
AC_MSG_CHECKING([for ftd2xx highspeed device support])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[