Make the parport-ppdev option enabled by default. This may require
[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 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
457 AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[return __MINGW32__;]),
458 [is_mingw=yes],[is_mingw=no])
459 if test $is_mingw = yes; then
460 AC_DEFINE(IS_MINGW, 1, [1 if building for MinGW.])
461 if test x$parport_use_giveio = xno; then
462 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
463 fi
464 parport_use_giveio=yes
465 is_cygwin=no
466 else
467 is_cygwin=yes
468 AC_DEFINE(IS_CYGWIN, 1, [1 if building for Cygwin.])
469 fi
470
471 AC_DEFINE(IS_WIN32, 1, [1 if building for Win32.])
472 AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
473 ;;
474 *-mingw*)
475 is_mingw=yes
476 is_win32=yes
477
478 if test x$parport_use_giveio = xno; then
479 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
480 fi
481 parport_use_giveio=yes
482
483 AC_DEFINE(IS_MINGW, 1, [1 if building for MinGW.])
484 AC_DEFINE(IS_WIN32, 1, [1 if building for Win32.])
485 AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
486 ;;
487 *darwin*)
488 is_darwin=yes
489
490 if test x$parport_use_giveio = xyes; then
491 AC_MSG_WARN([--enable-parport-giveio cannot be used by Darwin hosts])
492 fi
493 parport_use_giveio=no
494
495 AC_DEFINE(IS_CYGWIN, 0, [0 if not building for Cygwin.])
496 AC_DEFINE(IS_WIN32, 0, [0 if not building for Win32.])
497 AC_DEFINE(IS_DARWIN, 1, [1 if building for Darwin.])
498 ;;
499 *)
500 if test x$parport_use_giveio = xyes; then
501 AC_MSG_WARN([--enable-parport-giveio cannot be used by ]$host[ hosts])
502 fi
503 parport_use_giveio=no
504 AC_DEFINE(IS_CYGWIN, 0, [0 if not building for Cygwin.])
505 AC_DEFINE(IS_WIN32, 0, [0 if not building for Win32.])
506 AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
507 ;;
508 esac
509
510 if test $build_parport = yes; then
511 build_bitbang=yes
512 AC_DEFINE(BUILD_PARPORT, 1, [1 if you want parport.])
513 else
514 AC_DEFINE(BUILD_PARPORT, 0, [0 if you don't want parport.])
515 fi
516
517 if test $build_dummy = yes; then
518 build_bitbang=yes
519 AC_DEFINE(BUILD_DUMMY, 1, [1 if you want dummy driver.])
520 else
521 AC_DEFINE(BUILD_DUMMY, 0, [0 if you don't want dummy driver.])
522 fi
523
524 if test $build_ep93xx = yes; then
525 build_bitbang=yes
526 AC_DEFINE(BUILD_EP93XX, 1, [1 if you want ep93xx.])
527 else
528 AC_DEFINE(BUILD_EP93XX, 0, [0 if you don't want ep93xx.])
529 fi
530
531 if test $build_ecosboard = yes; then
532 AC_DEFINE(BUILD_ECOSBOARD, 1, [1 if you want eCosBoard.])
533 else
534 AC_DEFINE(BUILD_ECOSBOARD, 0, [0 if you don't want eCosBoard.])
535 fi
536
537 if test $build_zy1000 = yes; then
538 AC_DEFINE(BUILD_ZY1000, 1, [1 if you want ZY1000.])
539 else
540 AC_DEFINE(BUILD_ZY1000, 0, [0 if you don't want ZY1000.])
541 fi
542
543 if test $build_ioutil = yes; then
544 AC_DEFINE(BUILD_IOUTIL, 1, [1 if you want ioutils.])
545 else
546 AC_DEFINE(BUILD_IOUTIL, 0, [0 if you don't want ioutils.])
547 fi
548
549 if test $build_httpd = yes; then
550 AC_DEFINE(BUILD_HTTPD, 1, [1 if you want httpd.])
551 else
552 AC_DEFINE(BUILD_HTTPD, 0, [0 if you don't want httpd.])
553 fi
554
555 if test $build_at91rm9200 = yes; then
556 build_bitbang=yes
557 AC_DEFINE(BUILD_AT91RM9200, 1, [1 if you want at91rm9200.])
558 else
559 AC_DEFINE(BUILD_AT91RM9200, 0, [0 if you don't want at91rm9200.])
560 fi
561
562 if test x$parport_use_ppdev = xyes; then
563 AC_DEFINE(PARPORT_USE_PPDEV, 1, [1 if you want parport to use ppdev.])
564 else
565 AC_DEFINE(PARPORT_USE_PPDEV, 0, [0 if you don't want parport to use ppdev.])
566 fi
567
568 if test x$parport_use_giveio = xyes; then
569 AC_DEFINE(PARPORT_USE_GIVEIO, 1, [1 if you want parport to use giveio.])
570 else
571 AC_DEFINE(PARPORT_USE_GIVEIO, 0, [0 if you don't want parport to use giveio.])
572 fi
573
574 if test $build_bitbang = yes; then
575 AC_DEFINE(BUILD_BITBANG, 1, [1 if you want a bitbang interface.])
576 else
577 AC_DEFINE(BUILD_BITBANG, 0, [0 if you don't want a bitbang interface.])
578 fi
579
580 if test $build_ft2232_libftdi = yes; then
581 AC_DEFINE(BUILD_FT2232_LIBFTDI, 1, [1 if you want libftdi ft2232.])
582 else
583 AC_DEFINE(BUILD_FT2232_LIBFTDI, 0, [0 if you don't want libftdi ft2232.])
584 fi
585
586 if test $build_ft2232_ftd2xx = yes; then
587 AC_DEFINE(BUILD_FT2232_FTD2XX, 1, [1 if you want ftd2xx ft2232.])
588 else
589 AC_DEFINE(BUILD_FT2232_FTD2XX, 0, [0 if you don't want ftd2xx ft2232.])
590 fi
591
592 if test $build_amtjtagaccel = yes; then
593 AC_DEFINE(BUILD_AMTJTAGACCEL, 1, [1 if you want the Amontec JTAG-Accelerator driver.])
594 else
595 AC_DEFINE(BUILD_AMTJTAGACCEL, 0, [0 if you don't want the Amontec JTAG-Accelerator driver.])
596 fi
597
598 if test $build_gw16012 = yes; then
599 AC_DEFINE(BUILD_GW16012, 1, [1 if you want the Gateworks GW16012 driver.])
600 else
601 AC_DEFINE(BUILD_GW16012, 0, [0 if you don't want the Gateworks GW16012 driver.])
602 fi
603
604 if test $build_presto_libftdi = yes; then
605 build_bitq=yes
606 AC_DEFINE(BUILD_PRESTO_LIBFTDI, 1, [1 if you want the ASIX PRESTO driver using libftdi.])
607 else
608 AC_DEFINE(BUILD_PRESTO_LIBFTDI, 0, [0 if you don't want the ASIX PRESTO driver using libftdi.])
609 fi
610
611 if test $build_presto_ftd2xx = yes; then
612 build_bitq=yes
613 AC_DEFINE(BUILD_PRESTO_FTD2XX, 1, [1 if you want the ASIX PRESTO driver using FTD2XX.])
614 else
615 AC_DEFINE(BUILD_PRESTO_FTD2XX, 0, [0 if you don't want the ASIX PRESTO driver using FTD2XX.])
616 fi
617
618 if test $build_bitq = yes; then
619 AC_DEFINE(BUILD_BITQ, 1, [1 if you want a bitq interface.])
620 else
621 AC_DEFINE(BUILD_BITQ, 0, [0 if you don't want a bitq interface.])
622 fi
623
624 if test $build_usbprog = yes; then
625 AC_DEFINE(BUILD_USBPROG, 1, [1 if you want the usbprog JTAG driver.])
626 else
627 AC_DEFINE(BUILD_USBPROG, 0, [0 if you don't want the usbprog JTAG driver.])
628 fi
629
630 if test $build_oocd_trace = yes; then
631 AC_DEFINE(BUILD_OOCD_TRACE, 1, [1 if you want the OpenOCD+trace ETM capture driver.])
632 else
633 AC_DEFINE(BUILD_OOCD_TRACE, 0, [0 if you don't want the OpenOCD+trace ETM capture driver.])
634 fi
635
636 if test $build_jlink = yes; then
637 AC_DEFINE(BUILD_JLINK, 1, [1 if you want the J-Link JTAG driver.])
638 else
639 AC_DEFINE(BUILD_JLINK, 0, [0 if you don't want the J-Link JTAG driver.])
640 fi
641
642 if test $build_vsllink = yes; then
643 AC_DEFINE(BUILD_VSLLINK, 1, [1 if you want the Versaloon-Link JTAG driver.])
644 else
645 AC_DEFINE(BUILD_VSLLINK, 0, [0 if you don't want the Versaloon-Link JTAG driver.])
646 fi
647
648 if test $build_rlink = yes; then
649 AC_DEFINE(BUILD_RLINK, 1, [1 if you want the RLink JTAG driver.])
650 else
651 AC_DEFINE(BUILD_RLINK, 0, [0 if you don't want the RLink JTAG driver.])
652 fi
653
654 if test $build_armjtagew = yes; then
655 AC_DEFINE(BUILD_ARMJTAGEW, 1, [1 if you want the ARM-JTAG-EW JTAG driver.])
656 else
657 AC_DEFINE(BUILD_ARMJTAGEW, 0, [0 if you don't want the ARM-JTAG-EW JTAG driver.])
658 fi
659
660 #-- Deal with MingW/Cygwin FTD2XX issues
661
662 if test $is_win32 = yes; then
663 if test "${with_ftd2xx_linux_tardir+set}" = set
664 then
665 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
666 fi
667
668 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
669 AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
670
671 # if we are given a zipdir...
672 if test "${with_ftd2xx_win32_zipdir+set}" = set
673 then
674 # Set the CFLAGS for "ftd2xx.h"
675 f=$with_ftd2xx_win32_zipdir/ftd2xx.h
676 if test ! -f $f ; then
677 AC_MSG_ERROR([File: $f cannot be found])
678 fi
679 CFLAGS="$CFLAGS -I$with_ftd2xx_win32_zipdir"
680
681 # And calculate the LDFLAGS for the machine
682 case "$host_cpu" in
683 i?86|x86_*)
684 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/i386"
685 LIBS="$LIBS -lftd2xx"
686 f=$with_ftd2xx_win32_zipdir/i386/ftd2xx.lib
687 ;;
688 amd64)
689 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/amd64"
690 LIBS="$LIBS -lftd2xx"
691 f=$with_ftd2xx_win32_zipdir/amd64/ftd2xx.lib
692 ;;
693 *)
694 AC_MSG_ERROR([Unknown Win32 host cpu: $host_cpu])
695 ;;
696 esac
697 if test ! -f $f ; then
698 AC_MSG_ERROR([Library: $f not found])
699 fi
700 else
701 LIBS="$LIBS -lftd2xx"
702 AC_MSG_WARN([ASSUMPTION: The (win32) FTDICHIP.COM files: ftd2xx.h and ftd2xx.lib are in a proper place])
703 fi
704 fi
705 fi # win32
706
707 if test $is_darwin = yes ; then
708 if test "${with_ftd2xx_win32_zipdir+set}" = set
709 then
710 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
711 fi
712 if test "${with_ftd2xx_linux_tardir+set}" = set
713 then
714 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
715 fi
716
717 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
718 AC_MSG_CHECKING([for libftd2xx.a (darwin)])
719
720 if test ! -f /usr/local/include/ftd2xx.h ; then
721 AC_MSG_ERROR([ftd2xx library from FTDICHIP.com seems to be missing, cannot find: /usr/local/include/ftd2xx.h])
722 fi
723
724 CFLAGS="$CFLAGS -I/usr/local/include"
725 LDFLAGS="$LDFLAGS -L/usr/local/lib"
726 LIBS="$LIBS -lftd2xx"
727 AC_MSG_RESULT([-L/usr/local/lib -lftd2xx])
728 fi
729 fi # darwin
730
731 if test $is_win32 = no && test $is_darwin = no ; then
732
733 if test "${with_ftd2xx_win32_zipdir+set}" = set
734 then
735 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
736 fi
737
738 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
739 # Must be linux
740 if test $host_os != linux-gnu && test $host_os != linux ; then
741 AC_MSG_ERROR([The (linux) ftd2xx library from FTDICHIP.com is linux only. Try --enable-ft2232-libftdi instead])
742 fi
743 # Are we given a TAR directory?
744 if test "${with_ftd2xx_linux_tardir+set}" = set
745 then
746 AC_MSG_CHECKING([uninstalled ftd2xx distribution])
747 # The .H file is simple..
748 FTD2XX_H=$with_ftd2xx_linux_tardir/ftd2xx.h
749 if test ! -f "${FTD2XX_H}"; then
750 AC_MSG_ERROR([Option: --with-ftd2xx-linux-tardir appears wrong, cannot find: ${FTD2XX_H}])
751 fi
752 CFLAGS="$CFLAGS -I$with_ftd2xx_linux_tardir"
753 FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir"
754 FTD2XX_LIB="-lftd2xx"
755 if test $with_ftd2xx_lib != shared; then
756 # Test #1 - Future proof - if/when ftdichip fixes their distro.
757 # Try it with the simple ".a" suffix.
758 FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a"
759 if test -f "${FTD2XX_LIB}"; then
760 FTD2XX_LDFLAGS="${FTD2XX_LDFLAGS}/static_lib"
761 else
762 # Test Number2.
763 # Grr.. perhaps it exists as a version number?
764 FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a.*.*.*"
765 count=`ls ${FTD2XX_LIB} | wc -l`
766 if test $count -gt 1 ; then
767 AC_MSG_ERROR([Multiple libftd2xx.a files found in: $with_ftd2xx_linux_tardir/static_lib sorry cannot handle this yet])
768 fi
769 if test $count -ne 1 ; then
770 AC_MSG_ERROR([Not found: $f, option: --with-ftd2xx-linux-tardir appears to be wrong])
771 fi
772 # Because the "-l" rules do not understand version numbers...
773 # we will just stuff the absolute path onto the LIBS variable
774 FTD2XX_LIB="`ls ${FTD2XX_LIB}` -lpthread"
775 FTD2XX_LDFLAGS=""
776 fi
777 fi
778 LDFLAGS="${LDFLAGS} ${FTD2XX_LDFLAGS}"
779 LIBS="${LIBS} ${FTD2XX_LIB}"
780 AC_MSG_RESULT([${FTD2XX_LDFLAGS} ${FTD2XX_LIB}])
781 else
782 AC_CHECK_HEADER([ftd2xx.h],[],[
783 AC_MSG_ERROR([You seem to be missing the FTD2xx driver header file.])
784 ])
785 AC_SEARCH_LIBS([FT_GetLibraryVersion],[ftd2xx],,[
786 AC_MSG_ERROR([You appear to be missing the FTD2xx driver library.])
787 ],[])
788 fi
789 fi
790 fi # linux
791
792 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes; then
793
794 # Before we go any further - make sure we can *BUILD* and *RUN*
795 # a simple app with the "ftd2xx.lib" file - in what ever form we where given
796 # We should be able to compile, link and run this test program now
797 AC_MSG_CHECKING([whether ftd2xx library works])
798
799 #
800 # Save the LDFLAGS for later..
801 LDFLAGS_SAVE=$LDFLAGS
802 CFLAGS_SAVE=$CFLAGS
803 _LDFLAGS=`eval echo $LDFLAGS`
804 _CFLAGS=`eval echo $CFLAGS`
805 LDFLAGS=$_LDFLAGS
806 CFLAGS=$_CFLAGS
807
808 AC_RUN_IFELSE([
809 #include "confdefs.h"
810 #if IS_WIN32
811 #include "windows.h"
812 #endif
813 #include <stdio.h>
814 #include <ftd2xx.h>
815
816 int
817 main( int argc, char **argv )
818 {
819 DWORD x;
820 FT_GetLibraryVersion( &x );
821 return 0;
822 }
823 ], [
824 AC_MSG_RESULT([Success!])
825 ], [
826 AC_MSG_ERROR([Cannot build & run test program using ftd2xx.lib])
827 ], [
828 AC_MSG_RESULT([Skipping as we are cross-compiling])
829 ])
830
831 AC_MSG_CHECKING([whether to build ftd2xx highspeed device support])
832 AC_MSG_RESULT([$want_ftd2xx_highspeed])
833 if test $want_ftd2xx_highspeed != no; then
834 AC_MSG_CHECKING([for ftd2xx highspeed device support])
835 AC_COMPILE_IFELSE([
836 #include "confdefs.h"
837 #if IS_WIN32
838 #include "windows.h"
839 #endif
840 #include <stdio.h>
841 #include <ftd2xx.h>
842 DWORD x = FT_DEVICE_4232H;
843 ], [
844 AC_DEFINE(BUILD_FTD2XX_HIGHSPEED, [1],
845 [Support FT2232H/FT4232HS with FTD2XX.])
846 build_ftd2xx_highspeed=yes
847 ], [
848 build_ftd2xx_highspeed=no
849 ])
850 AC_MSG_RESULT([$build_ftd2xx_highspeed])
851
852 if test $want_ftd2xx_highspeed = yes -a $build_ftd2xx_highspeed = no; then
853 AC_MSG_ERROR([You need a newer FTD2XX driver (version 0.4.16 or later).])
854 fi
855 fi
856
857 LDFLAGS=$LDFLAGS_SAVE
858 CFLAGS=$CFLAGS_SAVE
859 fi
860
861 if test $build_ft2232_libftdi = yes ; then
862 # We assume: the package is preinstalled in the proper place
863 # these present as 2 libraries..
864 LIBS="$LIBS -lftdi -lusb"
865 #
866 # Try to build a small program.
867 AC_MSG_CHECKING([Build & Link with libftdi...])
868
869 LDFLAGS_SAVE=$LDFLAGS
870 CFLAGS_SAVE=$CFLAGS
871 _LDFLAGS=`eval echo $LDFLAGS`
872 _CFLAGS=`eval echo $CFLAGS`
873 LDFLAGS=$_LDFLAGS
874 CFLAGS=$_CFLAGS
875
876 AC_RUN_IFELSE([
877 #include <stdio.h>
878 #include <ftdi.h>
879
880 int
881 main( int argc, char **argv )
882 {
883 struct ftdi_context *p;
884 p = ftdi_new();
885 if( p != NULL ){
886 return 0;
887 } else {
888 fprintf( stderr, "calling ftdi_new() failed\n");
889 return 1;
890 }
891 }
892 ], [
893 AC_MSG_RESULT([Success])
894 ], [
895 AC_MSG_ERROR([Cannot build & run test program using libftdi])
896 ], [
897 AC_MSG_RESULT([Skipping as we are cross-compiling])
898 ])
899
900 # Restore the 'unexpanded ldflags'
901 LDFLAGS=$LDFLAGS_SAVE
902 CFLAGS=$CFLAGS_SAVE
903 fi
904
905 # check for usb.h when a driver will require it
906 if test $build_jlink = yes -o $build_vsllink = yes -o $build_usbprog = yes -o \
907 $build_rlink = yes -o $build_armjtagew = yes
908 then
909 AC_CHECK_HEADERS([usb.h],[],
910 [AC_MSG_ERROR([usb.h is required to build some OpenOCD driver(s)])])
911 fi
912
913 AM_CONDITIONAL(RELEASE, test $build_release = yes)
914 AM_CONDITIONAL(PARPORT, test $build_parport = yes)
915 AM_CONDITIONAL(DUMMY, test $build_dummy = yes)
916 AM_CONDITIONAL(GIVEIO, test x$parport_use_giveio = xyes)
917 AM_CONDITIONAL(EP93XX, test $build_ep93xx = yes)
918 AM_CONDITIONAL(ECOSBOARD, test $build_ecosboard = yes)
919 AM_CONDITIONAL(ZY1000, test $build_zy1000 = yes)
920 AM_CONDITIONAL(IOUTIL, test $build_ioutil = yes)
921 AM_CONDITIONAL(HTTPD, test $build_httpd = yes)
922 AM_CONDITIONAL(AT91RM9200, test $build_at91rm9200 = yes)
923 AM_CONDITIONAL(BITBANG, test $build_bitbang = yes)
924 AM_CONDITIONAL(FT2232_LIBFTDI, test $build_ft2232_libftdi = yes)
925 AM_CONDITIONAL(FT2232_DRIVER, test $build_ft2232_ftd2xx = yes -o $build_ft2232_libftdi = yes)
926 AM_CONDITIONAL(AMTJTAGACCEL, test $build_amtjtagaccel = yes)
927 AM_CONDITIONAL(GW16012, test $build_gw16012 = yes)
928 AM_CONDITIONAL(PRESTO_LIBFTDI, test $build_presto_libftdi = yes)
929 AM_CONDITIONAL(PRESTO_DRIVER, test $build_presto_ftd2xx = yes -o $build_presto_libftdi = yes)
930 AM_CONDITIONAL(USBPROG, test $build_usbprog = yes)
931 AM_CONDITIONAL(OOCD_TRACE, test $build_oocd_trace = yes)
932 AM_CONDITIONAL(JLINK, test $build_jlink = yes)
933 AM_CONDITIONAL(VSLLINK, test $build_vsllink = yes)
934 AM_CONDITIONAL(RLINK, test $build_rlink = yes)
935 AM_CONDITIONAL(ARMJTAGEW, test $build_armjtagew = yes)
936 AM_CONDITIONAL(IS_CYGWIN, test $is_cygwin = yes)
937 AM_CONDITIONAL(IS_MINGW, test $is_mingw = yes)
938 AM_CONDITIONAL(IS_WIN32, test $is_win32 = yes)
939 AM_CONDITIONAL(IS_DARWIN, test $is_darwin = yes)
940 AM_CONDITIONAL(BITQ, test $build_bitq = yes)
941
942 AM_CONDITIONAL(MINIDRIVER, test $build_minidriver = yes)
943 AM_CONDITIONAL(MINIDRIVER_DUMMY, test $build_minidriver_dummy = yes)
944
945 # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h?
946 AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
947 AC_COMPILE_IFELSE([
948 #define _GNU_SOURCE
949 #include <unistd.h>
950 #include <stdlib.h>
951 int main(int argc, char **argv) { char **ep = environ; }
952 ], [
953 AC_MSG_RESULT([yes])
954 has_environ=yes
955 ], [
956 AC_MSG_RESULT([no])
957
958 # Possibility #2: can environ be found in an available library?
959 AC_MSG_CHECKING([for extern environ])
960 AC_LINK_IFELSE([
961 extern char **environ;
962 int main(int argc, char **argv) { char **ep = environ; }
963 ], [
964 AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
965 has_environ=yes
966 ], [
967 has_environ=no
968 ])
969 AC_MSG_RESULT([${has_environ}])
970 ])
971
972 if test "${has_environ}" != "yes" ; then
973 AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
974 fi
975
976 AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
977
978 # set default gcc warnings
979 GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security"
980 if test "${gcc_wextra}" = yes; then
981 GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
982 GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
983 GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
984 GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
985 fi
986 if test "${gcc_werror}" = yes; then
987 GCC_WARNINGS="${GCC_WARNINGS} -Werror"
988 fi
989
990 # overide default gcc cflags
991 if test $gcc_warnings = yes; then
992 CFLAGS="$CFLAGS $GCC_WARNINGS"
993 fi
994
995 # Setup for compiling build tools
996 AC_MSG_CHECKING([for a C compiler for build tools])
997 if test $cross_compiling = yes; then
998 AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
999 CFLAGS_FOR_BUILD="-g -O2 $GCC_WARNINGS"
1000 else
1001 CC_FOR_BUILD=$CC
1002 CFLAGS_FOR_BUILD=$CFLAGS
1003 fi
1004
1005 AC_MSG_RESULT([$CC_FOR_BUILD])
1006 AC_SUBST(CC_FOR_BUILD)
1007 AC_SUBST(CFLAGS_FOR_BUILD)
1008
1009 AC_MSG_CHECKING([for suffix of executable build tools])
1010 if test $cross_compiling = yes; then
1011 cat >conftest.c <<\_______EOF
1012 int main ()
1013 {
1014 exit (0);
1015 }
1016 _______EOF
1017 for i in .exe ""; do
1018 compile="$CC_FOR_BUILD conftest.c -o conftest$i"
1019 if AC_TRY_EVAL(compile); then
1020 if (./conftest) 2>&AC_FD_CC; then
1021 EXEEXT_FOR_BUILD=$i
1022 break
1023 fi
1024 fi
1025 done
1026 rm -f conftest*
1027 if test "${EXEEXT_FOR_BUILD+set}" != set; then
1028 AC_MSG_ERROR([Cannot determine suffix of executable build tools])
1029 fi
1030 else
1031 EXEEXT_FOR_BUILD=$EXEEXT
1032 fi
1033 AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
1034 AC_SUBST(EXEEXT_FOR_BUILD)
1035
1036 AC_OUTPUT(dnl
1037 Makefile dnl
1038 src/Makefile dnl
1039 src/helper/Makefile dnl
1040 src/jtag/Makefile dnl
1041 src/xsvf/Makefile dnl
1042 src/svf/Makefile dnl
1043 src/target/Makefile dnl
1044 src/server/Makefile dnl
1045 src/flash/Makefile dnl
1046 src/pld/Makefile dnl
1047 doc/Makefile dnl
1048 )

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)