- disable using parport ppdev under win32 hosts
[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(ftd2xx_highspeed,
327 AS_HELP_STRING([--enable-ftd2xx-highspeed], [Enable building support for FT2232H and FT4232H-based devices (requires >=libftd2xx-0.4.16)]),
328 [want_ftd2xx_highspeed=$enableval], [want_ftd2xx_highspeed=no])
329
330 AC_ARG_ENABLE(amtjtagaccel,
331 AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
332 [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
333
334 AC_ARG_ENABLE(ecosboard,
335 AS_HELP_STRING([--enable-ecosboard], [Enable building support for eCos based JTAG debugger]),
336 [build_ecosboard=$enableval], [build_ecosboard=no])
337
338 AC_ARG_ENABLE(zy1000,
339 AS_HELP_STRING([--enable-zy1000], [Enable ZY1000 interface]),
340 [build_zy1000=$enableval], [build_zy1000=no])
341
342 AC_ARG_ENABLE(ioutil,
343 AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]),
344 [build_ioutil=$enableval], [build_ioutil=no])
345
346 AC_ARG_ENABLE(httpd,
347 AS_HELP_STRING([--enable-httpd], [Enable builtin httpd server - useful for standalone OpenOCD implementations]),
348 [build_httpd=$enableval], [build_httpd=no])
349
350 case "${host_cpu}" in
351 arm*)
352 AC_ARG_ENABLE(ep93xx,
353 AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]),
354 [build_ep93xx=$enableval], [build_ep93xx=no])
355
356 AC_ARG_ENABLE(at91rm9200,
357 AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
358 [build_at91rm9200=$enableval], [build_at91rm9200=no])
359 ;;
360
361 *)
362 build_ep93xx=no
363 build_at91rm9200=no
364 ;;
365 esac
366
367 AC_ARG_ENABLE(gw16012,
368 AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
369 [build_gw16012=$enableval], [build_gw16012=no])
370
371 AC_ARG_ENABLE(presto_libftdi,
372 AS_HELP_STRING([--enable-presto_libftdi], [Enable building support for ASIX Presto Programmer using the libftdi driver]),
373 [build_presto_libftdi=$enableval], [build_presto_libftdi=no])
374
375 AC_ARG_ENABLE(presto_ftd2xx,
376 AS_HELP_STRING([--enable-presto_ftd2xx], [Enable building support for ASIX Presto Programmer using the FTD2XX driver]),
377 [build_presto_ftd2xx=$enableval], [build_presto_ftd2xx=no])
378
379 AC_ARG_ENABLE(usbprog,
380 AS_HELP_STRING([--enable-usbprog], [Enable building support for the usbprog JTAG Programmer]),
381 [build_usbprog=$enableval], [build_usbprog=no])
382
383 AC_ARG_ENABLE(oocd_trace,
384 AS_HELP_STRING([--enable-oocd_trace], [Enable building support for the OpenOCD+trace ETM capture device]),
385 [build_oocd_trace=$enableval], [build_oocd_trace=no])
386
387 AC_ARG_ENABLE(jlink,
388 AS_HELP_STRING([--enable-jlink], [Enable building support for the Segger J-Link JTAG Programmer]),
389 [build_jlink=$enableval], [build_jlink=no])
390
391 AC_ARG_ENABLE(vsllink,
392 AS_HELP_STRING([--enable-vsllink], [Enable building support for the Versaloon-Link JTAG Programmer]),
393 [build_vsllink=$enableval], [build_vsllink=no])
394
395 AC_ARG_ENABLE(rlink,
396 AS_HELP_STRING([--enable-rlink], [Enable building support for the Raisonance RLink JTAG Programmer]),
397 [build_rlink=$enableval], [build_rlink=no])
398
399 AC_ARG_ENABLE(arm-jtag-ew,
400 AS_HELP_STRING([--enable-arm-jtag-ew], [Enable building support for the Olimex ARM-JTAG-EW Programmer]),
401 [build_armjtagew=$enableval], [build_armjtagew=no])
402
403 AC_ARG_ENABLE(minidriver_dummy,
404 AS_HELP_STRING([--enable-minidriver-dummy], [Enable the dummy minidriver.]),
405 [build_minidriver_dummy=$enableval], [build_minidriver_dummy=no])
406
407
408 build_minidriver=no
409 AC_MSG_CHECKING([whether to enable ZY1000 minidriver])
410 if test $build_zy1000 = yes; then
411 if test $build_minidriver = yes; then
412 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
413 fi
414 AC_DEFINE(HAVE_JTAG_MINIDRIVER_H, 1,
415 [Define to 1 if you have the <jtag_minidriver.h> header file.])
416 build_minidriver=yes
417 fi
418 AC_MSG_RESULT($build_zy1000)
419
420
421 AC_MSG_CHECKING([whether to enable dummy minidriver])
422 if test $build_minidriver_dummy = yes; then
423 if test $build_minidriver = yes; then
424 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
425 fi
426 build_minidriver=yes
427 AC_DEFINE(BUILD_MINIDRIVER_DUMMY, 1, [Use the dummy minidriver.])
428 AC_DEFINE(HAVE_JTAG_MINIDRIVER_H, 1,
429 [Define to 1 if you have the <jtag_minidriver.h> header file.])
430 fi
431 AC_MSG_RESULT($build_minidriver_dummy)
432
433 AC_MSG_CHECKING([whether standard drivers can be built])
434 if test "$build_minidriver" = yes; then
435 AC_MSG_RESULT([no])
436 AC_MSG_WARN([Using the minidriver disables all other drivers.])
437 sleep 2
438 else
439 AC_MSG_RESULT([yes])
440 fi
441
442 case "${host_cpu}" in
443 i?86|x86*)
444 ;;
445 *)
446 if test x$parport_use_ppdev = xno; then
447 AC_MSG_WARN([--disable-parport-ppdev is not supported by the host CPU])
448 fi
449 parport_use_ppdev=yes
450 ;;
451 esac
452
453 case $host in
454 *-cygwin*)
455 is_win32=yes
456 parport_use_ppdev=no
457
458 AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[return __MINGW32__;]),
459 [is_mingw=yes],[is_mingw=no])
460 if test $is_mingw = yes; then
461 AC_DEFINE(IS_MINGW, 1, [1 if building for MinGW.])
462 if test x$parport_use_giveio = xno; then
463 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
464 fi
465 parport_use_giveio=yes
466 is_cygwin=no
467 else
468 is_cygwin=yes
469 AC_DEFINE(IS_CYGWIN, 1, [1 if building for Cygwin.])
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([whether to build ftd2xx highspeed device support])
834 AC_MSG_RESULT([$want_ftd2xx_highspeed])
835 if test $want_ftd2xx_highspeed != no; then
836 AC_MSG_CHECKING([for ftd2xx highspeed device support])
837 AC_COMPILE_IFELSE([
838 #include "confdefs.h"
839 #if IS_WIN32
840 #include "windows.h"
841 #endif
842 #include <stdio.h>
843 #include <ftd2xx.h>
844 DWORD x = FT_DEVICE_4232H;
845 ], [
846 AC_DEFINE(BUILD_FTD2XX_HIGHSPEED, [1],
847 [Support FT2232H/FT4232HS with FTD2XX.])
848 build_ftd2xx_highspeed=yes
849 ], [
850 build_ftd2xx_highspeed=no
851 ])
852 AC_MSG_RESULT([$build_ftd2xx_highspeed])
853
854 if test $want_ftd2xx_highspeed = yes -a $build_ftd2xx_highspeed = no; then
855 AC_MSG_ERROR([You need a newer FTD2XX driver (version 0.4.16 or later).])
856 fi
857 fi
858
859 LDFLAGS=$LDFLAGS_SAVE
860 CFLAGS=$CFLAGS_SAVE
861 fi
862
863 if test $build_ft2232_libftdi = yes ; then
864 # We assume: the package is preinstalled in the proper place
865 # these present as 2 libraries..
866 LIBS="$LIBS -lftdi -lusb"
867 #
868 # Try to build a small program.
869 AC_MSG_CHECKING([Build & Link with libftdi...])
870
871 LDFLAGS_SAVE=$LDFLAGS
872 CFLAGS_SAVE=$CFLAGS
873 _LDFLAGS=`eval echo $LDFLAGS`
874 _CFLAGS=`eval echo $CFLAGS`
875 LDFLAGS=$_LDFLAGS
876 CFLAGS=$_CFLAGS
877
878 AC_RUN_IFELSE([
879 #include <stdio.h>
880 #include <ftdi.h>
881
882 int
883 main( int argc, char **argv )
884 {
885 struct ftdi_context *p;
886 p = ftdi_new();
887 if( p != NULL ){
888 return 0;
889 } else {
890 fprintf( stderr, "calling ftdi_new() failed\n");
891 return 1;
892 }
893 }
894 ], [
895 AC_MSG_RESULT([Success])
896 ], [
897 AC_MSG_ERROR([Cannot build & run test program using libftdi])
898 ], [
899 AC_MSG_RESULT([Skipping as we are cross-compiling])
900 ])
901
902 # Restore the 'unexpanded ldflags'
903 LDFLAGS=$LDFLAGS_SAVE
904 CFLAGS=$CFLAGS_SAVE
905 fi
906
907 # check for usb.h when a driver will require it
908 if test $build_jlink = yes -o $build_vsllink = yes -o $build_usbprog = yes -o \
909 $build_rlink = yes -o $build_armjtagew = yes
910 then
911 AC_CHECK_HEADERS([usb.h],[],
912 [AC_MSG_ERROR([usb.h is required to build some OpenOCD driver(s)])])
913 fi
914
915 AM_CONDITIONAL(RELEASE, test $build_release = yes)
916 AM_CONDITIONAL(PARPORT, test $build_parport = yes)
917 AM_CONDITIONAL(DUMMY, test $build_dummy = yes)
918 AM_CONDITIONAL(GIVEIO, test x$parport_use_giveio = xyes)
919 AM_CONDITIONAL(EP93XX, test $build_ep93xx = yes)
920 AM_CONDITIONAL(ECOSBOARD, test $build_ecosboard = yes)
921 AM_CONDITIONAL(ZY1000, test $build_zy1000 = yes)
922 AM_CONDITIONAL(IOUTIL, test $build_ioutil = yes)
923 AM_CONDITIONAL(HTTPD, test $build_httpd = yes)
924 AM_CONDITIONAL(AT91RM9200, test $build_at91rm9200 = yes)
925 AM_CONDITIONAL(BITBANG, test $build_bitbang = yes)
926 AM_CONDITIONAL(FT2232_LIBFTDI, test $build_ft2232_libftdi = yes)
927 AM_CONDITIONAL(FT2232_DRIVER, test $build_ft2232_ftd2xx = yes -o $build_ft2232_libftdi = yes)
928 AM_CONDITIONAL(AMTJTAGACCEL, test $build_amtjtagaccel = yes)
929 AM_CONDITIONAL(GW16012, test $build_gw16012 = yes)
930 AM_CONDITIONAL(PRESTO_LIBFTDI, test $build_presto_libftdi = yes)
931 AM_CONDITIONAL(PRESTO_DRIVER, test $build_presto_ftd2xx = yes -o $build_presto_libftdi = yes)
932 AM_CONDITIONAL(USBPROG, test $build_usbprog = yes)
933 AM_CONDITIONAL(OOCD_TRACE, test $build_oocd_trace = yes)
934 AM_CONDITIONAL(JLINK, test $build_jlink = yes)
935 AM_CONDITIONAL(VSLLINK, test $build_vsllink = yes)
936 AM_CONDITIONAL(RLINK, test $build_rlink = yes)
937 AM_CONDITIONAL(ARMJTAGEW, test $build_armjtagew = yes)
938 AM_CONDITIONAL(IS_CYGWIN, test $is_cygwin = yes)
939 AM_CONDITIONAL(IS_MINGW, test $is_mingw = yes)
940 AM_CONDITIONAL(IS_WIN32, test $is_win32 = yes)
941 AM_CONDITIONAL(IS_DARWIN, test $is_darwin = yes)
942 AM_CONDITIONAL(BITQ, test $build_bitq = yes)
943
944 AM_CONDITIONAL(MINIDRIVER, test $build_minidriver = yes)
945 AM_CONDITIONAL(MINIDRIVER_DUMMY, test $build_minidriver_dummy = yes)
946
947 # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h?
948 AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
949 AC_COMPILE_IFELSE([
950 #define _GNU_SOURCE
951 #include <unistd.h>
952 #include <stdlib.h>
953 int main(int argc, char **argv) { char **ep = environ; }
954 ], [
955 AC_MSG_RESULT([yes])
956 has_environ=yes
957 ], [
958 AC_MSG_RESULT([no])
959
960 # Possibility #2: can environ be found in an available library?
961 AC_MSG_CHECKING([for extern environ])
962 AC_LINK_IFELSE([
963 extern char **environ;
964 int main(int argc, char **argv) { char **ep = environ; }
965 ], [
966 AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
967 has_environ=yes
968 ], [
969 has_environ=no
970 ])
971 AC_MSG_RESULT([${has_environ}])
972 ])
973
974 if test "${has_environ}" != "yes" ; then
975 AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
976 fi
977
978 AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
979
980 # set default gcc warnings
981 GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security"
982 if test "${gcc_wextra}" = yes; then
983 GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
984 GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
985 GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
986 GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
987 fi
988 if test "${gcc_werror}" = yes; then
989 GCC_WARNINGS="${GCC_WARNINGS} -Werror"
990 fi
991
992 # overide default gcc cflags
993 if test $gcc_warnings = yes; then
994 CFLAGS="$CFLAGS $GCC_WARNINGS"
995 fi
996
997 # Setup for compiling build tools
998 AC_MSG_CHECKING([for a C compiler for build tools])
999 if test $cross_compiling = yes; then
1000 AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
1001 CFLAGS_FOR_BUILD="-g -O2 $GCC_WARNINGS"
1002 else
1003 CC_FOR_BUILD=$CC
1004 CFLAGS_FOR_BUILD=$CFLAGS
1005 fi
1006
1007 AC_MSG_RESULT([$CC_FOR_BUILD])
1008 AC_SUBST(CC_FOR_BUILD)
1009 AC_SUBST(CFLAGS_FOR_BUILD)
1010
1011 AC_MSG_CHECKING([for suffix of executable build tools])
1012 if test $cross_compiling = yes; then
1013 cat >conftest.c <<\_______EOF
1014 int main ()
1015 {
1016 exit (0);
1017 }
1018 _______EOF
1019 for i in .exe ""; do
1020 compile="$CC_FOR_BUILD conftest.c -o conftest$i"
1021 if AC_TRY_EVAL(compile); then
1022 if (./conftest) 2>&AC_FD_CC; then
1023 EXEEXT_FOR_BUILD=$i
1024 break
1025 fi
1026 fi
1027 done
1028 rm -f conftest*
1029 if test "${EXEEXT_FOR_BUILD+set}" != set; then
1030 AC_MSG_ERROR([Cannot determine suffix of executable build tools])
1031 fi
1032 else
1033 EXEEXT_FOR_BUILD=$EXEEXT
1034 fi
1035 AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
1036 AC_SUBST(EXEEXT_FOR_BUILD)
1037
1038 AC_OUTPUT(dnl
1039 Makefile dnl
1040 src/Makefile dnl
1041 src/helper/Makefile dnl
1042 src/jtag/Makefile dnl
1043 src/xsvf/Makefile dnl
1044 src/svf/Makefile dnl
1045 src/target/Makefile dnl
1046 src/server/Makefile dnl
1047 src/flash/Makefile dnl
1048 src/pld/Makefile dnl
1049 doc/Makefile dnl
1050 )

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)