aice: Always setup SDP basic mode
[openocd.git] / configure.ac
1 AC_PREREQ(2.60)
2 AC_INIT([openocd], [0.8.0-dev],
3 [OpenOCD Mailing List <openocd-devel@lists.sourceforge.net>])
4 AC_CONFIG_SRCDIR([src/openocd.c])
5
6 m4_include([config_subdir.m4])dnl
7
8 AM_INIT_AUTOMAKE([-Wall -Wno-portability dist-bzip2 dist-zip subdir-objects])
9
10 AC_CONFIG_HEADERS([config.h])
11 AH_BOTTOM([
12 #include <helper/system.h>
13 #include <helper/types.h>
14 #include <helper/replacements.h>
15 ])
16
17 AC_LANG_C
18 AC_PROG_CC
19 AC_PROG_CC_C99
20 AM_PROG_CC_C_O
21 AC_PROG_RANLIB
22
23 dnl disable checks for C++, Fortran and GNU Java Compiler
24 m4_defun([_LT_AC_LANG_CXX_CONFIG], [:])
25 m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
26 m4_defun([_LT_AC_LANG_GCJ_CONFIG], [:])
27 AC_DISABLE_SHARED
28 AC_PROG_LIBTOOL
29 AC_SUBST([LIBTOOL_DEPS])
30
31 dnl configure checks required for Jim files (these are obsolete w/ C99)
32 AC_C_CONST
33 AC_TYPE_LONG_LONG_INT
34
35 AC_SEARCH_LIBS([ioperm], [ioperm])
36 AC_SEARCH_LIBS([dlopen], [dl])
37
38 AC_CHECK_HEADERS([sys/socket.h])
39 AC_CHECK_HEADERS([arpa/inet.h], [], [], [dnl
40 #include <stdio.h>
41 #ifdef STDC_HEADERS
42 # include <stdlib.h>
43 # include <stddef.h>
44 #else
45 # ifdef HAVE_STDLIB_H
46 # include <stdlib.h>
47 # endif
48 #endif
49 #ifdef HAVE_SYS_SOCKET_H
50 # include <sys/socket.h>
51 #endif
52 ])
53 AC_CHECK_HEADERS([elf.h])
54 AC_CHECK_HEADERS([dirent.h])
55 AC_CHECK_HEADERS([fcntl.h])
56 AC_CHECK_HEADERS([ifaddrs.h], [], [], [dnl
57 #include <stdio.h>
58 #ifdef STDC_HEADERS
59 # include <stdlib.h>
60 # include <stddef.h>
61 #else
62 # ifdef HAVE_STDLIB_H
63 # include <stdlib.h>
64 # endif
65 #endif
66 #ifdef HAVE_SYS_SOCKET_H
67 # include <sys/socket.h>
68 #endif
69 ])
70 AC_CHECK_HEADERS([malloc.h])
71 AC_CHECK_HEADERS([netdb.h])
72 AC_CHECK_HEADERS([netinet/in.h], [], [], [dnl
73 #include <stdio.h>
74 #ifdef STDC_HEADERS
75 # include <stdlib.h>
76 # include <stddef.h>
77 #else
78 # ifdef HAVE_STDLIB_H
79 # include <stdlib.h>
80 # endif
81 #endif
82 #ifdef HAVE_SYS_SOCKET_H
83 # include <sys/socket.h>
84 #endif
85 ])
86 AC_CHECK_HEADERS([netinet/tcp.h], [], [], [dnl
87 #include <stdio.h>
88 #ifdef STDC_HEADERS
89 # include <stdlib.h>
90 # include <stddef.h>
91 #else
92 # ifdef HAVE_STDLIB_H
93 # include <stdlib.h>
94 # endif
95 #endif
96 #ifdef HAVE_SYS_SOCKET_H
97 # include <sys/socket.h>
98 #endif
99 ])
100 AC_CHECK_HEADERS([pthread.h])
101 AC_CHECK_HEADERS([strings.h])
102 AC_CHECK_HEADERS([sys/ioctl.h])
103 AC_CHECK_HEADERS([sys/param.h])
104 AC_CHECK_HEADERS([sys/poll.h])
105 AC_CHECK_HEADERS([sys/select.h])
106 AC_CHECK_HEADERS([sys/stat.h])
107 AC_CHECK_HEADERS([sys/time.h])
108 AC_CHECK_HEADERS([sys/types.h])
109 AC_CHECK_HEADERS([unistd.h])
110 AC_CHECK_HEADERS([net/if.h], [], [], [dnl
111 #include <stdio.h>
112 #ifdef STDC_HEADERS
113 # include <stdlib.h>
114 # include <stddef.h>
115 #else
116 # ifdef HAVE_STDLIB_H
117 # include <stdlib.h>
118 # endif
119 #endif
120 #ifdef HAVE_SYS_SOCKET_H
121 # include <sys/socket.h>
122 #endif
123 ])
124
125 AC_HEADER_ASSERT
126 AC_HEADER_STDBOOL
127 AC_HEADER_TIME
128
129 AC_C_BIGENDIAN
130
131 AC_CHECK_FUNCS([strndup])
132 AC_CHECK_FUNCS([strnlen])
133 AC_CHECK_FUNCS([gettimeofday])
134 AC_CHECK_FUNCS([usleep])
135 AC_CHECK_FUNCS([vasprintf])
136
137 build_bitbang=no
138 build_bitq=no
139 is_cygwin=no
140 is_mingw=no
141 is_win32=no
142 is_darwin=no
143
144 # guess-rev.sh only exists in the repository, not in the released archives
145 AC_MSG_CHECKING([whether to build a release])
146 if test -x $srcdir/guess-rev.sh ; then
147 build_release=no
148 else
149 build_release=yes
150 fi
151 AC_MSG_RESULT([$build_release])
152
153 AC_ARG_WITH(ftd2xx,
154 AS_HELP_STRING([--with-ftd2xx=<PATH>],[This option has been removed.]),
155 [
156 # Option Given.
157 cat << __EOF__
158
159 The option: --with-ftd2xx=<PATH> has been removed.
160 On Linux, the new option is:
161
162 --with-ftd2xx-linux-tardir=/path/to/files
163
164 Where <path> is the path the the directory where the "tar.gz" file
165 from FTDICHIP.COM was unpacked, for example:
166
167 --with-ftd2xx-linux-tardir=${HOME}/libftd2xx0.4.16
168
169 On Cygwin/MingW32, the new option is:
170
171 --with-ftd2xx-win32-zipdir=/path/to/files
172
173 Where <path> is the path to the directory where the "zip" file from
174 FTDICHIP.COM was unpacked, for example:
175
176 --with-ftd2xx-win32-zipdir=${HOME}/ftd2xx.cdm.files
177
178 __EOF__
179
180 AC_MSG_ERROR([Sorry Cannot continue])
181 ], [true])
182
183 #========================================
184 # FTD2XXX support comes in 4 forms.
185 # (1) win32 - via a zip file
186 # (2) linux - via a tar file
187 # (3) linux/cygwin/mingw - via libftdi
188 # (4) darwin - installed under /usr/local
189 #
190 # In case (1) and (2) we need to know where the package was unpacked.
191
192 AC_ARG_WITH(ftd2xx-win32-zipdir,
193 AS_HELP_STRING([--with-ftd2xx-win32-zipdir],[Where (CYGWIN/MINGW) the zip file from ftdichip.com was unpacked (default=search)]),
194 [
195 # option present
196 if test -d $with_ftd2xx_win32_zipdir
197 then
198 with_ftd2xx_win32_zipdir=`cd $with_ftd2xx_win32_zipdir && pwd`
199 AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_win32_zipdir])
200 else
201 AC_MSG_ERROR([Parameter to --with-ftd2xx-win32-zipdir is not a dir: $with_ftd2xx_win32_zipdir])
202 fi
203 ], [true])
204
205 AC_ARG_WITH(ftd2xx-linux-tardir,
206 AS_HELP_STRING([--with-ftd2xx-linux-tardir], [Where (Linux/Unix) the tar file from ftdichip.com was unpacked (default=search)]),
207 [
208 # Option present
209 if test $is_win32 = yes ; then
210 AC_MSG_ERROR([The option: --with-ftd2xx-linux-tardir is only usable on linux])
211 fi
212 if test -d $with_ftd2xx_linux_tardir
213 then
214 with_ftd2xx_linux_tardir=`cd $with_ftd2xx_linux_tardir && pwd`
215 AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_linux_tardir])
216 else
217 AC_MSG_ERROR([Parameter to --with-ftd2xx-linux-tardir is not a dir: $with_ftd2xx_linux_tardir])
218 fi
219 ], [true])
220
221 AC_ARG_WITH(ftd2xx-lib,
222 AS_HELP_STRING([--with-ftd2xx-lib],
223 [Use static or shared ftd2xx libs (default=static)]),
224 [
225 case "$withval" in
226 static)
227 with_ftd2xx_lib=$withval
228 ;;
229 shared)
230 with_ftd2xx_lib=$withval
231 ;;
232 *)
233 AC_MSG_ERROR([Option: --with-ftd2xx-lib=static or --with-ftd2xx-lib=shared not, $withval])
234 ;;
235 esac
236 ], [
237 # Default is static - it is simpler :-(
238 with_ftd2xx_lib=static
239 ])
240
241 AC_ARG_ENABLE([doxygen-html],
242 AS_HELP_STRING([--disable-doxygen-html],
243 [Disable building Doxygen manual as HTML.]),
244 [doxygen_as_html=$enableval], [doxygen_as_html=yes])
245 AC_SUBST([doxygen_as_html])
246 AC_MSG_CHECKING([whether to build Doxygen as HTML])
247 AC_MSG_RESULT([$doxygen_as_html])
248
249 AC_ARG_ENABLE([doxygen-pdf],
250 AS_HELP_STRING([--enable-doxygen-pdf],
251 [Enable building Doxygen manual as PDF.]),
252 [doxygen_as_pdf=$enableval], [doxygen_as_pdf=no])
253 AC_SUBST([doxygen_as_pdf])
254 AC_MSG_CHECKING([whether to build Doxygen as PDF])
255 AC_MSG_RESULT([$doxygen_as_pdf])
256
257 AC_ARG_ENABLE([gccwarnings],
258 AS_HELP_STRING([--disable-gccwarnings], [Disable compiler warnings]),
259 [gcc_warnings=$enableval], [gcc_warnings=yes])
260
261 AC_ARG_ENABLE([wextra],
262 AS_HELP_STRING([--disable-wextra], [Disable extra compiler warnings]),
263 [gcc_wextra=$enableval], [gcc_wextra=$gcc_warnings])
264
265 AC_ARG_ENABLE([werror],
266 AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
267 [gcc_werror=$enableval], [gcc_werror=$gcc_warnings])
268
269 # set default verbose options, overridden by following options
270 debug_jtag_io=no
271 debug_usb_io=no
272 debug_usb_comms=no
273
274 AC_ARG_ENABLE([verbose],
275 AS_HELP_STRING([--enable-verbose],
276 [Enable verbose JTAG I/O messages (for debugging).]),
277 [
278 debug_jtag_io=$enableval
279 debug_usb_io=$enableval
280 debug_usb_comms=$enableval
281 ], [])
282
283 AC_ARG_ENABLE([verbose_jtag_io],
284 AS_HELP_STRING([--enable-verbose-jtag-io],
285 [Enable verbose JTAG I/O messages (for debugging).]),
286 [debug_jtag_io=$enableval], [])
287
288 AC_ARG_ENABLE([verbose_usb_io],
289 AS_HELP_STRING([--enable-verbose-usb-io],
290 [Enable verbose USB I/O messages (for debugging)]),
291 [debug_usb_io=$enableval], [])
292
293 AC_ARG_ENABLE([verbose_usb_comms],
294 AS_HELP_STRING([--enable-verbose-usb-comms],
295 [Enable verbose USB communication messages (for debugging)]),
296 [debug_usb_comms=$enableval], [])
297
298 AC_MSG_CHECKING([whether to enable verbose JTAG I/O messages]);
299 AC_MSG_RESULT([$debug_jtag_io])
300 if test $debug_jtag_io = yes; then
301 AC_DEFINE([_DEBUG_JTAG_IO_],[1], [Print verbose JTAG I/O messages])
302 fi
303
304 AC_MSG_CHECKING([whether to enable verbose USB I/O messages]);
305 AC_MSG_RESULT([$debug_usb_io])
306 if test $debug_usb_io = yes; then
307 AC_DEFINE([_DEBUG_USB_IO_],[1], [Print verbose USB I/O messages])
308 fi
309
310 AC_MSG_CHECKING([whether to enable verbose USB communication messages]);
311 AC_MSG_RESULT([$debug_usb_comms])
312 if test $debug_usb_comms = yes; then
313 AC_DEFINE([_DEBUG_USB_COMMS_],[1], [Print verbose USB communication messages])
314 fi
315
316 debug_malloc=no
317 AC_ARG_ENABLE([malloc_logging],
318 AS_HELP_STRING([--enable-malloc-logging],
319 [Include free space in logging messages (requires malloc.h).]),
320 [debug_malloc=$enableval], [])
321
322 AC_MSG_CHECKING([whether to enable malloc free space logging]);
323 AC_MSG_RESULT([$debug_malloc])
324 if test $debug_malloc = yes; then
325 AC_DEFINE([_DEBUG_FREE_SPACE_],[1], [Include malloc free space in logging])
326 fi
327
328 AC_ARG_ENABLE([dummy],
329 AS_HELP_STRING([--enable-dummy], [Enable building the dummy port driver]),
330 [build_dummy=$enableval], [build_dummy=no])
331
332 AC_ARG_ENABLE([parport],
333 AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
334 [build_parport=$enableval], [build_parport=no])
335
336 AC_ARG_ENABLE([parport_ppdev],
337 AS_HELP_STRING([--disable-parport-ppdev],
338 [Disable use of ppdev (/dev/parportN) for parport (for x86 only)]),
339 [parport_use_ppdev=$enableval], [parport_use_ppdev=yes])
340
341 AC_ARG_ENABLE([parport_giveio],
342 AS_HELP_STRING([--enable-parport-giveio],
343 [Enable use of giveio for parport (for CygWin only)]),
344 [parport_use_giveio=$enableval], [parport_use_giveio=])
345
346 AC_ARG_ENABLE([ft2232_libftdi],
347 AS_HELP_STRING([--enable-ft2232_libftdi], [Enable building support for FT2232 based devices using the libftdi driver, opensource alternate of FTD2XX]),
348 [build_ft2232_libftdi=$enableval], [build_ft2232_libftdi=no])
349
350 AC_ARG_ENABLE([ft2232_ftd2xx],
351 AS_HELP_STRING([--enable-ft2232_ftd2xx], [Enable building support for FT2232 based devices using the FTD2XX driver from ftdichip.com]),
352 [build_ft2232_ftd2xx=$enableval], [build_ft2232_ftd2xx=no])
353
354 AC_ARG_ENABLE([ftdi],
355 AS_HELP_STRING([--enable-ftdi], [Enable building support for the MPSSE mode of FTDI based devices, using libusb-1.0 in asynchronous mode]),
356 [build_ftdi=$enableval], [build_ftdi=no])
357
358 AC_ARG_ENABLE([jtag_vpi],
359 AS_HELP_STRING([--enable-jtag_vpi], [Enable building support for JTAG VPI]),
360 [build_jtag_vpi=$enableval], [build_jtag_vpi=no])
361
362 AC_ARG_ENABLE([usb_blaster_libftdi],
363 AS_HELP_STRING([--enable-usb_blaster_libftdi], [Enable building support for the Altera USB-Blaster using the libftdi driver, opensource alternate of FTD2XX]),
364 [build_usb_blaster_libftdi=$enableval], [build_usb_blaster_libftdi=no])
365
366 AC_ARG_ENABLE([usb_blaster_ftd2xx],
367 AS_HELP_STRING([--enable-usb_blaster_ftd2xx], [Enable building support for the Altera USB-Blaster using the FTD2XX driver from ftdichip.com]),
368 [build_usb_blaster_ftd2xx=$enableval], [build_usb_blaster_ftd2xx=no])
369
370 AC_ARG_ENABLE([amtjtagaccel],
371 AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
372 [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
373
374 AC_ARG_ENABLE([zy1000_master],
375 AS_HELP_STRING([--enable-zy1000-master], [Use ZY1000 JTAG master registers]),
376 [build_zy1000_master=$enableval], [build_zy1000_master=no])
377
378 AC_ARG_ENABLE([zy1000],
379 AS_HELP_STRING([--enable-zy1000], [Enable ZY1000 interface]),
380 [build_zy1000=$enableval], [build_zy1000=no])
381
382 AC_ARG_ENABLE([ioutil],
383 AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]),
384 [build_ioutil=$enableval], [build_ioutil=no])
385
386 case "${host_cpu}" in
387 arm*)
388 AC_ARG_ENABLE([ep93xx],
389 AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]),
390 [build_ep93xx=$enableval], [build_ep93xx=no])
391
392 AC_ARG_ENABLE([at91rm9200],
393 AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
394 [build_at91rm9200=$enableval], [build_at91rm9200=no])
395
396 AC_ARG_ENABLE([bcm2835gpio],
397 AS_HELP_STRING([--enable-bcm2835gpio], [Enable building support for bitbanging on BCM2835 (as found in Raspberry Pi)]),
398 [build_bcm2835gpio=$enableval], [build_bcm2835gpio=no])
399 ;;
400
401 *)
402 build_ep93xx=no
403 build_at91rm9200=no
404 build_bcm2835gpio=no
405 ;;
406 esac
407
408 AC_ARG_ENABLE([gw16012],
409 AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
410 [build_gw16012=$enableval], [build_gw16012=no])
411
412 AC_ARG_ENABLE([presto_libftdi],
413 AS_HELP_STRING([--enable-presto_libftdi], [Enable building support for ASIX Presto Programmer using the libftdi driver]),
414 [build_presto_libftdi=$enableval], [build_presto_libftdi=no])
415
416 AC_ARG_ENABLE([presto_ftd2xx],
417 AS_HELP_STRING([--enable-presto_ftd2xx], [Enable building support for ASIX Presto Programmer using the FTD2XX driver]),
418 [build_presto_ftd2xx=$enableval], [build_presto_ftd2xx=no])
419
420 AC_ARG_ENABLE([usbprog],
421 AS_HELP_STRING([--enable-usbprog], [Enable building support for the usbprog JTAG Programmer]),
422 [build_usbprog=$enableval], [build_usbprog=no])
423
424 AC_ARG_ENABLE([openjtag_ftd2xx],
425 AS_HELP_STRING([--enable-openjtag_ftd2xx], [Enable building support for the OpenJTAG Programmer with ftd2xx driver]),
426 [build_openjtag_ftd2xx=$enableval], [build_openjtag_ftd2xx=no])
427
428 AC_ARG_ENABLE([openjtag_ftdi],
429 AS_HELP_STRING([--enable-openjtag_ftdi], [Enable building support for the OpenJTAG Programmer with ftdi driver]),
430 [build_openjtag_ftdi=$enableval], [build_openjtag_ftdi=no])
431
432 AC_ARG_ENABLE([oocd_trace],
433 AS_HELP_STRING([--enable-oocd_trace],
434 [Enable building support for some prototype OpenOCD+trace ETM capture hardware]),
435 [build_oocd_trace=$enableval], [build_oocd_trace=no])
436
437 AC_ARG_ENABLE([jlink],
438 AS_HELP_STRING([--enable-jlink], [Enable building support for the Segger J-Link JTAG Programmer]),
439 [build_jlink=$enableval], [build_jlink=no])
440
441 AC_ARG_ENABLE([vsllink],
442 AS_HELP_STRING([--enable-vsllink], [Enable building support for the Versaloon-Link JTAG Programmer]),
443 [build_vsllink=$enableval], [build_vsllink=no])
444
445 AC_ARG_ENABLE([rlink],
446 AS_HELP_STRING([--enable-rlink], [Enable building support for the Raisonance RLink JTAG Programmer]),
447 [build_rlink=$enableval], [build_rlink=no])
448
449 AC_ARG_ENABLE([ulink],
450 AS_HELP_STRING([--enable-ulink], [Enable building support for the Keil ULINK JTAG Programmer]),
451 [build_ulink=$enableval], [build_ulink=no])
452
453 AC_ARG_ENABLE([arm-jtag-ew],
454 AS_HELP_STRING([--enable-arm-jtag-ew], [Enable building support for the Olimex ARM-JTAG-EW Programmer]),
455 [build_armjtagew=$enableval], [build_armjtagew=no])
456
457 AC_ARG_ENABLE([buspirate],
458 AS_HELP_STRING([--enable-buspirate], [Enable building support for the Buspirate]),
459 [build_buspirate=$enableval], [build_buspirate=no])
460
461 AC_ARG_ENABLE([stlink],
462 AS_HELP_STRING([--enable-stlink], [Enable building support for the ST-Link JTAG Programmer]),
463 [build_hladapter_stlink=$enableval], [build_hladapter_stlink=no])
464
465 AC_ARG_ENABLE([ti-icdi],
466 AS_HELP_STRING([--enable-ti-icdi], [Enable building support for the TI ICDI JTAG Programmer]),
467 [build_hladapter_icdi=$enableval], [build_hladapter_icdi=no])
468
469 AC_ARG_ENABLE([osbdm],
470 AS_HELP_STRING([--enable-osbdm], [Enable building support for the OSBDM (JTAG only) Programmer]),
471 [build_osbdm=$enableval], [build_osbdm=no])
472
473 AC_ARG_ENABLE([opendous],
474 AS_HELP_STRING([--enable-opendous], [Enable building support for the estick/opendous JTAG Programmer]),
475 [build_opendous=$enableval], [build_opendous=no])
476
477 AC_ARG_ENABLE([sysfsgpio],
478 AS_HELP_STRING([--enable-sysfsgpio], [Enable building support for programming driven via sysfs gpios.]),
479 [build_sysfsgpio=$enableval], [build_sysfsgpio=no])
480
481 AC_ARG_ENABLE([minidriver_dummy],
482 AS_HELP_STRING([--enable-minidriver-dummy], [Enable the dummy minidriver.]),
483 [build_minidriver_dummy=$enableval], [build_minidriver_dummy=no])
484
485 AC_ARG_ENABLE([internal-jimtcl],
486 AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
487 [use_internal_jimtcl=$enableval], [use_internal_jimtcl=yes])
488
489 AC_ARG_ENABLE([aice],
490 AS_HELP_STRING([--enable-aice], [Enable building support for the Andes JTAG Programmer]),
491 [build_aice=$enableval], [build_aice=no])
492
493 build_minidriver=no
494 AC_MSG_CHECKING([whether to enable ZY1000 minidriver])
495 if test $build_zy1000 = yes; then
496 if test $build_minidriver = yes; then
497 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
498 fi
499 AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
500 [Define to 1 if you have the <jtag_minidriver.h> header file.])
501 build_minidriver=yes
502 fi
503 AC_MSG_RESULT([$build_zy1000])
504
505 AC_ARG_ENABLE([remote-bitbang],
506 AS_HELP_STRING([--enable-remote-bitbang], [Enable building support for the Remote Bitbang jtag driver]),
507 [build_remote_bitbang=$enableval], [build_remote_bitbang=no])
508
509 AC_MSG_CHECKING([whether to enable dummy minidriver])
510 if test $build_minidriver_dummy = yes; then
511 if test $build_minidriver = yes; then
512 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
513 fi
514 build_minidriver=yes
515 AC_DEFINE([BUILD_MINIDRIVER_DUMMY], [1], [Use the dummy minidriver.])
516 AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
517 [Define to 1 if you have the <jtag_minidriver.h> header file.])
518 fi
519 AC_MSG_RESULT([$build_minidriver_dummy])
520
521 AC_MSG_CHECKING([whether standard drivers can be built])
522 if test "$build_minidriver" = yes; then
523 AC_MSG_RESULT([no])
524 AC_MSG_WARN([Using the minidriver disables all other drivers.])
525 sleep 2
526 else
527 AC_MSG_RESULT([yes])
528 fi
529
530 case "${host_cpu}" in
531 i?86|x86*)
532 ;;
533 *)
534 if test x$parport_use_ppdev = xno; then
535 AC_MSG_WARN([--disable-parport-ppdev is not supported by the host CPU])
536 fi
537 parport_use_ppdev=yes
538 ;;
539 esac
540
541 case $host in
542 *-cygwin*)
543 is_win32=yes
544 parport_use_ppdev=no
545
546 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[return __MINGW32__;]])],
547 [is_mingw=yes],[is_mingw=no])
548 if test $is_mingw = yes; then
549 AC_DEFINE([IS_MINGW], [1], [1 if building for MinGW.])
550 if test x$parport_use_giveio = xno; then
551 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
552 fi
553 parport_use_giveio=yes
554 is_cygwin=no
555 else
556 is_cygwin=yes
557 AC_DEFINE([IS_CYGWIN], [1], [1 if building for Cygwin.])
558 # sys/io.h needed under cygwin for parport access
559 if test $build_parport = yes; then
560 AC_CHECK_HEADERS([sys/io.h],[],AC_MSG_ERROR([Please install the cygwin ioperm package]))
561 fi
562 fi
563
564 AC_DEFINE([IS_WIN32], [1], [1 if building for Win32.])
565 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
566 ;;
567 *-mingw*)
568 is_mingw=yes
569 is_win32=yes
570 parport_use_ppdev=no
571
572 if test x$parport_use_giveio = xno; then
573 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
574 fi
575 parport_use_giveio=yes
576
577 if test x$build_buspirate = xyes; then
578 AC_MSG_ERROR([buspirate currently not supported by MinGW32 hosts])
579 fi
580
581 CFLAGS="$CFLAGS -D__USE_MINGW_ANSI_STDIO"
582
583 AC_DEFINE([IS_MINGW], [1], [1 if building for MinGW.])
584 AC_DEFINE([IS_WIN32], [1], [1 if building for Win32.])
585 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
586 ;;
587 *darwin*)
588 is_darwin=yes
589
590 if test x$parport_use_giveio = xyes; then
591 AC_MSG_WARN([--enable-parport-giveio cannot be used by Darwin hosts])
592 fi
593 parport_use_giveio=no
594
595 AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
596 AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
597 AC_DEFINE([IS_DARWIN], [1], [1 if building for Darwin.])
598 ;;
599 *)
600 if test x$parport_use_giveio = xyes; then
601 AC_MSG_WARN([--enable-parport-giveio cannot be used by ]$host[ hosts])
602 fi
603 parport_use_giveio=no
604 AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
605 AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
606 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
607 ;;
608 esac
609
610 if test $build_parport = yes; then
611 build_bitbang=yes
612 AC_DEFINE([BUILD_PARPORT], [1], [1 if you want parport.])
613 else
614 AC_DEFINE([BUILD_PARPORT], [0], [0 if you don't want parport.])
615 fi
616
617 if test $build_dummy = yes; then
618 build_bitbang=yes
619 AC_DEFINE([BUILD_DUMMY], [1], [1 if you want dummy driver.])
620 else
621 AC_DEFINE([BUILD_DUMMY], [0], [0 if you don't want dummy driver.])
622 fi
623
624 if test $build_ep93xx = yes; then
625 build_bitbang=yes
626 AC_DEFINE([BUILD_EP93XX], [1], [1 if you want ep93xx.])
627 else
628 AC_DEFINE([BUILD_EP93XX], [0], [0 if you don't want ep93xx.])
629 fi
630
631 if test $build_zy1000 = yes; then
632 AC_DEFINE([BUILD_ZY1000], [1], [1 if you want ZY1000.])
633 else
634 AC_DEFINE([BUILD_ZY1000], [0], [0 if you don't want ZY1000.])
635 fi
636
637 if test $build_zy1000_master = yes; then
638 AC_DEFINE([BUILD_ZY1000_MASTER], [1], [1 if you want ZY1000 JTAG master registers.])
639 else
640 AC_DEFINE([BUILD_ZY1000_MASTER], [0], [0 if you don't want ZY1000 JTAG master registers.])
641 fi
642
643 if test $build_at91rm9200 = yes; then
644 build_bitbang=yes
645 AC_DEFINE([BUILD_AT91RM9200], [1], [1 if you want at91rm9200.])
646 else
647 AC_DEFINE([BUILD_AT91RM9200], [0], [0 if you don't want at91rm9200.])
648 fi
649
650 if test $build_bcm2835gpio = yes; then
651 build_bitbang=yes
652 AC_DEFINE([BUILD_BCM2835GPIO], [1], [1 if you want bcm2835gpio.])
653 else
654 AC_DEFINE([BUILD_BCM2835GPIO], [0], [0 if you don't want bcm2835gpio.])
655 fi
656
657 if test x$parport_use_ppdev = xyes; then
658 AC_DEFINE([PARPORT_USE_PPDEV], [1], [1 if you want parport to use ppdev.])
659 else
660 AC_DEFINE([PARPORT_USE_PPDEV], [0], [0 if you don't want parport to use ppdev.])
661 fi
662
663 if test x$parport_use_giveio = xyes; then
664 AC_DEFINE([PARPORT_USE_GIVEIO], [1], [1 if you want parport to use giveio.])
665 else
666 AC_DEFINE([PARPORT_USE_GIVEIO], [0], [0 if you don't want parport to use giveio.])
667 fi
668
669 if test $build_bitbang = yes; then
670 AC_DEFINE([BUILD_BITBANG], [1], [1 if you want a bitbang interface.])
671 else
672 AC_DEFINE([BUILD_BITBANG], [0], [0 if you don't want a bitbang interface.])
673 fi
674
675 if test $build_ft2232_libftdi = yes; then
676 AC_DEFINE([BUILD_FT2232_LIBFTDI], [1], [1 if you want libftdi ft2232.])
677 else
678 AC_DEFINE([BUILD_FT2232_LIBFTDI], [0], [0 if you don't want libftdi ft2232.])
679 fi
680
681 if test $build_ft2232_ftd2xx = yes; then
682 AC_DEFINE([BUILD_FT2232_FTD2XX], [1], [1 if you want ftd2xx ft2232.])
683 else
684 AC_DEFINE([BUILD_FT2232_FTD2XX], [0], [0 if you don't want ftd2xx ft2232.])
685 fi
686
687 if test $build_ftdi = yes; then
688 AC_DEFINE([BUILD_FTDI], [1], [1 if you want ftdi.])
689 else
690 AC_DEFINE([BUILD_FTDI], [0], [0 if you don't want ftdi.])
691 fi
692
693 if test $build_usb_blaster_libftdi = yes; then
694 AC_DEFINE([BUILD_USB_BLASTER_LIBFTDI], [1], [1 if you want libftdi usb_blaster.])
695 else
696 AC_DEFINE([BUILD_USB_BLASTER_LIBFTDI], [0], [0 if you don't want libftdi usb_blaster.])
697 fi
698
699 if test $build_jtag_vpi = yes; then
700 AC_DEFINE([BUILD_JTAG_VPI], [1], [1 if you want JTAG VPI.])
701 else
702 AC_DEFINE([BUILD_JTAG_VPI], [0], [0 if you don't want JTAG VPI.])
703 fi
704
705 if test $build_usb_blaster_ftd2xx = yes; then
706 AC_DEFINE([BUILD_USB_BLASTER_FTD2XX], [1], [1 if you want ftd2xx usb_blaster.])
707 else
708 AC_DEFINE([BUILD_USB_BLASTER_FTD2XX], [0], [0 if you don't want ftd2xx usb_blaster.])
709 fi
710
711 if test $build_amtjtagaccel = yes; then
712 AC_DEFINE([BUILD_AMTJTAGACCEL], [1], [1 if you want the Amontec JTAG-Accelerator driver.])
713 else
714 AC_DEFINE([BUILD_AMTJTAGACCEL], [0], [0 if you don't want the Amontec JTAG-Accelerator driver.])
715 fi
716
717 if test $build_gw16012 = yes; then
718 AC_DEFINE([BUILD_GW16012], [1], [1 if you want the Gateworks GW16012 driver.])
719 else
720 AC_DEFINE([BUILD_GW16012], [0], [0 if you don't want the Gateworks GW16012 driver.])
721 fi
722
723 if test $build_presto_libftdi = yes; then
724 build_bitq=yes
725 AC_DEFINE([BUILD_PRESTO_LIBFTDI], [1], [1 if you want the ASIX PRESTO driver using libftdi.])
726 else
727 AC_DEFINE([BUILD_PRESTO_LIBFTDI], [0], [0 if you don't want the ASIX PRESTO driver using libftdi.])
728 fi
729
730 if test $build_presto_ftd2xx = yes; then
731 build_bitq=yes
732 AC_DEFINE([BUILD_PRESTO_FTD2XX], [1], [1 if you want the ASIX PRESTO driver using FTD2XX.])
733 else
734 AC_DEFINE([BUILD_PRESTO_FTD2XX], [0], [0 if you don't want the ASIX PRESTO driver using FTD2XX.])
735 fi
736
737 if test $build_bitq = yes; then
738 AC_DEFINE([BUILD_BITQ], [1], [1 if you want a bitq interface.])
739 else
740 AC_DEFINE([BUILD_BITQ], [0], [0 if you don't want a bitq interface.])
741 fi
742
743 if test $build_usbprog = yes; then
744 AC_DEFINE([BUILD_USBPROG], [1], [1 if you want the usbprog JTAG driver.])
745 else
746 AC_DEFINE([BUILD_USBPROG], [0], [0 if you don't want the usbprog JTAG driver.])
747 fi
748
749 AC_DEFINE([BUILD_OPENJTAG], [0], [0 if you don't want the OpenJTAG driver.])
750 AC_DEFINE([BUILD_OPENJTAG_FTD2XX], [0], [0 if you don't want the OpenJTAG driver with FTD2XX driver.])
751 AC_DEFINE([BUILD_OPENJTAG_LIBFTDI], [0], [0 if you don't want to build OpenJTAG driver with libftdi.])
752
753 if test $build_openjtag_ftd2xx = yes; then
754 AC_DEFINE([BUILD_OPENJTAG], [1], [1 if you want the OpenJTAG driver.])
755 AC_DEFINE([BUILD_OPENJTAG_FTD2XX], [1], [1 if you want the OpenJTAG driver with FTD2XX driver.])
756 fi
757 if test $build_openjtag_ftdi = yes; then
758 AC_DEFINE([BUILD_OPENJTAG], [1], [1 if you want the OpenJTAG drvier.])
759 AC_DEFINE([BUILD_OPENJTAG_LIBFTDI], [1], [1 if you want to build OpenJTAG with FTDI driver.])
760 fi
761
762 if test $build_oocd_trace = yes; then
763 AC_DEFINE([BUILD_OOCD_TRACE], [1], [1 if you want the OpenOCD+trace ETM capture driver.])
764 else
765 AC_DEFINE([BUILD_OOCD_TRACE], [0], [0 if you don't want the OpenOCD+trace ETM capture driver.])
766 fi
767
768 if test $build_jlink = yes; then
769 AC_DEFINE([BUILD_JLINK], [1], [1 if you want the J-Link JTAG driver.])
770 else
771 AC_DEFINE([BUILD_JLINK], [0], [0 if you don't want the J-Link JTAG driver.])
772 fi
773
774 if test $build_aice = yes; then
775 AC_DEFINE([BUILD_AICE], [1], [1 if you want the AICE JTAG driver.])
776 else
777 AC_DEFINE([BUILD_AICE], [0], [0 if you don't want the AICE JTAG driver.])
778 fi
779
780 if test $build_vsllink = yes; then
781 AC_DEFINE([BUILD_VSLLINK], [1], [1 if you want the Versaloon-Link JTAG driver.])
782 else
783 AC_DEFINE([BUILD_VSLLINK], [0], [0 if you don't want the Versaloon-Link JTAG driver.])
784 fi
785
786 if test $build_rlink = yes; then
787 AC_DEFINE([BUILD_RLINK], [1], [1 if you want the RLink JTAG driver.])
788 else
789 AC_DEFINE([BUILD_RLINK], [0], [0 if you don't want the RLink JTAG driver.])
790 fi
791
792 if test $build_ulink = yes; then
793 AC_DEFINE([BUILD_ULINK], [1], [1 if you want the ULINK JTAG driver.])
794 else
795 AC_DEFINE([BUILD_ULINK], [0], [0 if you don't want the ULINK JTAG driver.])
796 fi
797
798 if test $build_armjtagew = yes; then
799 AC_DEFINE([BUILD_ARMJTAGEW], [1], [1 if you want the ARM-JTAG-EW JTAG driver.])
800 else
801 AC_DEFINE([BUILD_ARMJTAGEW], [0], [0 if you don't want the ARM-JTAG-EW JTAG driver.])
802 fi
803
804 if test $build_buspirate = yes; then
805 AC_DEFINE([BUILD_BUSPIRATE], [1], [1 if you want the Buspirate JTAG driver.])
806 else
807 AC_DEFINE([BUILD_BUSPIRATE], [0], [0 if you don't want the Buspirate JTAG driver.])
808 fi
809
810 if test $build_hladapter_stlink = yes -o $build_hladapter_icdi = yes; then
811 AC_DEFINE([BUILD_HLADAPTER], [1], [1 if you want the High Level JTAG driver.])
812 else
813 AC_DEFINE([BUILD_HLADAPTER], [0], [0 if you don't want the High Level JTAG driver.])
814 fi
815
816 if test $build_osbdm = yes; then
817 AC_DEFINE([BUILD_OSBDM], [1], [1 if you want the OSBDM driver.])
818 else
819 AC_DEFINE([BUILD_OSBDM], [0], [0 if you don't want the OSBDM driver.])
820 fi
821
822 if test $build_opendous = yes; then
823 AC_DEFINE([BUILD_OPENDOUS], [1], [1 if you want the estick/opendous JTAG driver.])
824 else
825 AC_DEFINE([BUILD_OPENDOUS], [0], [0 if you don't want the estick/opendous JTAG driver.])
826 fi
827
828 if test "$use_internal_jimtcl" = yes; then
829 if test -f "$srcdir/jimtcl/configure.ac"; then
830 AX_CONFIG_SUBDIR_OPTION([jimtcl], [--disable-install-jim])
831 else
832 AC_MSG_ERROR([jimtcl not found, run git submodule init and git submodule update.])
833 fi
834 fi
835
836 if test $build_remote_bitbang = yes; then
837 build_bitbang=yes
838 AC_DEFINE([BUILD_REMOTE_BITBANG], [1], [1 if you want the Remote Bitbang JTAG driver.])
839 else
840 AC_DEFINE([BUILD_REMOTE_BITBANG], [0], [0 if you don't want the Remote Bitbang JTAG driver.])
841 fi
842
843 if test $build_sysfsgpio = yes; then
844 build_bitbang=yes
845 AC_DEFINE([BUILD_SYSFSGPIO], [1], [1 if you want the SysfsGPIO driver.])
846 else
847 AC_DEFINE([BUILD_SYSFSGPIO], [0], [0 if you don't want SysfsGPIO driver.])
848 fi
849 #-- Deal with MingW/Cygwin FTD2XX issues
850
851 if test $is_win32 = yes; then
852 if test "${with_ftd2xx_linux_tardir+set}" = set
853 then
854 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
855 fi
856
857 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes -o $build_openjtag_ftd2xx = yes; then
858 AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
859
860 # if we are given a zipdir...
861 if test "${with_ftd2xx_win32_zipdir+set}" = set
862 then
863 # Set the CFLAGS for "ftd2xx.h"
864 f=$with_ftd2xx_win32_zipdir/ftd2xx.h
865 if test ! -f $f ; then
866 AC_MSG_ERROR([File: $f cannot be found])
867 fi
868 CFLAGS="$CFLAGS -I$with_ftd2xx_win32_zipdir"
869
870 # And calculate the LDFLAGS for the machine
871 case "$host_cpu" in
872 i?86|x86_32)
873 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/i386"
874 LIBS="$LIBS -lftd2xx"
875 f=$with_ftd2xx_win32_zipdir/i386/ftd2xx.lib
876 ;;
877 amd64|x86_64)
878 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/amd64"
879 LIBS="$LIBS -lftd2xx"
880 f=$with_ftd2xx_win32_zipdir/amd64/ftd2xx.lib
881 ;;
882 *)
883 AC_MSG_ERROR([Unknown Win32 host cpu: $host_cpu])
884 ;;
885 esac
886 if test ! -f $f ; then
887 AC_MSG_ERROR([Library: $f not found])
888 fi
889 else
890 LIBS="$LIBS -lftd2xx"
891 AC_MSG_WARN([ASSUMPTION: The (win32) FTDICHIP.COM files: ftd2xx.h and ftd2xx.lib are in a proper place])
892 fi
893 fi
894 fi # win32
895
896 if test $is_darwin = yes ; then
897 if test "${with_ftd2xx_win32_zipdir+set}" = set
898 then
899 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
900 fi
901 if test "${with_ftd2xx_linux_tardir+set}" = set
902 then
903 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
904 fi
905
906 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
907 AC_MSG_CHECKING([for libftd2xx.a (darwin)])
908
909 if test ! -f /usr/local/include/ftd2xx.h ; then
910 AC_MSG_ERROR([ftd2xx library from FTDICHIP.com seems to be missing, cannot find: /usr/local/include/ftd2xx.h])
911 fi
912
913 CFLAGS="$CFLAGS -I/usr/local/include"
914 LDFLAGS="$LDFLAGS -L/usr/local/lib"
915 LIBS="$LIBS -lftd2xx"
916 AC_MSG_RESULT([-L/usr/local/lib -lftd2xx])
917 fi
918 fi # darwin
919
920 if test $is_win32 = no && test $is_darwin = no ; then
921
922 if test "${with_ftd2xx_win32_zipdir+set}" = set
923 then
924 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
925 fi
926
927 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes -o $build_openjtag_ftd2xx = yes; then
928 # Must be linux
929 if test $host_os != linux-gnu && test $host_os != linux ; then
930 AC_MSG_ERROR([The (linux) ftd2xx library from FTDICHIP.com is linux only. Try --enable-ft2232-libftdi instead])
931 fi
932 # Are we given a TAR directory?
933 if test "${with_ftd2xx_linux_tardir+set}" = set
934 then
935 AC_MSG_CHECKING([uninstalled ftd2xx distribution])
936 # The .H file is simple..
937 FTD2XX_H=$with_ftd2xx_linux_tardir/ftd2xx.h
938 if test ! -f "${FTD2XX_H}"; then
939 AC_MSG_ERROR([Option: --with-ftd2xx-linux-tardir appears wrong, cannot find: ${FTD2XX_H}])
940 fi
941 CFLAGS="$CFLAGS -I$with_ftd2xx_linux_tardir"
942 if test $with_ftd2xx_lib = shared; then
943 FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir"
944 FTD2XX_LIB="-lftd2xx"
945 else
946 # Test #1 - v1.0.x
947 case "$host_cpu" in
948 i?86|x86_32)
949 dir=build/i386;;
950 amd64|x86_64)
951 dir=build/x86_64;;
952 *)
953 dir=none;;
954 esac
955 if test -f "$with_ftd2xx_linux_tardir/$dir/libftd2xx.a"; then
956 FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir/$dir"
957 # Also needs -lrt
958 FTD2XX_LIB="-lftd2xx -lrt"
959 else
960 # Test Number2.
961 # Grr.. perhaps it exists as a version number?
962 FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a.*.*.*"
963 count=`ls ${FTD2XX_LIB} | wc -l`
964 if test $count -gt 1 ; then
965 AC_MSG_ERROR([Multiple libftd2xx.a files found in: $with_ftd2xx_linux_tardir/static_lib sorry cannot handle this yet])
966 fi
967 if test $count -ne 1 ; then
968 AC_MSG_ERROR([Not found: $f, option: --with-ftd2xx-linux-tardir appears to be wrong])
969 fi
970 # Because the "-l" rules do not understand version numbers...
971 # we will just stuff the absolute path onto the LIBS variable
972 FTD2XX_LIB="`ls ${FTD2XX_LIB}` -lpthread"
973 FTD2XX_LDFLAGS=""
974 fi
975 fi
976 LDFLAGS="${LDFLAGS} ${FTD2XX_LDFLAGS}"
977 LIBS="${FTD2XX_LIB} ${LIBS}"
978 AC_MSG_RESULT([${FTD2XX_LDFLAGS} ${FTD2XX_LIB}])
979 else
980 AC_CHECK_HEADER([ftd2xx.h],[],[
981 AC_MSG_ERROR([You seem to be missing the FTD2xx driver header file.])
982 ])
983 AC_SEARCH_LIBS([FT_GetLibraryVersion],[ftd2xx],,[
984 AC_MSG_ERROR([You appear to be missing the FTD2xx driver library.])
985 ],[])
986 fi
987 fi
988 fi # linux
989
990 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
991
992 # Before we go any further - make sure we can *BUILD* and *RUN*
993 # a simple app with the "ftd2xx.lib" file - in what ever form we where given
994 # We should be able to compile, link and run this test program now
995 AC_MSG_CHECKING([whether ftd2xx library works])
996
997 #
998 # Save the LDFLAGS for later..
999 LDFLAGS_SAVE=$LDFLAGS
1000 CFLAGS_SAVE=$CFLAGS
1001 _LDFLAGS=`eval echo $LDFLAGS`
1002 _CFLAGS=`eval echo $CFLAGS`
1003 LDFLAGS=$_LDFLAGS
1004 CFLAGS=$_CFLAGS
1005
1006 AC_RUN_IFELSE([AC_LANG_PROGRAM([[
1007 #include "confdefs.h"
1008 #if IS_WIN32
1009 #include "windows.h"
1010 #endif
1011 #include <stdio.h>
1012 #include <ftd2xx.h>
1013 ]], [[
1014 DWORD x;
1015 FT_GetLibraryVersion( &x );
1016 ]])], [
1017 AC_MSG_RESULT([Success!])
1018 ], [
1019 AC_MSG_ERROR([Cannot build & run test program using ftd2xx.lib])
1020 ], [
1021 AC_MSG_RESULT([Skipping as we are cross-compiling])
1022 ])
1023
1024 AC_MSG_CHECKING([for ftd2xx highspeed device support])
1025 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1026 #include "confdefs.h"
1027 #if IS_WIN32
1028 #include "windows.h"
1029 #endif
1030 #include <stdio.h>
1031 #include <ftd2xx.h>
1032
1033 DWORD x = FT_DEVICE_4232H;
1034 ]], [])], [
1035 AC_DEFINE([BUILD_FT2232_HIGHSPEED], [1],
1036 [Support FT2232H/FT4232HS with FTD2XX or libftdi.])
1037 build_ft2232_highspeed=yes
1038 ], [
1039 build_ft2232_highspeed=no
1040 ])
1041 AC_MSG_RESULT([$build_ft2232_highspeed])
1042
1043 if test $build_ft2232_highspeed = no; then
1044 AC_MSG_WARN([You need a newer FTD2XX driver (version 2.04.16 or later).])
1045 fi
1046
1047 AC_MSG_CHECKING([for ftd2xx FT232H device support])
1048 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1049 #include "confdefs.h"
1050 #if IS_WIN32
1051 #include "windows.h"
1052 #endif
1053 #include <stdio.h>
1054 #include <ftd2xx.h>
1055
1056 DWORD x = FT_DEVICE_232H;
1057 ]], [])], [
1058 AC_DEFINE([HAS_ENUM_FT232H], [1],
1059 [Support FT232H with FTD2XX or libftdi.])
1060 has_enum_ft232h=yes
1061 ], [
1062 has_enum_ft232h=no
1063 ])
1064 AC_MSG_RESULT([$has_enum_ft232h])
1065
1066 if test $has_enum_ft232h = no; then
1067 AC_MSG_WARN([You need a newer FTD2XX driver (version 2.08.12 or later).])
1068 fi
1069
1070 LDFLAGS=$LDFLAGS_SAVE
1071 CFLAGS=$CFLAGS_SAVE
1072 fi
1073
1074 if test $build_ft2232_libftdi = yes -o $build_usb_blaster_libftdi = yes -o \
1075 $build_openjtag_ftdi = yes; then
1076 # We assume: the package is preinstalled in the proper place
1077 # these present as 2 libraries..
1078 LIBS="$LIBS -lftdi -lusb"
1079 #
1080 # Try to build a small program.
1081 AC_MSG_CHECKING([Build & Link with libftdi...])
1082
1083 LDFLAGS_SAVE=$LDFLAGS
1084 CFLAGS_SAVE=$CFLAGS
1085 _LDFLAGS=`eval echo $LDFLAGS`
1086 _CFLAGS=`eval echo $CFLAGS`
1087 LDFLAGS=$_LDFLAGS
1088 CFLAGS=$_CFLAGS
1089
1090 AC_RUN_IFELSE([AC_LANG_PROGRAM([[
1091 #include <stdio.h>
1092 #include <ftdi.h>
1093 ]], [[
1094 struct ftdi_context *p;
1095 p = ftdi_new();
1096 if( p != NULL ){
1097 return 0;
1098 } else {
1099 fprintf( stderr, "calling ftdi_new() failed\n");
1100 return 1;
1101 }
1102 ]])], [
1103 AC_MSG_RESULT([Success])
1104 ], [
1105 AC_MSG_ERROR([Cannot build & run test program using libftdi])
1106 ], [
1107 AC_MSG_RESULT([Skipping as we are cross-compiling, trying build only])
1108 AC_SEARCH_LIBS([ftdi_new], [], [], [AC_MSG_ERROR([Cannot link with libftdi])])
1109 ])
1110
1111 AC_MSG_CHECKING([for libftdi highspeed device support])
1112 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1113 #include <stdio.h>
1114 #include <ftdi.h>
1115 ]], [[
1116 enum ftdi_chip_type x = TYPE_2232H;
1117 ]])], [
1118 AC_DEFINE([BUILD_FT2232_HIGHSPEED], [1],
1119 [Support FT2232H/FT4232HS with FTD2XX or libftdi.])
1120 build_ft2232_highspeed=yes
1121 ], [
1122 build_ft2232_highspeed=no
1123 ])
1124 AC_MSG_RESULT([$build_ft2232_highspeed])
1125
1126 if test $build_ft2232_highspeed = no; then
1127 AC_MSG_WARN([You need a newer libftdi version (0.16 or later).])
1128 fi
1129
1130 AC_MSG_CHECKING([for libftdi FT232H device support])
1131 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1132 #include <stdio.h>
1133 #include <ftdi.h>
1134 ]], [[
1135 enum ftdi_chip_type x = TYPE_232H;
1136 ]])], [
1137 AC_DEFINE([HAS_ENUM_FT232H], [1],
1138 [Support FT232H with FTD2XX or libftdi.])
1139 has_enum_ft232h=yes
1140 ], [
1141 has_enum_ft232h=no
1142 ])
1143 AC_MSG_RESULT([$has_enum_ft232h])
1144
1145 if test $has_enum_ft232h = no; then
1146 AC_MSG_WARN([You need a newer libftdi version (0.20 or later).])
1147 fi
1148
1149 # Restore the 'unexpanded ldflags'
1150 LDFLAGS=$LDFLAGS_SAVE
1151 CFLAGS=$CFLAGS_SAVE
1152 fi
1153
1154 # check if some driver requires libusb-0.1
1155 need_usb0=no
1156 if test $build_vsllink = yes -o $build_usbprog = yes -o \
1157 $build_rlink = yes -o $build_armjtagew = yes; then
1158 need_usb0=yes
1159 fi
1160
1161 # check if some driver can work with either libusb version
1162 need_usb=no
1163 if test $build_jlink = yes -o $build_osbdm = yes -o $build_opendous = yes -o \
1164 $build_aice = yes; then
1165 need_usb=yes
1166 fi
1167
1168 # check if some driver requires libusb-1.x
1169 need_usb_ng=no
1170 if test $build_ftdi = yes -o $build_hladapter_icdi = yes -o \
1171 $build_hladapter_stlink = yes -o $build_ulink = yes; then
1172 need_usb_ng=yes
1173 fi
1174
1175 # check for libusb library if necessary
1176 use_libusb1=no
1177 if test $need_usb = yes -o $need_usb_ng = yes; then
1178 AC_CHECK_HEADER([libusb-1.0/libusb.h], [
1179 AC_DEFINE([HAVE_LIBUSB1], [1], [Define if you have libusb-1.x])
1180 use_libusb1=yes
1181 AC_SEARCH_LIBS([libusb_error_name], [usb-1.0],
1182 [AC_DEFINE([HAVE_LIBUSB_ERROR_NAME], [1], [Define if your libusb has libusb_error_name()])],
1183 [AC_MSG_WARN([libusb-1.x older than 1.0.9 detected, consider updating])])
1184 ], [
1185 if test $need_usb_ng = yes; then
1186 AC_MSG_ERROR([libusb-1.x is required for some driver(s) you've selected])
1187 else
1188 AC_MSG_WARN([Trying legacy libusb-0.1 as a fallback, consider installing libusb-1 instead])
1189 need_usb0=yes
1190 fi
1191 ])
1192 fi
1193
1194 use_libusb0=no
1195 if test $need_usb0 = yes; then
1196 AC_CHECK_HEADERS([usb.h], [
1197 use_libusb0=yes
1198 ], [
1199 AC_MSG_ERROR([libusb-0.1 is required to build some OpenOCD driver(s)])
1200 ])
1201 fi
1202
1203 AM_CONDITIONAL([RELEASE], [test $build_release = yes])
1204 AM_CONDITIONAL([PARPORT], [test $build_parport = yes])
1205 AM_CONDITIONAL([DUMMY], [test $build_dummy = yes])
1206 AM_CONDITIONAL([GIVEIO], [test x$parport_use_giveio = xyes])
1207 AM_CONDITIONAL([EP93XX], [test $build_ep93xx = yes])
1208 AM_CONDITIONAL([ZY1000], [test $build_zy1000 = yes])
1209 AM_CONDITIONAL([ZY1000_MASTER], [test $build_zy1000_master = yes])
1210 AM_CONDITIONAL([IOUTIL], [test $build_ioutil = yes])
1211 AM_CONDITIONAL([AT91RM9200], [test $build_at91rm9200 = yes])
1212 AM_CONDITIONAL([BCM2835GPIO], [test $build_bcm2835gpio = yes])
1213 AM_CONDITIONAL([BITBANG], [test $build_bitbang = yes])
1214 AM_CONDITIONAL([FT2232_LIBFTDI], [test $build_ft2232_libftdi = yes])
1215 AM_CONDITIONAL([FT2232_DRIVER], [test $build_ft2232_ftd2xx = yes -o $build_ft2232_libftdi = yes])
1216 AM_CONDITIONAL([FTDI_DRIVER], [test $build_ftdi = yes])
1217 AM_CONDITIONAL([USB_BLASTER_LIBFTDI], [test $build_usb_blaster_libftdi = yes])
1218 AM_CONDITIONAL([USB_BLASTER_FTD2XX], [test $build_usb_blaster_ftd2xx = yes])
1219 AM_CONDITIONAL([JTAG_VPI], [test $build_jtag_vpi = yes -o $build_jtag_vpi = yes])
1220 AM_CONDITIONAL([USB_BLASTER_DRIVER], [test $build_usb_blaster_ftd2xx = yes -o $build_usb_blaster_libftdi = yes])
1221 AM_CONDITIONAL([AMTJTAGACCEL], [test $build_amtjtagaccel = yes])
1222 AM_CONDITIONAL([GW16012], [test $build_gw16012 = yes])
1223 AM_CONDITIONAL([PRESTO_LIBFTDI], [test $build_presto_libftdi = yes])
1224 AM_CONDITIONAL([PRESTO_DRIVER], [test $build_presto_ftd2xx = yes -o $build_presto_libftdi = yes])
1225 AM_CONDITIONAL([USBPROG], [test $build_usbprog = yes])
1226 AM_CONDITIONAL([OPENJTAG], [test $build_openjtag_ftd2xx = yes -o $build_openjtag_ftdi = yes])
1227 AM_CONDITIONAL([OOCD_TRACE], [test $build_oocd_trace = yes])
1228 AM_CONDITIONAL([JLINK], [test $build_jlink = yes])
1229 AM_CONDITIONAL([AICE], [test $build_aice = yes])
1230 AM_CONDITIONAL([VSLLINK], [test $build_vsllink = yes])
1231 AM_CONDITIONAL([RLINK], [test $build_rlink = yes])
1232 AM_CONDITIONAL([ULINK], [test $build_ulink = yes])
1233 AM_CONDITIONAL([ARMJTAGEW], [test $build_armjtagew = yes])
1234 AM_CONDITIONAL([REMOTE_BITBANG], [test $build_remote_bitbang = yes])
1235 AM_CONDITIONAL([BUSPIRATE], [test $build_buspirate = yes])
1236 AM_CONDITIONAL([HLADAPTER], [test $build_hladapter_stlink = yes -o $build_hladapter_icdi = yes])
1237 AM_CONDITIONAL([OSBDM], [test $build_osbdm = yes])
1238 AM_CONDITIONAL([OPENDOUS], [test $build_opendous = yes])
1239 AM_CONDITIONAL([SYSFSGPIO], [test $build_sysfsgpio = yes])
1240 AM_CONDITIONAL([USE_LIBUSB0], [test $use_libusb0 = yes])
1241 AM_CONDITIONAL([USE_LIBUSB1], [test $use_libusb1 = yes])
1242 AM_CONDITIONAL([IS_CYGWIN], [test $is_cygwin = yes])
1243 AM_CONDITIONAL([IS_MINGW], [test $is_mingw = yes])
1244 AM_CONDITIONAL([IS_WIN32], [test $is_win32 = yes])
1245 AM_CONDITIONAL([IS_DARWIN], [test $is_darwin = yes])
1246 AM_CONDITIONAL([BITQ], [test $build_bitq = yes])
1247
1248 AM_CONDITIONAL([MINIDRIVER], [test $build_minidriver = yes])
1249 AM_CONDITIONAL([MINIDRIVER_DUMMY], [test $build_minidriver_dummy = yes])
1250
1251 AM_CONDITIONAL([INTERNAL_JIMTCL], [test $use_internal_jimtcl = yes])
1252
1253 # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h?
1254 AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
1255 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1256 #define _GNU_SOURCE
1257 #include <unistd.h>
1258 #include <stdlib.h>
1259 ]], [[char **ep = environ;]]
1260 )], [
1261 AC_MSG_RESULT([yes])
1262 has_environ=yes
1263 ], [
1264 AC_MSG_RESULT([no])
1265
1266 # Possibility #2: can environ be found in an available library?
1267 AC_MSG_CHECKING([for extern environ])
1268 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1269 extern char **environ;
1270 ]], [[char **ep = environ;]]
1271 )], [
1272 AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
1273 has_environ=yes
1274 ], [
1275 has_environ=no
1276 ])
1277 AC_MSG_RESULT([${has_environ}])
1278 ])
1279
1280 if test "${has_environ}" != "yes" ; then
1281 AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
1282 fi
1283
1284 AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
1285
1286 # set default gcc warnings
1287 GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security -Wshadow"
1288 if test "${gcc_wextra}" = yes; then
1289 GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
1290 GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
1291 GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
1292 GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
1293 fi
1294 if test "${gcc_werror}" = yes; then
1295 GCC_WARNINGS="${GCC_WARNINGS} -Werror"
1296 fi
1297
1298 # overide default gcc cflags
1299 if test $gcc_warnings = yes; then
1300 CFLAGS="$CFLAGS $GCC_WARNINGS"
1301 fi
1302
1303 # Setup for compiling build tools
1304 AC_MSG_CHECKING([for a C compiler for build tools])
1305 if test $cross_compiling = yes; then
1306 AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
1307 CFLAGS_FOR_BUILD="-g -O2 $GCC_WARNINGS"
1308 else
1309 CC_FOR_BUILD=$CC
1310 CFLAGS_FOR_BUILD=$CFLAGS
1311 fi
1312
1313 AC_MSG_RESULT([$CC_FOR_BUILD])
1314 AC_SUBST([CC_FOR_BUILD])
1315 AC_SUBST([CFLAGS_FOR_BUILD])
1316
1317 AC_MSG_CHECKING([for suffix of executable build tools])
1318 if test $cross_compiling = yes; then
1319 cat >conftest.c <<\_______EOF
1320 int main ()
1321 {
1322 exit (0);
1323 }
1324 _______EOF
1325 for i in .exe ""; do
1326 compile="$CC_FOR_BUILD conftest.c -o conftest$i"
1327 if AC_TRY_EVAL(compile); then
1328 if (./conftest) 2>&AC_FD_CC; then
1329 EXEEXT_FOR_BUILD=$i
1330 break
1331 fi
1332 fi
1333 done
1334 rm -f conftest*
1335 if test "${EXEEXT_FOR_BUILD+set}" != set; then
1336 AC_MSG_ERROR([Cannot determine suffix of executable build tools])
1337 fi
1338 else
1339 EXEEXT_FOR_BUILD=$EXEEXT
1340 fi
1341 AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
1342 AC_SUBST([EXEEXT_FOR_BUILD])
1343
1344 AC_CONFIG_FILES([
1345 Makefile
1346 src/Makefile
1347 src/helper/Makefile
1348 src/jtag/Makefile
1349 src/jtag/drivers/Makefile
1350 src/jtag/drivers/usb_blaster/Makefile
1351 src/jtag/hla/Makefile
1352 src/jtag/aice/Makefile
1353 src/transport/Makefile
1354 src/xsvf/Makefile
1355 src/svf/Makefile
1356 src/target/Makefile
1357 src/rtos/Makefile
1358 src/server/Makefile
1359 src/flash/Makefile
1360 src/flash/nor/Makefile
1361 src/flash/nand/Makefile
1362 src/pld/Makefile
1363 doc/Makefile
1364 ])
1365 AC_OUTPUT

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)