4 # Copyright (C) 2007, 2008 Kolja Waschk and other
5 # UrJTAG.org developers, (C) 2002, 2003 ETC s.r.o.
7 # This program is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU General Public License
9 # as published by the Free Software Foundation; either version 2
10 # of the License, or (at your option) any later version.
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
22 # Written by Marcel Telka <marcel@telka.sk>, 2002, 2003,
23 # and other UrJTAG authors, 2007, 2008, ...
26 AC_INIT(UrJTAG,0.10,http://urjtag.org,urjtag)
29 AC_COPYRIGHT([Copyright (C) 2007/08 Kolja Waschk and other UrJTAG authors; 2002/03 ETC s.r.o.])
30 AC_REVISION($Revision$)
32 # Get SVN Revision - idea from xfce-power-manager (C) 2007 by B.Tarricone
34 AC_MSG_CHECKING([code revision])
37 if test -n "$SVN" -a -x "$SVN"; then
38 SVN_REVISION=`LC_ALL=C svn info -R "$srcdir" 2>/dev/null | awk 'BEGIN { x=0 } /^Revision: / { if($2>x) x=$2; } END { printf "%d\n",x }'`
41 if test "$SVN_REVISION" -eq 0 -a -e "$srcdir/ChangeLog"; then
42 SVN_REVISION=`awk 'BEGIN { x=0 } /Revision: / { if($2>x) x=$2; } END { printf "%d\n",x }' "$srcdir/ChangeLog"`
45 if test "$SVN_REVISION" -eq 0; then
46 SVN_REVISION=`git log -n1 --pretty=format:%b 2>/dev/null | sed -n '/^git-svn-id:/{s:.*@::;s: .*::;p}'`
47 SVN_FROM="git-svn log"
49 if test "$SVN_REVISION" -eq "0" ; then
50 AC_MSG_RESULT([unknown, using 0])
52 AC_MSG_RESULT([from $SVN_FROM: $SVN_REVISION])
54 AC_DEFINE_UNQUOTED([SVN_REVISION], "$SVN_REVISION", [subversion revision number])
55 AC_SUBST([SVN_REVISION])
57 AC_CONFIG_AUX_DIR(tools)
59 AM_INIT_AUTOMAKE([check-news dist-bzip2])
65 include/urjtag/Makefile
77 src/apps/jtag/Makefile
78 src/apps/bsdl2jtag/Makefile
84 AM_CONFIG_HEADER(config.h)
85 AM_CONFIG_HEADER(include/urjtag/urjtag.h)
89 AM_GNU_GETTEXT(external)
90 AM_GNU_GETTEXT_VERSION(0.14.1)
99 AC_SEARCH_LIBS([ioperm], [ioperm])
100 if test "$ac_cv_search_ioperm" != "no"; then
101 AC_DEFINE(HAVE_IOPERM, 1, [Define to 1 if you have the ioperm() function])
104 AC_SEARCH_LIBS([i386_set_ioperm], [i386])
105 if test "$ac_cv_search_i386_set_ioperm" != "no"; then
106 AC_DEFINE(HAVE_I386_SET_IOPERM, 1,
107 [Define to 1 if you have the i386_set_ioperm() function])
108 HAVE_I386_SET_IOPERM="yes"
112 AC_CHECK_FUNCS(swprintf)
114 AC_CHECK_FUNC(clock_gettime, [], [ AC_CHECK_LIB(rt, clock_gettime) ])
116 AC_CHECK_FUNCS(usleep)
117 AC_CHECK_FUNCS(nanosleep)
119 dnl check for sigaction with SA_ONESHOT or SA_RESETHAND
120 AC_TRY_COMPILE([#include <signal.h>], [
122 # define SA_ONESHOT SA_RESETHAND
124 int sa_flags = SA_ONESHOT;
126 [AC_DEFINE([HAVE_SIGACTION_SA_ONESHOT], [1], [Have a defined SA_ONESHOT])],
129 AC_CHECK_HEADERS([linux/ppdev.h], [HAVE_LINUX_PPDEV_H="yes"])
130 AC_CHECK_HEADERS([dev/ppbus/ppi.h], [HAVE_DEV_PPBUS_PPI_H="yes"])
131 AC_CHECK_HEADERS(stropts.h)
132 AC_CHECK_HEADERS(wchar.h)
139 AC_ARG_WITH([libusb],
140 [AS_HELP_STRING([--with-libusb],
141 [use libusb for some USB JTAG cables])],,
145 AS_IF([test "x$with_libusb" != xno], [
147 save_CPPFLAGS=$CPPFLAGS
148 PKG_CHECK_MODULES(LIBUSB, libusb, [:;], [dnl
149 AS_IF([test "x$with_libusb" != xyes -a "x$with_libusb" != xcheck], [
152 LIBUSB_LIBS="-L$with_libusb/lib/gcc -lusb"
153 LIBUSB_CFLAGS="-I$with_libusb/include"
156 LIBUSB_LIBS="-Lwith_libusb -lusb"
157 LIBUSB_CFLAGS="-I$with_libusb"
161 AC_PATH_TOOL(LIBUSB_CONFIG, libusb-config, no)
162 AS_IF([test "$LIBUSB_CONFIG" != "no"],[
163 LIBUSB_LIBS=`$LIBUSB_CONFIG --libs`
164 LIBUSB_CFLAGS=`$LIBUSB_CONFIG --cflags`
168 LIBS="$LIBS $LIBUSB_LIBS"
169 CPPFLAGS="$CPPFLAGS $LIBUSB_CFLAGS"
170 AC_CHECK_FUNC([usb_find_devices], [
171 AC_DEFINE(HAVE_LIBUSB, 1, [Define if you have libusb])
174 AC_MSG_WARN([*** libusb not detected. No support for USB JTAG cables via libusb.])
176 CPPFLAGS=$save_CPPFLAGS
179 AM_CONDITIONAL(HAVE_LIBUSB, [test "x$HAVELIBUSB" = "xyes"])
182 dnl Use FTDI library?
184 AC_ARG_WITH([libftdi],
185 [AS_HELP_STRING([--with-libftdi],
186 [use libftdi for FTDI-based cables])],
187 [], [with_libftdi=check])
190 AS_IF([test "x$with_libftdi" != xno], [
192 save_CPPFLAGS=$CPPFLAGS
193 PKG_CHECK_MODULES(LIBFTDI, libftdi, [:;], [dnl
194 AS_IF([test "x$with_libftdi" != xyes -a "x$with_libftdi" != xcheck], [
195 LIBFTDI_LIBS="-L$with_libftdi -lftdi"
196 LIBFTDI_CFLAGS="-I$with_libftdi"
198 AC_PATH_TOOL(LIBFTDI_CONFIG, libftdi-config, no)
199 AS_IF([test "$LIBFTDI_CONFIG" != "no"],[
200 LIBFTDI_LIBS=`$LIBFTDI_CONFIG --libs`
201 LIBFTDI_CFLAGS=`$LIBFTDI_CONFIG --cflags`
205 LIBS="$LIBFTDI_LIBS $LIBS"
206 CPPFLAGS="$CPPFLAGS $LIBFTDI_CFLAGS"
207 AC_CHECK_FUNC([ftdi_usb_open], [
208 AC_DEFINE(HAVE_LIBFTDI, 1, [Define if you have libftdi])
211 AC_MSG_WARN([*** libftdi not detected. No support for FTDI-based USB JTAG cables via libftdi.])
213 CPPFLAGS=$save_CPPFLAGS
216 AM_CONDITIONAL(HAVE_LIBFTDI, [test "x$HAVELIBFTDI" = "xyes"])
219 dnl Use FTDI ftd2xx library?
221 AC_ARG_WITH([ftd2xx],
222 [AS_HELP_STRING([--with-ftd2xx],
223 [use ftd2xx library for FTDI-based cables])],
224 [], [with_ftd2xx=check])
227 AS_IF([test "x$with_ftd2xx" = xyes -o "x$with_ftd2xx" = xcheck], [
228 AC_CHECK_LIB([ftd2xx], [FT_OpenEx], [
230 LIBS="-lftd2xx $LIBS"
232 AC_MSG_WARN([*** libftd2xx not found. No support for FTDI-based USB JTAG cables via libftd2xx.])
235 AS_IF([test "x$with_ftd2xx" != xno], [
239 CFLAGS="$CFLAGS -I$with_ftd2xx"
240 AS_IF([test -d "$with_ftd2xx/i386"], [
241 FTD2XXLIB="$with_ftd2xx/i386/ftd2xx.lib"
243 FTD2XXLIB="$with_ftd2xx/ftd2xx.lib"
247 CFLAGS="$CFLAGS -I$with_ftd2xx -L$with_ftd2xx"
248 LIBS="-lftd2xx $LIBS"
253 AS_IF([test "x$HAVELIBFTD2XX" = xyes], [
254 AM_CONDITIONAL(HAVE_LIBFTD2XX, true)
255 AC_DEFINE(HAVE_LIBFTD2XX, 1, [define if you have libftd2xx])
257 AM_CONDITIONAL(HAVE_LIBFTD2XX, false)
262 dnl Use InpOut I/O library?
263 dnl http://www.highrez.co.uk/Downloads/InpOut32/default.htm
265 AC_ARG_WITH([inpout32],
266 [AS_HELP_STRING([--with-inpout32],
267 [use InpOut32.dll for parallel port access on Windows])],
268 [], [with_inpout32=no])
272 *) with_inpout32=no ;;
275 AS_IF([test "x$with_inpout32" = xyes], [
277 AC_DEFINE(HAVE_INPOUTXX, 1, [define if you have inpout32.dll])
281 AM_CONDITIONAL(HAVE_INPOUTXX, [test "x$HAVE_INPOUTXX" = xyes])
284 WARNINGCFLAGS="-Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith"
285 AC_ARG_ENABLE([werror],
286 [AS_HELP_STRING([--enable-werror], [build with -Werror])],
287 [], [enable_werror=maybe])
288 AS_IF([test "x$enable_werror" = xmaybe -a -d .svn], [
291 AS_IF([test "x$enable_werror" = xyes], [
292 WARNINGCFLAGS="$WARNINGCFLAGS -Werror"
294 AC_SUBST(WARNINGCFLAGS)
296 CPPFLAGS="-I\$(top_srcdir) -I\$(top_srcdir)/include $CPPFLAGS"
298 AC_ARG_ENABLE([apps],
299 [AS_HELP_STRING([--disable-apps],
300 [disable building the jtag and bsdl2jtag main programs])],,
303 AS_IF([test "x$enable_apps" = xyes], [
304 AM_CONDITIONAL(ENABLE_APPS, true)
305 AC_DEFINE(ENABLE_APPS, 1, [define if you want to build the jtag and bsdl2jtag main programs])
307 AM_CONDITIONAL(ENABLE_APPS, false)
313 # check for modern version of flex
317 AS_IF([test "$LEX" = flex], [
326 AS_IF([test -n "$v1" -a "$v1" -gt "$ref_v1"], [
329 AS_IF([test -n "$v1" -a "$v1" -eq "$ref_v1"], [
330 AS_IF([test "$v2" -gt "$ref_v2"], [
333 AS_IF([test "$v2" -eq "$ref_v2"], [
334 AS_IF([test "$v3" -ge "$ref_v3"], [
343 flex_version=`$LEX --version | $AWK '{print $2}'`
344 AS_IF([test "$flex_version" = "version"], [
345 flex_version=`$LEX --version | $AWK '{print $3}'`
348 flex_v1=`echo $flex_version | $AWK -F . '{print $1}' | $SED -e 's/[a-zA-Z]//g'`
349 flex_v2=`echo $flex_version | $AWK -F . '{print $2}' | $SED -e 's/[a-zA-Z]//g'`
350 flex_v3=`echo $flex_version | $AWK -F . '{print $3}' | $SED -e 's/[a-zA-Z]//g'`
352 # svf and bsdl lexer require flex >= 2.5.33
356 flex_ref_version="$flex_ref_v1.$flex_ref_v2.$flex_ref_v3"
357 AC_MSG_CHECKING([for flex >= $flex_ref_version, required for SVF and BSDL lexer])
359 AS_IF([ver_ge_ver $flex_v1 $flex_v2 $flex_v3 $flex_ref_v1 $flex_ref_v2 $flex_ref_v3], [
360 AC_MSG_RESULT([yes - flex $flex_version])
364 AC_MSG_RESULT([no - flex $flex_version])
374 dnl If the transformed svf_flex.c is already existing, it doesn't matter
375 dnl that flex is too old for building the lexer.
376 AS_IF([test "x$svf_lexer" = xfalse], [
377 AS_IF([test -r src/svf/svf_bison.h], [
382 dnl Enable SVF player?
384 [AS_HELP_STRING([--disable-svf], [Disable SVF player])],
385 [case "${enableval}" in
388 *) AC_MSG_ERROR(bad value ${enableval} for --enable-svf) ;;
391 AS_IF([test "x$svf" = xtrue], [
392 AM_CONDITIONAL(ENABLE_SVF, true)
393 AC_DEFINE(ENABLE_SVF, 1, [define if SVF player is enabled])
395 AM_CONDITIONAL(ENABLE_SVF, false)
397 # SVF is disabled, but the generated files are still required for
398 # POTFILES. They simply have to exist as empty files.
399 AS_IF([test ! -r src/svf/svf_flex.c], [
400 touch src/svf/svf_flex.c
402 AS_IF([test ! -r src/svf/svf_bison.c], [
403 touch src/svf/svf_bison.c
408 dnl If the transformed bsdl_flex.c is already existing, it doesn't matter
409 dnl that flex is too old for building the lexer.
410 AS_IF([test "x$bsdl_lexer" = xfalse], [
411 AS_IF([test -r src/bsdl/bsdl_bison.h], [
416 dnl Enable BSDL subsystem?
418 [AS_HELP_STRING([--disable-bsdl], [Disable BSDL subsystem])],
419 [case "${enableval}" in
422 *) AC_MSG_ERROR(bad value ${enableval} for --enable-bsdl) ;;
425 AS_IF([test "x$bsdl" = xtrue], [
426 AM_CONDITIONAL(ENABLE_BSDL, true)
427 AC_DEFINE(ENABLE_BSDL, 1, [define if BSDL subsystem is enabled])
429 AM_CONDITIONAL(ENABLE_BSDL, false)
431 # BSDL is disabled, but the generated files are still required for
432 # POTFILES. They simply have to exist as empty files.
433 AS_IF([test ! -r src/bsdl/vhdl_flex.c], [
434 touch src/bsdl/vhdl_flex.c
436 AS_IF([test ! -r src/bsdl/vhdl_bison.c], [
437 touch src/bsdl/vhdl_bison.c
439 AS_IF([test ! -r src/bsdl/bsdl_flex.c], [
440 touch src/bsdl/bsdl_flex.c
442 AS_IF([test ! -r src/bsdl/bsdl_bison.c], [
443 touch src/bsdl/bsdl_bison.c
447 dnl Enable experimental brute-force JEDEC flash autodetection?
448 AC_ARG_ENABLE(jedec-exp,
449 [AS_HELP_STRING([--enable-jedec-exp], [Enable experimental JEDEC flash detection])],
450 [case "${enableval}" in
451 yes) jedecexp=true ;;
452 no) jedecexp=false ;;
453 *) AC_MSG_ERROR(bad value ${enableval} for --enable-jedec-exp) ;;
456 AS_IF([test "x$jedecexp" = xtrue], [
457 AM_CONDITIONAL(JEDEC_EXP, true)
458 AC_DEFINE(JEDEC_EXP, 1, [define if experimental JEDEC flash detection is enabled])
460 AM_CONDITIONAL(JEDEC_EXP, false)
464 # Macro for driver include check
465 AC_DEFUN([CHECK_DRIVER], [
466 AS_IF([echo "$1" | $GREP -q $3], [
467 AC_DEFINE([$4], 1, [define if $3 is enabled])
468 AM_CONDITIONAL([$4], true)
471 AM_CONDITIONAL([$4], false)
477 AC_DEFUN([DEF_ENABLE_BUSDRIVERS], [\
478 arm9tdmi au1500 avr32 bcm1250 bf526_ezkit bf527_ezkit bf533_stamp bf533_ezkit bf537_stamp bf537_ezkit bf538f_ezkit bf548_ezkit bf561_ezkit bscoach ejtag ejtag_dma \
479 fjmem ixp425 ixp435 ixp465 jopcyc h7202 lh7a400 mpc5200 mpc824x ppc405ep ppc440gx_ebc8 prototype pxa2x0 pxa27x \
480 s3c4510 sa1110 sh7727 sh7750r sh7751r sharc_21065L slsup3 tx4925 zefant_xs3])
482 [AS_HELP_STRING([--enable-bus], [Enable default set or specific bus drivers:])]
483 [AS_HELP_STRING([], ['default' enables:])]
484 [AS_HELP_STRING([],DEF_ENABLE_BUSDRIVERS)]
486 [AS_CASE([${enableval}],
487 [yes], [busdrivers=default],
488 [no], [busdrivers=none],
489 [none], [busdrivers=none],
490 [busdrivers=`echo ${enableval} | $SED -e 's/,/ /g'`])],
491 [busdrivers=default])
492 # expand 'default' to default enabled busdrivers
493 busdrivers=`echo ${busdrivers} | $SED -e "s/default/DEF_ENABLE_BUSDRIVERS/"`
495 enabled_bus_drivers=''
496 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [arm9tdmi], [ENABLE_BUS_ARM9TDMI])
497 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [au1500], [ENABLE_BUS_AU1500])
498 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [avr32], [ENABLE_BUS_AVR32])
499 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [bcm1250], [ENABLE_BUS_BCM1250])
500 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [bf526_ezkit], [ENABLE_BUS_BF526_EZKIT])
501 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [bf527_ezkit], [ENABLE_BUS_BF527_EZKIT])
502 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [bf533_stamp], [ENABLE_BUS_BF533_STAMP])
503 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [bf533_ezkit], [ENABLE_BUS_BF533_EZKIT])
504 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [bf537_stamp], [ENABLE_BUS_BF537_STAMP])
505 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [bf537_ezkit], [ENABLE_BUS_BF537_EZKIT])
506 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [bf538f_ezkit], [ENABLE_BUS_BF538F_EZKIT])
507 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [bf548_ezkit], [ENABLE_BUS_BF548_EZKIT])
508 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [bf561_ezkit], [ENABLE_BUS_BF561_EZKIT])
509 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [bscoach], [ENABLE_BUS_BSCOACH])
510 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [ejtag], [ENABLE_BUS_EJTAG])
511 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [ejtag_dma], [ENABLE_BUS_EJTAG_DMA])
512 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [fjmem], [ENABLE_BUS_FJMEM])
513 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [ixp425], [ENABLE_BUS_IXP425])
514 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [ixp435], [ENABLE_BUS_IXP435])
515 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [ixp465], [ENABLE_BUS_IXP465])
516 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [jopcyc], [ENABLE_BUS_JOPCYC])
517 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [h7202], [ENABLE_BUS_H7202])
518 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [lh7a400], [ENABLE_BUS_LH7A400])
519 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [mpc5200], [ENABLE_BUS_MPC5200])
520 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [mpc824x], [ENABLE_BUS_MPC824X])
521 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [ppc405ep], [ENABLE_BUS_PPC405EP])
522 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [ppc440gx_ebc8], [ENABLE_BUS_PPC440GX_EBC8])
523 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [prototype], [ENABLE_BUS_PROTOTYPE])
524 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [pxa2x0], [ENABLE_BUS_PXA2X0])
525 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [pxa27x], [ENABLE_BUS_PXA27X])
526 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [s3c4510], [ENABLE_BUS_S3C4510])
527 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [sa1110], [ENABLE_BUS_SA1110])
528 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [sh7727], [ENABLE_BUS_SH7727])
529 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [sh7750r], [ENABLE_BUS_SH7750R])
530 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [sh7751r], [ENABLE_BUS_SH7751R])
531 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [sharc_21065L], [ENABLE_BUS_SHARC_21065L])
532 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [slsup3], [ENABLE_BUS_SLSUP3])
533 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [tx4925], [ENABLE_BUS_TX4925])
534 CHECK_DRIVER([$busdrivers], [enabled_bus_drivers], [zefant_xs3], [ENABLE_BUS_ZEFANT_XS3])
536 # Enable cable drivers
537 AC_DEFUN([DEF_ENABLE_CABLEDRIVERS], [\
538 arcom byteblaster dlc5 ea253 ei012 ft2232 igloo jlink keithkoep lattice mpcbdm triton usbblaster wiggler xpc])
539 AC_DEFUN([DEF_DISABLE_CABLEDRIVERS], [ep9307 jim ts7800])
541 [AS_HELP_STRING([--enable-cable], [Enable default set or specific cable drivers.])]
542 [AS_HELP_STRING([], ['default' enables:])]
543 [AS_HELP_STRING([],DEF_ENABLE_CABLEDRIVERS)]
544 [AS_HELP_STRING([], [Disabled by default are:])]
545 [AS_HELP_STRING([],DEF_DISABLE_CABLEDRIVERS)]
547 [AS_CASE([${enableval}],
548 [yes], [cabledrivers=default],
549 [no], [cabledrivers=none],
550 [none], [cabledrivers=none],
551 [cabledrivers=`echo ${enableval} | $SED -e 's/,/ /g'`])],
552 [cabledrivers=default])
553 # expand 'default' to default enabled cabledrivers
554 cabledrivers=`echo ${cabledrivers} | $SED -e "s/default/DEF_ENABLE_CABLEDRIVERS/"`
555 # automatically disable cable drivers when a required feature is not available
556 AS_IF([test "x$HAVELIBFTDI" != "xyes" -a "x$HAVELIBFTD2XX" != "xyes"], [
557 cabledrivers=`echo ${cabledrivers} | $SED -e "s/ft2232//" -e "s/usbblaster//"`
559 AS_IF([test "x$HAVELIBUSB" != "xyes"], [
560 cabledrivers=`echo ${cabledrivers} | $SED -e "s/jlink//" -e "s/xpc//"`
563 enabled_cable_drivers=''
564 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [arcom], [ENABLE_CABLE_ARCOM])
565 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [byteblaster], [ENABLE_CABLE_BYTEBLASTER])
566 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [dlc5], [ENABLE_CABLE_DLC5])
567 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [ea253], [ENABLE_CABLE_EA253])
568 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [ei012], [ENABLE_CABLE_EI012])
569 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [ep9307], [ENABLE_CABLE_EP9307])
570 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [ft2232], [ENABLE_CABLE_FT2232])
571 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [igloo], [ENABLE_CABLE_IGLOO])
572 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [jim], [ENABLE_JIM])
573 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [jlink], [ENABLE_CABLE_JLINK])
574 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [keithkoep], [ENABLE_CABLE_KEITHKOEP])
575 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [lattice], [ENABLE_CABLE_LATTICE])
576 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [mpcbdm], [ENABLE_CABLE_MPCBDM])
577 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [triton], [ENABLE_CABLE_TRITON])
578 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [usbblaster], [ENABLE_CABLE_USBBLASTER])
579 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [wiggler], [ENABLE_CABLE_WIGGLER])
580 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [xpc], [ENABLE_CABLE_XPC])
581 CHECK_DRIVER([$cabledrivers], [enabled_cable_drivers], [ts7800], [ENABLE_CABLE_TS7800])
584 # Enable lowlevel drivers
585 AC_DEFUN([DEF_ENABLE_LOWLEVELDRIVERS], [\
586 direct ftdi ftd2xx ppdev ppi])
587 AC_ARG_ENABLE(lowlevel,
588 [AS_HELP_STRING([--enable-lowlevel], [Enable default set or specific lowlevel drivers:])]
589 [AS_HELP_STRING([], ['default' enables:])]
590 [AS_HELP_STRING([],DEF_ENABLE_LOWLEVELDRIVERS)]
592 [AS_CASE([${enableval}],
593 [yes], [lowleveldrivers=default],
594 [no], [lowleveldrivers=none],
595 [none], [lowleveldrivers=none],
596 [lowleveldrivers=`echo ${enableval} | $SED -e 's/,/ /g'`])],
597 [lowleveldrivers=default])
598 # expand 'default' to default enabled lowlevel drivers
599 lowleveldrivers=`echo ${lowleveldrivers} | $SED -e "s/default/DEF_ENABLE_LOWLEVELDRIVERS/"`
600 # automatically disable lowlevel drivers when a required feature is not available
601 AS_IF([test "x$HAVELIBFTDI" != "xyes"], [
602 lowleveldrivers=`echo ${lowleveldrivers} | $SED -e "s/ftdi//"`
604 AS_IF([test "x$HAVELIBFTD2XX" != "xyes"], [
605 lowleveldrivers=`echo ${lowleveldrivers} | $SED -e "s/ftd2xx//"`
607 AS_IF([test "x$HAVE_LINUX_PPDEV_H" != "xyes"], [
608 lowleveldrivers=`echo ${lowleveldrivers} | $SED -e "s/ppdev//"`
610 AS_IF([test "x$HAVE_DEV_PPBUS_PPI_H" != "xyes"], [
611 lowleveldrivers=`echo ${lowleveldrivers} | $SED -e "s/ppi//"`
613 AS_IF([test "x$HAVE_IOPERM" != "xyes" -a "x$HAVE_I386_SET_IOPERM" != "xyes" -a "x$HAVE_INPOUTXX" != "xyes" ], [
614 lowleveldrivers=`echo ${lowleveldrivers} | $SED -e "s/direct//"`
617 enabled_lowlevel_drivers=''
618 CHECK_DRIVER([$lowleveldrivers], [enabled_lowlevel_drivers], [direct], [ENABLE_LOWLEVEL_DIRECT])
619 CHECK_DRIVER([$lowleveldrivers], [enabled_lowlevel_drivers], [ftd2xx], [ENABLE_LOWLEVEL_FTD2XX])
620 CHECK_DRIVER([$lowleveldrivers], [enabled_lowlevel_drivers], [ftdi], [ENABLE_LOWLEVEL_FTDI])
621 CHECK_DRIVER([$lowleveldrivers], [enabled_lowlevel_drivers], [ppdev], [ENABLE_LOWLEVEL_PPDEV])
622 CHECK_DRIVER([$lowleveldrivers], [enabled_lowlevel_drivers], [ppi], [ENABLE_LOWLEVEL_PPI])
625 dnl Enable a relocatable jtag?
626 AC_ARG_ENABLE(relocatable,
627 [AS_HELP_STRING([--enable-relocatable], [Enable relocatable paths])],
628 [relocatable=$enableval], [relocatable=no])
629 AS_IF([test "x$relocatable" = xyes], [
630 AM_CONDITIONAL(JTAG_RELOCATABLE, true)
631 AC_DEFINE(JTAG_RELOCATABLE, 1, [define for relocatable paths])
633 AM_CONDITIONAL(JTAG_RELOCATABLE, false)
637 dnl Is fmax() provided by libm?
638 AC_CHECK_LIB([m], [fmax], [
639 AC_DEFINE(HAVE_FMAX, 1, [Define if -lm provides fmax()])
643 dnl Enable use of DMALLOC library?
644 AC_ARG_ENABLE(dmalloc,
645 [AS_HELP_STRING([--enable-dmalloc], [Enable heap debugging with dmalloc library])],
646 [dmalloc=$enableval], [dmalloc=no])
647 AS_IF([test "x$dmalloc" = xyes], [
648 AM_CONDITIONAL(DMALLOC, true)
649 AC_DEFINE(DMALLOC, 1, [define for dmalloc library])
651 AM_CONDITIONAL(DMALLOC, false)
655 # Enable flash multi-byte write mode?
656 AC_ARG_ENABLE(flash-multi-byte,
657 [AS_HELP_STRING([--disable-flash-multi-byte], [Disable flash multi-byte write mode])],
658 [flash_multi_byte=$enableval], [flash_multi_byte=yes])
659 AS_IF([test "x$flash_multi_byte" = xyes], [
660 AC_DEFINE(FLASH_MULTI_BYTE, 1, [define for flash multi-byte write mode])
667 dnl Configuration summary
669 AC_DEFUN([MAKE_YESNO_VAR],[dnl
670 AS_IF([test ${$1:-$2} != $2], [dnl
676 MAKE_YESNO_VAR([HAVELIBFTDI], [no])
677 MAKE_YESNO_VAR([HAVELIBUSB], [no])
678 MAKE_YESNO_VAR([HAVELIBFTD2XX], [no])
679 MAKE_YESNO_VAR([HAVE_INPOUTXX], [no])
680 MAKE_YESNO_VAR([svf], [false])
681 MAKE_YESNO_VAR([bsdl], [false])
684 jtag is now configured for
686 Detected libusb : $FLAG_HAVELIBUSB
687 Detected libftdi : $FLAG_HAVELIBFTDI
688 Detected libftd2xx : $FLAG_HAVELIBFTD2XX
689 Detected inpout32 : $FLAG_HAVE_INPOUTXX
690 Build SVF player : $FLAG_svf
691 Build BSDL subsystem : $FLAG_bsdl
692 Bus drivers : $enabled_bus_drivers
693 Cable drivers : $enabled_cable_drivers
694 Lowlevel drivers : $enabled_lowlevel_drivers