David Brownell <david-b@pacbell.net> Fix segv in jtag_examine_chain(): exit loop...
[openocd.git] / configure.in
1 AC_PREREQ(2.60)
2 AC_INIT([openocd], [0.3.0-in-development],
3 [OpenOCD Mailing List <openocd-development@lists.berlios.de>])
4 AC_CONFIG_SRCDIR([src/openocd.c])
5
6 AM_INIT_AUTOMAKE([-Wall -Wno-portability dist-bzip2 dist-zip])
7 AM_MAINTAINER_MODE
8
9 AM_CONFIG_HEADER(config.h)
10 AH_BOTTOM([
11 #include "system.h"
12 #include "replacements.h"
13 ])
14
15 AC_LANG_C
16 AC_PROG_CC
17 AC_PROG_CC_C99
18 AM_PROG_CC_C_O
19 AC_PROG_RANLIB
20
21 dnl disable checks for C++, Fortran and GNU Java Compiler
22 m4_defun([_LT_AC_LANG_CXX_CONFIG], [:])
23 m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
24 m4_defun([_LT_AC_LANG_GCJ_CONFIG], [:])
25 AC_DISABLE_SHARED
26 AC_PROG_LIBTOOL
27 AC_SUBST(LIBTOOL_DEPS)
28
29
30 dnl configure checks required for Jim files (these are obsolete w/ C99)
31 AC_C_CONST
32 AC_TYPE_LONG_LONG_INT
33
34
35 AC_SEARCH_LIBS([ioperm], [ioperm])
36 AC_SEARCH_LIBS([dlopen], [dl])
37
38 AC_CHECK_HEADERS(arpa/inet.h)
39 AC_CHECK_HEADERS(elf.h)
40 AC_CHECK_HEADERS(dirent.h)
41 AC_CHECK_HEADERS(fcntl.h)
42 AC_CHECK_HEADERS(ifaddrs.h)
43 AC_CHECK_HEADERS(malloc.h)
44 AC_CHECK_HEADERS(netdb.h)
45 AC_CHECK_HEADERS(netinet/in.h)
46 AC_CHECK_HEADERS(netinet/tcp.h)
47 AC_CHECK_HEADERS(pthread.h)
48 AC_CHECK_HEADERS(strings.h)
49 AC_CHECK_HEADERS(sys/ioctl.h)
50 AC_CHECK_HEADERS(sys/param.h)
51 AC_CHECK_HEADERS(sys/poll.h)
52 AC_CHECK_HEADERS(sys/select.h)
53 AC_CHECK_HEADERS(sys/socket.h)
54 AC_CHECK_HEADERS(sys/stat.h)
55 AC_CHECK_HEADERS(sys/time.h)
56 AC_CHECK_HEADERS(sys/types.h)
57 AC_CHECK_HEADERS(unistd.h)
58
59 AC_CHECK_HEADERS([net/if.h], [], [], [dnl
60 #include <stdio.h>
61 #ifdef STDC_HEADERS
62 # include <stdlib.h>
63 # include <stddef.h>
64 #else
65 # ifdef HAVE_STDLIB_H
66 # include <stdlib.h>
67 # endif
68 #endif
69 #ifdef HAVE_SYS_SOCKET_H
70 # include <sys/socket.h>
71 #endif
72 ])
73
74 AC_HEADER_ASSERT
75 AC_HEADER_STDBOOL
76 AC_HEADER_TIME
77
78 AC_C_BIGENDIAN
79
80 AC_CHECK_FUNCS(strndup)
81 AC_CHECK_FUNCS(strnlen)
82 AC_CHECK_FUNCS(gettimeofday)
83 AC_CHECK_FUNCS(usleep)
84 AC_CHECK_FUNCS(vasprintf)
85
86 build_bitbang=no
87 build_bitq=no
88 is_cygwin=no
89 is_mingw=no
90 is_win32=no
91 is_darwin=no
92
93 if test $cross_compiling = no; then
94 # guess-rev.sh only exists in the repository, not in the released archives
95 AC_CHECK_FILE("$srcdir/guess-rev.sh", has_guess_rev=yes, has_guess_rev=no)
96
97 AC_MSG_CHECKING([whether to build a release])
98 if test $has_guess_rev = no; then
99 build_release=yes
100 else
101 build_release=no
102 fi
103 AC_MSG_RESULT($build_release)
104 else
105 build_release=yes
106 fi
107
108 # We are not *ALWAYS* being installed in the standard place.
109 # We may be installed in a "tool-build" specific location.
110 # Normally with other packages - as part of a tool distro.
111 # Thus - we should search that 'libdir' also.
112 #
113 # And - if we are being installed there - the odds are
114 # The libraries unique to what we are are there too.
115 #
116
117 # Expand nd deal with NONE - just like configure will do later
118 OCDprefix=$prefix
119 OCDxprefix=$exec_prefix
120 test x"$OCDprefix" = xNONE && OCDprefix=$ac_default_prefix
121 # Let make expand exec_prefix.
122 test x"$OCDxprefix" = xNONE && OCDxprefix="$OCDprefix"
123
124 # what matters is the "exec-prefix"
125 if test "$OCDxprefix" != "$ac_default_prefix"
126 then
127 # We are installing in a non-standard place
128 # Nonstandard --prefix and/or --exec-prefix
129 # We have an override of some sort.
130 # use build specific install library dir
131
132 LDFLAGS="$LDFLAGS -L$OCDxprefix/lib"
133 # RPATH becomes an issue on Linux only
134 if test $host_os = linux-gnu || test $host_os = linux ; then
135 LDFLAGS="$LDFLAGS -Wl,-rpath,$OCDxprefix/lib"
136 fi
137 # The "INCDIR" is also usable
138 CFLAGS="$CFLAGS -I$includedir"
139 fi
140
141 AC_ARG_WITH(ftd2xx,
142 AS_HELP_STRING([--with-ftd2xx=<PATH>],[This option has been removed.]),
143 [
144 # Option Given.
145 cat << __EOF__
146
147 The option: --with-ftd2xx=<PATH> has been removed.
148 On Linux, the new option is:
149
150 --with-ftd2xx-linux-tardir=/path/to/files
151
152 Where <path> is the path the the directory where the "tar.gz" file
153 from FTDICHIP.COM was unpacked, for example:
154
155 --with-ftd2xx-linux-tardir=${HOME}/libftd2xx0.4.16
156
157 On Cygwin/MingW32, the new option is:
158
159 --with-ftd2xx-win32-zipdir=/path/to/files
160
161 Where <path> is the path to the directory where the "zip" file from
162 FTDICHIP.COM was unpacked, for example:
163
164 --with-ftd2xx-win32-zipdir=${HOME}/ftd2xx.cdm.files
165
166 __EOF__
167
168 AC_MSG_ERROR([Sorry Cannot continue])
169 ], [true])
170
171 #========================================
172 # FTD2XXX support comes in 4 forms.
173 # (1) win32 - via a zip file
174 # (2) linux - via a tar file
175 # (3) linux/cygwin/mingw - via libftdi
176 # (4) darwin - installed under /usr/local
177 #
178 # In case (1) and (2) we need to know where the package was unpacked.
179
180 AC_ARG_WITH(ftd2xx-win32-zipdir,
181 AS_HELP_STRING([--with-ftd2xx-win32-zipdir],[Where (CYGWIN/MINGW) the zip file from ftdichip.com was unpacked <default=search>]),
182 [
183 # option present
184 if test -d $with_ftd2xx_win32_zipdir
185 then
186 with_ftd2xx_win32_zipdir=`cd $with_ftd2xx_win32_zipdir && pwd`
187 AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_win32_zipdir])
188 else
189 AC_MSG_ERROR([Parameter to --with-ftd2xx-win32-zipdir is not a dir: $with_ftd2xx_win32_zipdir])
190 fi
191 ], [true])
192
193 AC_ARG_WITH(ftd2xx-linux-tardir,
194 AS_HELP_STRING([--with-ftd2xx-linux-tardir], [Where (Linux/Unix) the tar file from ftdichip.com was unpacked <default=search>]),
195 [
196 # Option present
197 if test $is_win32 = yes ; then
198 AC_MSG_ERROR([The option: --with-ftd2xx-linux-tardir is only usable on linux])
199 fi
200 if test -d $with_ftd2xx_linux_tardir
201 then
202 with_ftd2xx_linux_tardir=`cd $with_ftd2xx_linux_tardir && pwd`
203 AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_linux_tardir])
204 else
205 AC_MSG_ERROR([Parameter to --with-ftd2xx-linux-tardir is not a dir: $with_ftd2xx_linux_tardir])
206 fi
207 ], [true])
208
209 AC_ARG_WITH(ftd2xx-lib,
210 AS_HELP_STRING([--with-ftd2xx-lib],
211 [Use static or shared ftd2xx libs on default static]),
212 [
213 case "$withval" in
214 static)
215 with_ftd2xx_lib=$withval
216 ;;
217 shared)
218 with_ftd2xx_lib=$withval
219 ;;
220 *)
221 AC_MSG_ERROR([Option: --with-ftd2xx-lib=static or --with-ftd2xx-lib=shared not, $withval])
222 ;;
223 esac
224 ], [
225 # Default is static - it is simpler :-(
226 with_ftd2xx_lib=static
227 ])
228
229 AC_ARG_ENABLE(gccwarnings,
230 AS_HELP_STRING([--disable-gccwarnings], [Disable compiler warnings]),
231 [gcc_warnings=$enableval], [gcc_warnings=yes])
232
233 AC_ARG_ENABLE(wextra,
234 AS_HELP_STRING([--disable-wextra], [Disable extra compiler warnings]),
235 [gcc_wextra=$enableval], [gcc_wextra=$gcc_warnings])
236
237 AC_ARG_ENABLE(werror,
238 AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
239 [gcc_werror=$enableval], [gcc_werror=$gcc_warnings])
240
241 # set default verbose options, overridden by following options
242 debug_jtag_io=no
243 debug_usb_io=no
244 debug_usb_comms=no
245
246 AC_ARG_ENABLE(verbose,
247 AS_HELP_STRING([--enable-verbose],
248 [Enable verbose JTAG I/O messages (for debugging).]),
249 [
250 debug_jtag_io=$enableval
251 debug_usb_io=$enableval
252 debug_usb_comms=$enableval
253 ], [])
254
255 AC_ARG_ENABLE(verbose_jtag_io,
256 AS_HELP_STRING([--enable-verbose-jtag-io],
257 [Enable verbose JTAG I/O messages (for debugging).]),
258 [debug_jtag_io=$enableval], [])
259 AC_ARG_ENABLE(verbose_usb_io,
260 AS_HELP_STRING([--enable-verbose-usb-io],
261 [Enable verbose USB I/O messages (for debugging)]),
262 [debug_usb_io=$enableval], [])
263 AC_ARG_ENABLE(verbose_usb_comms,
264 AS_HELP_STRING([--enable-verbose-usb-comms],
265 [Enable verbose USB communication messages (for debugging)]),
266 [debug_usb_comms=$enableval], [])
267
268 AC_MSG_CHECKING([whether to enable verbose JTAG I/O messages]);
269 AC_MSG_RESULT($debug_jtag_io)
270 if test $debug_jtag_io = yes; then
271 AC_DEFINE([_DEBUG_JTAG_IO_],[1], [Print verbose JTAG I/O messages])
272 fi
273
274 AC_MSG_CHECKING([whether to enable verbose USB I/O messages]);
275 AC_MSG_RESULT($debug_usb_io)
276 if test $debug_usb_io = yes; then
277 AC_DEFINE([_DEBUG_USB_IO_],[1], [Print verbose USB I/O messages])
278 fi
279
280 AC_MSG_CHECKING([whether to enable verbose USB communication messages]);
281 AC_MSG_RESULT($debug_usb_comms)
282 if test $debug_usb_comms = yes; then
283 AC_DEFINE([_DEBUG_USB_COMMS_],[1], [Print verbose USB communication messages])
284 fi
285
286
287 debug_malloc=no
288 AC_ARG_ENABLE(malloc_logging,
289 AS_HELP_STRING([--enable-malloc-logging],
290 [Include free space in logging messages (requires malloc.h).]),
291 [debug_malloc=$enableval], [])
292
293 AC_MSG_CHECKING([whether to enable malloc free space logging]);
294 AC_MSG_RESULT($debug_malloc)
295 if test $debug_malloc = yes; then
296 AC_DEFINE([_DEBUG_FREE_SPACE_],[1], [Include malloc free space in logging])
297 fi
298
299
300 AC_ARG_ENABLE(dummy,
301 AS_HELP_STRING([--enable-dummy], [Enable building the dummy port driver]),
302 [build_dummy=$enableval], [build_dummy=no])
303
304 AC_ARG_ENABLE(parport,
305 AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
306 [build_parport=$enableval], [build_parport=no])
307
308 AC_ARG_ENABLE(parport_ppdev,
309 AS_HELP_STRING([--disable-parport-ppdev],
310 [Disable use of ppdev (/dev/parportN) for parport (for x86 only)]),
311 [parport_use_ppdev=$enableval], [parport_use_ppdev=yes])
312
313 AC_ARG_ENABLE(parport_giveio,
314 AS_HELP_STRING([--enable-parport-giveio],
315 [Enable use of giveio for parport (for CygWin only)]),
316 [parport_use_giveio=$enableval], [parport_use_giveio=])
317
318 AC_ARG_ENABLE(ft2232_libftdi,
319 AS_HELP_STRING([--enable-ft2232_libftdi], [Enable building support for FT2232 based devices using the libftdi driver, opensource alternate of FTD2XX]),
320 [build_ft2232_libftdi=$enableval], [build_ft2232_libftdi=no])
321
322 AC_ARG_ENABLE(ft2232_ftd2xx,
323 AS_HELP_STRING([--enable-ft2232_ftd2xx], [Enable building support for FT2232 based devices using the FTD2XX driver from ftdichip.com]),
324 [build_ft2232_ftd2xx=$enableval], [build_ft2232_ftd2xx=no])
325
326 AC_ARG_ENABLE(amtjtagaccel,
327 AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
328 [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
329
330 AC_ARG_ENABLE(ecosboard,
331 AS_HELP_STRING([--enable-ecosboard], [Enable building support for eCos based JTAG debugger]),
332 [build_ecosboard=$enableval], [build_ecosboard=no])
333
334 AC_ARG_ENABLE(zy1000,
335 AS_HELP_STRING([--enable-zy1000], [Enable ZY1000 interface]),
336 [build_zy1000=$enableval], [build_zy1000=no])
337
338 AC_ARG_ENABLE(ioutil,
339 AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]),
340 [build_ioutil=$enableval], [build_ioutil=no])
341
342 AC_ARG_ENABLE(httpd,
343 AS_HELP_STRING([--enable-httpd], [Enable builtin httpd server - useful for standalone OpenOCD implementations]),
344 [build_httpd=$enableval], [build_httpd=no])
345
346 case "${host_cpu}" in
347 arm*)
348 AC_ARG_ENABLE(ep93xx,
349 AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]),
350 [build_ep93xx=$enableval], [build_ep93xx=no])
351
352 AC_ARG_ENABLE(at91rm9200,
353 AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
354 [build_at91rm9200=$enableval], [build_at91rm9200=no])
355 ;;
356
357 *)
358 build_ep93xx=no
359 build_at91rm9200=no
360 ;;
361 esac
362
363 AC_ARG_ENABLE(gw16012,
364 AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
365 [build_gw16012=$enableval], [build_gw16012=no])
366
367 AC_ARG_ENABLE(presto_libftdi,
368 AS_HELP_STRING([--enable-presto_libftdi], [Enable building support for ASIX Presto Programmer using the libftdi driver]),
369 [build_presto_libftdi=$enableval], [build_presto_libftdi=no])
370
371 AC_ARG_ENABLE(presto_ftd2xx,
372 AS_HELP_STRING([--enable-presto_ftd2xx], [Enable building support for ASIX Presto Programmer using the FTD2XX driver]),
373 [build_presto_ftd2xx=$enableval], [build_presto_ftd2xx=no])
374
375 AC_ARG_ENABLE(usbprog,
376 AS_HELP_STRING([--enable-usbprog], [Enable building support for the usbprog JTAG Programmer]),
377 [build_usbprog=$enableval], [build_usbprog=no])
378
379 AC_ARG_ENABLE(oocd_trace,
380 AS_HELP_STRING([--enable-oocd_trace], [Enable building support for the OpenOCD+trace ETM capture device]),
381 [build_oocd_trace=$enableval], [build_oocd_trace=no])
382
383 AC_ARG_ENABLE(jlink,
384 AS_HELP_STRING([--enable-jlink], [Enable building support for the Segger J-Link JTAG Programmer]),
385 [build_jlink=$enableval], [build_jlink=no])
386
387 AC_ARG_ENABLE(vsllink,
388 AS_HELP_STRING([--enable-vsllink], [Enable building support for the Versaloon-Link JTAG Programmer]),
389 [build_vsllink=$enableval], [build_vsllink=no])
390
391 AC_ARG_ENABLE(rlink,
392 AS_HELP_STRING([--enable-rlink], [Enable building support for the Raisonance RLink JTAG Programmer]),
393 [build_rlink=$enableval], [build_rlink=no])
394
395 AC_ARG_ENABLE(arm-jtag-ew,
396 AS_HELP_STRING([--enable-arm-jtag-ew], [Enable building support for the Olimex ARM-JTAG-EW Programmer]),
397 [build_armjtagew=$enableval], [build_armjtagew=no])
398
399 AC_ARG_ENABLE(minidriver_dummy,
400 AS_HELP_STRING([--enable-minidriver-dummy], [Enable the dummy minidriver.]),
401 [build_minidriver_dummy=$enableval], [build_minidriver_dummy=no])
402
403
404 build_minidriver=no
405 AC_MSG_CHECKING([whether to enable ZY1000 minidriver])
406 if test $build_zy1000 = yes; then
407 if test $build_minidriver = yes; then
408 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
409 fi
410 AC_DEFINE(HAVE_JTAG_MINIDRIVER_H, 1,
411 [Define to 1 if you have the <jtag_minidriver.h> header file.])
412 build_minidriver=yes
413 fi
414 AC_MSG_RESULT($build_zy1000)
415
416
417 AC_MSG_CHECKING([whether to enable dummy minidriver])
418 if test $build_minidriver_dummy = yes; then
419 if test $build_minidriver = yes; then
420 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
421 fi
422 build_minidriver=yes
423 AC_DEFINE(BUILD_MINIDRIVER_DUMMY, 1, [Use the dummy minidriver.])
424 AC_DEFINE(HAVE_JTAG_MINIDRIVER_H, 1,
425 [Define to 1 if you have the <jtag_minidriver.h> header file.])
426 fi
427 AC_MSG_RESULT($build_minidriver_dummy)
428
429 AC_MSG_CHECKING([whether standard drivers can be built])
430 if test "$build_minidriver" = yes; then
431 AC_MSG_RESULT([no])
432 AC_MSG_WARN([Using the minidriver disables all other drivers.])
433 sleep 2
434 else
435 AC_MSG_RESULT([yes])
436 fi
437
438 case "${host_cpu}" in
439 i?86|x86*)
440 ;;
441 *)
442 if test x$parport_use_ppdev = xno; then
443 AC_MSG_WARN([--disable-parport-ppdev is not supported by the host CPU])
444 fi
445 parport_use_ppdev=yes
446 ;;
447 esac
448
449 case $host in
450 *-cygwin*)
451 is_win32=yes
452 parport_use_ppdev=no
453
454 AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[return __MINGW32__;]),
455 [is_mingw=yes],[is_mingw=no])
456 if test $is_mingw = yes; then
457 AC_DEFINE(IS_MINGW, 1, [1 if building for MinGW.])
458 if test x$parport_use_giveio = xno; then
459 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
460 fi
461 parport_use_giveio=yes
462 is_cygwin=no
463 else
464 is_cygwin=yes
465 AC_DEFINE(IS_CYGWIN, 1, [1 if building for Cygwin.])
466 # sys/io.h needed under cygwin for parport access
467 if test $build_parport = yes; then
468 AC_CHECK_HEADERS(sys/io.h,[],AC_MSG_ERROR([Please install the cygwin ioperm package]))
469 fi
470 fi
471
472 AC_DEFINE(IS_WIN32, 1, [1 if building for Win32.])
473 AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
474 ;;
475 *-mingw*)
476 is_mingw=yes
477 is_win32=yes
478 parport_use_ppdev=no
479
480 if test x$parport_use_giveio = xno; then
481 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
482 fi
483 parport_use_giveio=yes
484
485 AC_DEFINE(IS_MINGW, 1, [1 if building for MinGW.])
486 AC_DEFINE(IS_WIN32, 1, [1 if building for Win32.])
487 AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
488 ;;
489 *darwin*)
490 is_darwin=yes
491
492 if test x$parport_use_giveio = xyes; then
493 AC_MSG_WARN([--enable-parport-giveio cannot be used by Darwin hosts])
494 fi
495 parport_use_giveio=no
496
497 AC_DEFINE(IS_CYGWIN, 0, [0 if not building for Cygwin.])
498 AC_DEFINE(IS_WIN32, 0, [0 if not building for Win32.])
499 AC_DEFINE(IS_DARWIN, 1, [1 if building for Darwin.])
500 ;;
501 *)
502 if test x$parport_use_giveio = xyes; then
503 AC_MSG_WARN([--enable-parport-giveio cannot be used by ]$host[ hosts])
504 fi
505 parport_use_giveio=no
506 AC_DEFINE(IS_CYGWIN, 0, [0 if not building for Cygwin.])
507 AC_DEFINE(IS_WIN32, 0, [0 if not building for Win32.])
508 AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
509 ;;
510 esac
511
512 if test $build_parport = yes; then
513 build_bitbang=yes
514 AC_DEFINE(BUILD_PARPORT, 1, [1 if you want parport.])
515 else
516 AC_DEFINE(BUILD_PARPORT, 0, [0 if you don't want parport.])
517 fi
518
519 if test $build_dummy = yes; then
520 build_bitbang=yes
521 AC_DEFINE(BUILD_DUMMY, 1, [1 if you want dummy driver.])
522 else
523 AC_DEFINE(BUILD_DUMMY, 0, [0 if you don't want dummy driver.])
524 fi
525
526 if test $build_ep93xx = yes; then
527 build_bitbang=yes
528 AC_DEFINE(BUILD_EP93XX, 1, [1 if you want ep93xx.])
529 else
530 AC_DEFINE(BUILD_EP93XX, 0, [0 if you don't want ep93xx.])
531 fi
532
533 if test $build_ecosboard = yes; then
534 AC_DEFINE(BUILD_ECOSBOARD, 1, [1 if you want eCosBoard.])
535 else
536 AC_DEFINE(BUILD_ECOSBOARD, 0, [0 if you don't want eCosBoard.])
537 fi
538
539 if test $build_zy1000 = yes; then
540 AC_DEFINE(BUILD_ZY1000, 1, [1 if you want ZY1000.])
541 else
542 AC_DEFINE(BUILD_ZY1000, 0, [0 if you don't want ZY1000.])
543 fi
544
545 if test $build_ioutil = yes; then
546 AC_DEFINE(BUILD_IOUTIL, 1, [1 if you want ioutils.])
547 else
548 AC_DEFINE(BUILD_IOUTIL, 0, [0 if you don't want ioutils.])
549 fi
550
551 if test $build_httpd = yes; then
552 AC_DEFINE(BUILD_HTTPD, 1, [1 if you want httpd.])
553 else
554 AC_DEFINE(BUILD_HTTPD, 0, [0 if you don't want httpd.])
555 fi
556
557 if test $build_at91rm9200 = yes; then
558 build_bitbang=yes
559 AC_DEFINE(BUILD_AT91RM9200, 1, [1 if you want at91rm9200.])
560 else
561 AC_DEFINE(BUILD_AT91RM9200, 0, [0 if you don't want at91rm9200.])
562 fi
563
564 if test x$parport_use_ppdev = xyes; then
565 AC_DEFINE(PARPORT_USE_PPDEV, 1, [1 if you want parport to use ppdev.])
566 else
567 AC_DEFINE(PARPORT_USE_PPDEV, 0, [0 if you don't want parport to use ppdev.])
568 fi
569
570 if test x$parport_use_giveio = xyes; then
571 AC_DEFINE(PARPORT_USE_GIVEIO, 1, [1 if you want parport to use giveio.])
572 else
573 AC_DEFINE(PARPORT_USE_GIVEIO, 0, [0 if you don't want parport to use giveio.])
574 fi
575
576 if test $build_bitbang = yes; then
577 AC_DEFINE(BUILD_BITBANG, 1, [1 if you want a bitbang interface.])
578 else
579 AC_DEFINE(BUILD_BITBANG, 0, [0 if you don't want a bitbang interface.])
580 fi
581
582 if test $build_ft2232_libftdi = yes; then
583 AC_DEFINE(BUILD_FT2232_LIBFTDI, 1, [1 if you want libftdi ft2232.])
584 else
585 AC_DEFINE(BUILD_FT2232_LIBFTDI, 0, [0 if you don't want libftdi ft2232.])
586 fi
587
588 if test $build_ft2232_ftd2xx = yes; then
589 AC_DEFINE(BUILD_FT2232_FTD2XX, 1, [1 if you want ftd2xx ft2232.])
590 else
591 AC_DEFINE(BUILD_FT2232_FTD2XX, 0, [0 if you don't want ftd2xx ft2232.])
592 fi
593
594 if test $build_amtjtagaccel = yes; then
595 AC_DEFINE(BUILD_AMTJTAGACCEL, 1, [1 if you want the Amontec JTAG-Accelerator driver.])
596 else
597 AC_DEFINE(BUILD_AMTJTAGACCEL, 0, [0 if you don't want the Amontec JTAG-Accelerator driver.])
598 fi
599
600 if test $build_gw16012 = yes; then
601 AC_DEFINE(BUILD_GW16012, 1, [1 if you want the Gateworks GW16012 driver.])
602 else
603 AC_DEFINE(BUILD_GW16012, 0, [0 if you don't want the Gateworks GW16012 driver.])
604 fi
605
606 if test $build_presto_libftdi = yes; then
607 build_bitq=yes
608 AC_DEFINE(BUILD_PRESTO_LIBFTDI, 1, [1 if you want the ASIX PRESTO driver using libftdi.])
609 else
610 AC_DEFINE(BUILD_PRESTO_LIBFTDI, 0, [0 if you don't want the ASIX PRESTO driver using libftdi.])
611 fi
612
613 if test $build_presto_ftd2xx = yes; then
614 build_bitq=yes
615 AC_DEFINE(BUILD_PRESTO_FTD2XX, 1, [1 if you want the ASIX PRESTO driver using FTD2XX.])
616 else
617 AC_DEFINE(BUILD_PRESTO_FTD2XX, 0, [0 if you don't want the ASIX PRESTO driver using FTD2XX.])
618 fi
619
620 if test $build_bitq = yes; then
621 AC_DEFINE(BUILD_BITQ, 1, [1 if you want a bitq interface.])
622 else
623 AC_DEFINE(BUILD_BITQ, 0, [0 if you don't want a bitq interface.])
624 fi
625
626 if test $build_usbprog = yes; then
627 AC_DEFINE(BUILD_USBPROG, 1, [1 if you want the usbprog JTAG driver.])
628 else
629 AC_DEFINE(BUILD_USBPROG, 0, [0 if you don't want the usbprog JTAG driver.])
630 fi
631
632 if test $build_oocd_trace = yes; then
633 AC_DEFINE(BUILD_OOCD_TRACE, 1, [1 if you want the OpenOCD+trace ETM capture driver.])
634 else
635 AC_DEFINE(BUILD_OOCD_TRACE, 0, [0 if you don't want the OpenOCD+trace ETM capture driver.])
636 fi
637
638 if test $build_jlink = yes; then
639 AC_DEFINE(BUILD_JLINK, 1, [1 if you want the J-Link JTAG driver.])
640 else
641 AC_DEFINE(BUILD_JLINK, 0, [0 if you don't want the J-Link JTAG driver.])
642 fi
643
644 if test $build_vsllink = yes; then
645 AC_DEFINE(BUILD_VSLLINK, 1, [1 if you want the Versaloon-Link JTAG driver.])
646 else
647 AC_DEFINE(BUILD_VSLLINK, 0, [0 if you don't want the Versaloon-Link JTAG driver.])
648 fi
649
650 if test $build_rlink = yes; then
651 AC_DEFINE(BUILD_RLINK, 1, [1 if you want the RLink JTAG driver.])
652 else
653 AC_DEFINE(BUILD_RLINK, 0, [0 if you don't want the RLink JTAG driver.])
654 fi
655
656 if test $build_armjtagew = yes; then
657 AC_DEFINE(BUILD_ARMJTAGEW, 1, [1 if you want the ARM-JTAG-EW JTAG driver.])
658 else
659 AC_DEFINE(BUILD_ARMJTAGEW, 0, [0 if you don't want the ARM-JTAG-EW JTAG driver.])
660 fi
661
662 #-- Deal with MingW/Cygwin FTD2XX issues
663
664 if test $is_win32 = yes; then
665 if test "${with_ftd2xx_linux_tardir+set}" = set
666 then
667 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
668 fi
669
670 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
671 AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
672
673 # if we are given a zipdir...
674 if test "${with_ftd2xx_win32_zipdir+set}" = set
675 then
676 # Set the CFLAGS for "ftd2xx.h"
677 f=$with_ftd2xx_win32_zipdir/ftd2xx.h
678 if test ! -f $f ; then
679 AC_MSG_ERROR([File: $f cannot be found])
680 fi
681 CFLAGS="$CFLAGS -I$with_ftd2xx_win32_zipdir"
682
683 # And calculate the LDFLAGS for the machine
684 case "$host_cpu" in
685 i?86|x86_*)
686 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/i386"
687 LIBS="$LIBS -lftd2xx"
688 f=$with_ftd2xx_win32_zipdir/i386/ftd2xx.lib
689 ;;
690 amd64)
691 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/amd64"
692 LIBS="$LIBS -lftd2xx"
693 f=$with_ftd2xx_win32_zipdir/amd64/ftd2xx.lib
694 ;;
695 *)
696 AC_MSG_ERROR([Unknown Win32 host cpu: $host_cpu])
697 ;;
698 esac
699 if test ! -f $f ; then
700 AC_MSG_ERROR([Library: $f not found])
701 fi
702 else
703 LIBS="$LIBS -lftd2xx"
704 AC_MSG_WARN([ASSUMPTION: The (win32) FTDICHIP.COM files: ftd2xx.h and ftd2xx.lib are in a proper place])
705 fi
706 fi
707 fi # win32
708
709 if test $is_darwin = yes ; then
710 if test "${with_ftd2xx_win32_zipdir+set}" = set
711 then
712 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
713 fi
714 if test "${with_ftd2xx_linux_tardir+set}" = set
715 then
716 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
717 fi
718
719 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
720 AC_MSG_CHECKING([for libftd2xx.a (darwin)])
721
722 if test ! -f /usr/local/include/ftd2xx.h ; then
723 AC_MSG_ERROR([ftd2xx library from FTDICHIP.com seems to be missing, cannot find: /usr/local/include/ftd2xx.h])
724 fi
725
726 CFLAGS="$CFLAGS -I/usr/local/include"
727 LDFLAGS="$LDFLAGS -L/usr/local/lib"
728 LIBS="$LIBS -lftd2xx"
729 AC_MSG_RESULT([-L/usr/local/lib -lftd2xx])
730 fi
731 fi # darwin
732
733 if test $is_win32 = no && test $is_darwin = no ; then
734
735 if test "${with_ftd2xx_win32_zipdir+set}" = set
736 then
737 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
738 fi
739
740 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
741 # Must be linux
742 if test $host_os != linux-gnu && test $host_os != linux ; then
743 AC_MSG_ERROR([The (linux) ftd2xx library from FTDICHIP.com is linux only. Try --enable-ft2232-libftdi instead])
744 fi
745 # Are we given a TAR directory?
746 if test "${with_ftd2xx_linux_tardir+set}" = set
747 then
748 AC_MSG_CHECKING([uninstalled ftd2xx distribution])
749 # The .H file is simple..
750 FTD2XX_H=$with_ftd2xx_linux_tardir/ftd2xx.h
751 if test ! -f "${FTD2XX_H}"; then
752 AC_MSG_ERROR([Option: --with-ftd2xx-linux-tardir appears wrong, cannot find: ${FTD2XX_H}])
753 fi
754 CFLAGS="$CFLAGS -I$with_ftd2xx_linux_tardir"
755 FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir"
756 FTD2XX_LIB="-lftd2xx"
757 if test $with_ftd2xx_lib != shared; then
758 # Test #1 - Future proof - if/when ftdichip fixes their distro.
759 # Try it with the simple ".a" suffix.
760 FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a"
761 if test -f "${FTD2XX_LIB}"; then
762 FTD2XX_LDFLAGS="${FTD2XX_LDFLAGS}/static_lib"
763 else
764 # Test Number2.
765 # Grr.. perhaps it exists as a version number?
766 FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a.*.*.*"
767 count=`ls ${FTD2XX_LIB} | wc -l`
768 if test $count -gt 1 ; then
769 AC_MSG_ERROR([Multiple libftd2xx.a files found in: $with_ftd2xx_linux_tardir/static_lib sorry cannot handle this yet])
770 fi
771 if test $count -ne 1 ; then
772 AC_MSG_ERROR([Not found: $f, option: --with-ftd2xx-linux-tardir appears to be wrong])
773 fi
774 # Because the "-l" rules do not understand version numbers...
775 # we will just stuff the absolute path onto the LIBS variable
776 FTD2XX_LIB="`ls ${FTD2XX_LIB}` -lpthread"
777 FTD2XX_LDFLAGS=""
778 fi
779 fi
780 LDFLAGS="${LDFLAGS} ${FTD2XX_LDFLAGS}"
781 LIBS="${LIBS} ${FTD2XX_LIB}"
782 AC_MSG_RESULT([${FTD2XX_LDFLAGS} ${FTD2XX_LIB}])
783 else
784 AC_CHECK_HEADER([ftd2xx.h],[],[
785 AC_MSG_ERROR([You seem to be missing the FTD2xx driver header file.])
786 ])
787 AC_SEARCH_LIBS([FT_GetLibraryVersion],[ftd2xx],,[
788 AC_MSG_ERROR([You appear to be missing the FTD2xx driver library.])
789 ],[])
790 fi
791 fi
792 fi # linux
793
794 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes; then
795
796 # Before we go any further - make sure we can *BUILD* and *RUN*
797 # a simple app with the "ftd2xx.lib" file - in what ever form we where given
798 # We should be able to compile, link and run this test program now
799 AC_MSG_CHECKING([whether ftd2xx library works])
800
801 #
802 # Save the LDFLAGS for later..
803 LDFLAGS_SAVE=$LDFLAGS
804 CFLAGS_SAVE=$CFLAGS
805 _LDFLAGS=`eval echo $LDFLAGS`
806 _CFLAGS=`eval echo $CFLAGS`
807 LDFLAGS=$_LDFLAGS
808 CFLAGS=$_CFLAGS
809
810 AC_RUN_IFELSE([
811 #include "confdefs.h"
812 #if IS_WIN32
813 #include "windows.h"
814 #endif
815 #include <stdio.h>
816 #include <ftd2xx.h>
817
818 int
819 main( int argc, char **argv )
820 {
821 DWORD x;
822 FT_GetLibraryVersion( &x );
823 return 0;
824 }
825 ], [
826 AC_MSG_RESULT([Success!])
827 ], [
828 AC_MSG_ERROR([Cannot build & run test program using ftd2xx.lib])
829 ], [
830 AC_MSG_RESULT([Skipping as we are cross-compiling])
831 ])
832
833 AC_MSG_CHECKING([for ftd2xx highspeed device support])
834 AC_COMPILE_IFELSE([
835 #include "confdefs.h"
836 #if IS_WIN32
837 #include "windows.h"
838 #endif
839 #include <stdio.h>
840 #include <ftd2xx.h>
841 DWORD x = FT_DEVICE_4232H;
842 ], [
843 AC_DEFINE(BUILD_FT2232_HIGHSPEED, [1],
844 [Support FT2232H/FT4232HS with FTD2XX or libftdi.])
845 build_ft2232_highspeed=yes
846 ], [
847 build_ft2232_highspeed=no
848 ])
849 AC_MSG_RESULT([$build_ft2232_highspeed])
850
851 if test $build_ft2232_highspeed = no; then
852 AC_MSG_WARN([You need a newer FTD2XX driver (version 2.04.16 or later).])
853 fi
854
855 LDFLAGS=$LDFLAGS_SAVE
856 CFLAGS=$CFLAGS_SAVE
857 fi
858
859 if test $build_ft2232_libftdi = yes ; then
860 # We assume: the package is preinstalled in the proper place
861 # these present as 2 libraries..
862 LIBS="$LIBS -lftdi -lusb"
863 #
864 # Try to build a small program.
865 AC_MSG_CHECKING([Build & Link with libftdi...])
866
867 LDFLAGS_SAVE=$LDFLAGS
868 CFLAGS_SAVE=$CFLAGS
869 _LDFLAGS=`eval echo $LDFLAGS`
870 _CFLAGS=`eval echo $CFLAGS`
871 LDFLAGS=$_LDFLAGS
872 CFLAGS=$_CFLAGS
873
874 AC_RUN_IFELSE([
875 #include <stdio.h>
876 #include <ftdi.h>
877
878 int
879 main( int argc, char **argv )
880 {
881 struct ftdi_context *p;
882 p = ftdi_new();
883 if( p != NULL ){
884 return 0;
885 } else {
886 fprintf( stderr, "calling ftdi_new() failed\n");
887 return 1;
888 }
889 }
890 ], [
891 AC_MSG_RESULT([Success])
892 ], [
893 AC_MSG_ERROR([Cannot build & run test program using libftdi])
894 ], [
895 AC_MSG_RESULT([Skipping as we are cross-compiling])
896 ])
897
898 AC_MSG_CHECKING([for libftdi highspeed device support])
899 AC_COMPILE_IFELSE([
900 #include <stdio.h>
901 #include <ftdi.h>
902 enum ftdi_chip_type x = TYPE_2232H;
903 ], [
904 AC_DEFINE(BUILD_FT2232_HIGHSPEED, [1],
905 [Support FT2232H/FT4232HS with FTD2XX or libftdi.])
906 build_ft2232_highspeed=yes
907 ], [
908 build_ft2232_highspeed=no
909 ])
910 AC_MSG_RESULT([$build_ft2232_highspeed])
911
912 if test $build_ft2232_highspeed = no; then
913 AC_MSG_WARN([You need a newer libftdi version (0.16 or later).])
914 fi
915
916 # Restore the 'unexpanded ldflags'
917 LDFLAGS=$LDFLAGS_SAVE
918 CFLAGS=$CFLAGS_SAVE
919 fi
920
921 # check for usb.h when a driver will require it
922 if test $build_jlink = yes -o $build_vsllink = yes -o $build_usbprog = yes -o \
923 $build_rlink = yes -o $build_armjtagew = yes
924 then
925 AC_CHECK_HEADERS([usb.h],[],
926 [AC_MSG_ERROR([usb.h is required to build some OpenOCD driver(s)])])
927 fi
928
929 AM_CONDITIONAL(RELEASE, test $build_release = yes)
930 AM_CONDITIONAL(PARPORT, test $build_parport = yes)
931 AM_CONDITIONAL(DUMMY, test $build_dummy = yes)
932 AM_CONDITIONAL(GIVEIO, test x$parport_use_giveio = xyes)
933 AM_CONDITIONAL(EP93XX, test $build_ep93xx = yes)
934 AM_CONDITIONAL(ECOSBOARD, test $build_ecosboard = yes)
935 AM_CONDITIONAL(ZY1000, test $build_zy1000 = yes)
936 AM_CONDITIONAL(IOUTIL, test $build_ioutil = yes)
937 AM_CONDITIONAL(HTTPD, test $build_httpd = yes)
938 AM_CONDITIONAL(AT91RM9200, test $build_at91rm9200 = yes)
939 AM_CONDITIONAL(BITBANG, test $build_bitbang = yes)
940 AM_CONDITIONAL(FT2232_LIBFTDI, test $build_ft2232_libftdi = yes)
941 AM_CONDITIONAL(FT2232_DRIVER, test $build_ft2232_ftd2xx = yes -o $build_ft2232_libftdi = yes)
942 AM_CONDITIONAL(AMTJTAGACCEL, test $build_amtjtagaccel = yes)
943 AM_CONDITIONAL(GW16012, test $build_gw16012 = yes)
944 AM_CONDITIONAL(PRESTO_LIBFTDI, test $build_presto_libftdi = yes)
945 AM_CONDITIONAL(PRESTO_DRIVER, test $build_presto_ftd2xx = yes -o $build_presto_libftdi = yes)
946 AM_CONDITIONAL(USBPROG, test $build_usbprog = yes)
947 AM_CONDITIONAL(OOCD_TRACE, test $build_oocd_trace = yes)
948 AM_CONDITIONAL(JLINK, test $build_jlink = yes)
949 AM_CONDITIONAL(VSLLINK, test $build_vsllink = yes)
950 AM_CONDITIONAL(RLINK, test $build_rlink = yes)
951 AM_CONDITIONAL(ARMJTAGEW, test $build_armjtagew = yes)
952 AM_CONDITIONAL(IS_CYGWIN, test $is_cygwin = yes)
953 AM_CONDITIONAL(IS_MINGW, test $is_mingw = yes)
954 AM_CONDITIONAL(IS_WIN32, test $is_win32 = yes)
955 AM_CONDITIONAL(IS_DARWIN, test $is_darwin = yes)
956 AM_CONDITIONAL(BITQ, test $build_bitq = yes)
957
958 AM_CONDITIONAL(MINIDRIVER, test $build_minidriver = yes)
959 AM_CONDITIONAL(MINIDRIVER_DUMMY, test $build_minidriver_dummy = yes)
960
961 # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h?
962 AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
963 AC_COMPILE_IFELSE([
964 #define _GNU_SOURCE
965 #include <unistd.h>
966 #include <stdlib.h>
967 int main(int argc, char **argv) { char **ep = environ; }
968 ], [
969 AC_MSG_RESULT([yes])
970 has_environ=yes
971 ], [
972 AC_MSG_RESULT([no])
973
974 # Possibility #2: can environ be found in an available library?
975 AC_MSG_CHECKING([for extern environ])
976 AC_LINK_IFELSE([
977 extern char **environ;
978 int main(int argc, char **argv) { char **ep = environ; }
979 ], [
980 AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
981 has_environ=yes
982 ], [
983 has_environ=no
984 ])
985 AC_MSG_RESULT([${has_environ}])
986 ])
987
988 if test "${has_environ}" != "yes" ; then
989 AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
990 fi
991
992 AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
993
994 # set default gcc warnings
995 GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security"
996 if test "${gcc_wextra}" = yes; then
997 GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
998 GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
999 GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
1000 GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
1001 fi
1002 if test "${gcc_werror}" = yes; then
1003 GCC_WARNINGS="${GCC_WARNINGS} -Werror"
1004 fi
1005
1006 # overide default gcc cflags
1007 if test $gcc_warnings = yes; then
1008 CFLAGS="$CFLAGS $GCC_WARNINGS"
1009 fi
1010
1011 # Setup for compiling build tools
1012 AC_MSG_CHECKING([for a C compiler for build tools])
1013 if test $cross_compiling = yes; then
1014 AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
1015 CFLAGS_FOR_BUILD="-g -O2 $GCC_WARNINGS"
1016 else
1017 CC_FOR_BUILD=$CC
1018 CFLAGS_FOR_BUILD=$CFLAGS
1019 fi
1020
1021 AC_MSG_RESULT([$CC_FOR_BUILD])
1022 AC_SUBST(CC_FOR_BUILD)
1023 AC_SUBST(CFLAGS_FOR_BUILD)
1024
1025 AC_MSG_CHECKING([for suffix of executable build tools])
1026 if test $cross_compiling = yes; then
1027 cat >conftest.c <<\_______EOF
1028 int main ()
1029 {
1030 exit (0);
1031 }
1032 _______EOF
1033 for i in .exe ""; do
1034 compile="$CC_FOR_BUILD conftest.c -o conftest$i"
1035 if AC_TRY_EVAL(compile); then
1036 if (./conftest) 2>&AC_FD_CC; then
1037 EXEEXT_FOR_BUILD=$i
1038 break
1039 fi
1040 fi
1041 done
1042 rm -f conftest*
1043 if test "${EXEEXT_FOR_BUILD+set}" != set; then
1044 AC_MSG_ERROR([Cannot determine suffix of executable build tools])
1045 fi
1046 else
1047 EXEEXT_FOR_BUILD=$EXEEXT
1048 fi
1049 AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
1050 AC_SUBST(EXEEXT_FOR_BUILD)
1051
1052 AC_OUTPUT(dnl
1053 Makefile dnl
1054 src/Makefile dnl
1055 src/helper/Makefile dnl
1056 src/jtag/Makefile dnl
1057 src/xsvf/Makefile dnl
1058 src/svf/Makefile dnl
1059 src/target/Makefile dnl
1060 src/server/Makefile dnl
1061 src/flash/Makefile dnl
1062 src/pld/Makefile dnl
1063 doc/Makefile dnl
1064 )

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)