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

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)