jtag: linuxgpiod: drop extra parenthesis
[openocd.git] / configure.ac
1 # SPDX-License-Identifier: GPL-2.0-or-later
2
3 AC_PREREQ([2.69])
4 AC_INIT([openocd], [0.12.0-rc1+dev],
5 [OpenOCD Mailing List <openocd-devel@lists.sourceforge.net>])
6 AC_CONFIG_SRCDIR([src/openocd.c])
7 AC_CONFIG_AUX_DIR([build-aux])
8
9 m4_include([config_subdir.m4])dnl
10
11 # check for makeinfo before calling AM_INIT_AUTOMAKE
12 AC_CHECK_PROG([MAKEINFO], [makeinfo], [makeinfo])
13 AS_IF([test "x$MAKEINFO" = "x"], [
14 MAKEINFO='echo makeinfo missing; true'
15 AC_MSG_WARN([Info documentation will not be built.])
16 ])
17 AC_SUBST([MAKEINFO])
18
19 AM_INIT_AUTOMAKE([-Wall -Wno-portability dist-bzip2 dist-zip subdir-objects])
20
21 AC_CONFIG_HEADERS([config.h])
22
23 AC_LANG([C])
24 AC_PROG_CC
25 # autoconf 2.70 obsoletes AC_PROG_CC_C99 and includes it in AC_PROG_CC
26 m4_version_prereq([2.70],[],[AC_PROG_CC_C99])
27 AM_PROG_CC_C_O
28 AC_PROG_RANLIB
29
30 # If macro PKG_PROG_PKG_CONFIG is not available, Autoconf generates a misleading error message,
31 # so check for existence first, and otherwise provide helpful advice.
32 m4_ifndef([PKG_PROG_PKG_CONFIG], [m4_fatal(m4_normalize([
33 Macro PKG_PROG_PKG_CONFIG is not available.
34 It is usually defined in file pkg.m4 provided by package pkg-config.]))])
35 PKG_PROG_PKG_CONFIG([0.23])
36
37 dnl disable checks for C++, Fortran and GNU Java Compiler
38 m4_defun([_LT_AC_LANG_CXX_CONFIG], [:])
39 m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
40 m4_defun([_LT_AC_LANG_GCJ_CONFIG], [:])
41 AC_DISABLE_SHARED
42 LT_INIT
43 AC_SUBST([LIBTOOL_DEPS])
44
45 dnl configure checks required for Jim files (these are obsolete w/ C99)
46 AC_C_CONST
47 AC_TYPE_LONG_LONG_INT
48
49 AC_SEARCH_LIBS([ioperm], [ioperm])
50 AC_SEARCH_LIBS([dlopen], [dl])
51 AC_SEARCH_LIBS([openpty], [util])
52
53 AC_CHECK_HEADERS([sys/socket.h])
54 AC_CHECK_HEADERS([elf.h])
55 AC_EGREP_HEADER(Elf64_Ehdr, [elf.h], [
56 AC_DEFINE([HAVE_ELF64], [1], [Define to 1 if the system has the type `Elf64_Ehdr'.])
57 ])
58 AC_CHECK_HEADERS([fcntl.h])
59 AC_CHECK_HEADERS([malloc.h])
60 AC_CHECK_HEADERS([netdb.h])
61 AC_CHECK_HEADERS([poll.h])
62 AC_CHECK_HEADERS([strings.h])
63 AC_CHECK_HEADERS([sys/ioctl.h])
64 AC_CHECK_HEADERS([sys/param.h])
65 AC_CHECK_HEADERS([sys/select.h])
66 AC_CHECK_HEADERS([sys/stat.h])
67 AC_CHECK_HEADERS([sys/sysctl.h])
68 AC_CHECK_HEADERS([sys/time.h])
69 AC_CHECK_HEADERS([sys/types.h])
70 AC_CHECK_HEADERS([unistd.h])
71 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/tcp.h], [], [], [dnl
72 #include <stdio.h>
73 #ifdef STDC_HEADERS
74 # include <stdlib.h>
75 # include <stddef.h>
76 #else
77 # ifdef HAVE_STDLIB_H
78 # include <stdlib.h>
79 # endif
80 #endif
81 #ifdef HAVE_SYS_SOCKET_H
82 # include <sys/socket.h>
83 #endif
84 ])
85
86 AC_HEADER_ASSERT
87 AC_HEADER_STDBOOL
88
89 AC_C_BIGENDIAN
90
91 AC_CHECK_FUNCS([strndup])
92 AC_CHECK_FUNCS([strnlen])
93 AC_CHECK_FUNCS([gettimeofday])
94 AC_CHECK_FUNCS([usleep])
95 AC_CHECK_FUNCS([realpath])
96
97 # guess-rev.sh only exists in the repository, not in the released archives
98 AC_MSG_CHECKING([whether to build a release])
99 AS_IF([test -x "$srcdir/guess-rev.sh"], [
100 build_release=no
101 ], [
102 build_release=yes
103 ])
104 AC_MSG_RESULT([$build_release])
105
106 # Adapter drivers
107 # 1st column -- configure option
108 # 2nd column -- description
109 # 3rd column -- symbol used for both config.h and automake
110 m4_define([ADAPTER_ARG], [m4_argn([1], $1)])
111 m4_define([ADAPTER_DESC], [m4_argn([2], $1)])
112 m4_define([ADAPTER_SYM], [m4_argn([3], $1)])
113 m4_define([ADAPTER_VAR], [enable_[]ADAPTER_ARG($1)])
114 m4_define([ADAPTER_OPT], [m4_translit(ADAPTER_ARG($1), [_], [-])])
115
116 m4_define([USB1_ADAPTERS],
117 [[[ftdi], [MPSSE mode of FTDI based devices], [FTDI]],
118 [[stlink], [ST-Link Programmer], [HLADAPTER_STLINK]],
119 [[ti_icdi], [TI ICDI JTAG Programmer], [HLADAPTER_ICDI]],
120 [[ulink], [Keil ULINK JTAG Programmer], [ULINK]],
121 [[usb_blaster_2], [Altera USB-Blaster II Compatible], [USB_BLASTER_2]],
122 [[ft232r], [Bitbang mode of FT232R based devices], [FT232R]],
123 [[vsllink], [Versaloon-Link JTAG Programmer], [VSLLINK]],
124 [[xds110], [TI XDS110 Debug Probe], [XDS110]],
125 [[cmsis_dap_v2], [CMSIS-DAP v2 Compliant Debugger], [CMSIS_DAP_USB]],
126 [[osbdm], [OSBDM (JTAG only) Programmer], [OSBDM]],
127 [[opendous], [eStick/opendous JTAG Programmer], [OPENDOUS]],
128 [[armjtagew], [Olimex ARM-JTAG-EW Programmer], [ARMJTAGEW]],
129 [[rlink], [Raisonance RLink JTAG Programmer], [RLINK]],
130 [[usbprog], [USBProg JTAG Programmer], [USBPROG]],
131 [[esp_usb_jtag], [Espressif JTAG Programmer], [ESP_USB_JTAG]]])
132
133 m4_define([DEPRECATED_USB1_ADAPTERS],
134 [[[aice], [Andes JTAG Programmer (deprecated)], [AICE]]])
135
136 m4_define([HIDAPI_ADAPTERS],
137 [[[cmsis_dap], [CMSIS-DAP Compliant Debugger], [CMSIS_DAP_HID]],
138 [[nulink], [Nu-Link Programmer], [HLADAPTER_NULINK]]])
139
140 m4_define([HIDAPI_USB1_ADAPTERS],
141 [[[kitprog], [Cypress KitProg Programmer], [KITPROG]]])
142
143 m4_define([LIBFTDI_ADAPTERS],
144 [[[usb_blaster], [Altera USB-Blaster Compatible], [USB_BLASTER]],
145 [[presto], [ASIX Presto Adapter], [PRESTO]]])
146
147 m4_define([LIBFTDI_USB1_ADAPTERS],
148 [[[openjtag], [OpenJTAG Adapter], [OPENJTAG]]])
149
150 m4_define([LIBGPIOD_ADAPTERS],
151 [[[linuxgpiod], [Linux GPIO bitbang through libgpiod], [LINUXGPIOD]]])
152
153 m4_define([LIBJAYLINK_ADAPTERS],
154 [[[jlink], [SEGGER J-Link Programmer], [JLINK]]])
155
156 m4_define([PCIE_ADAPTERS],
157 [[[xlnx_pcie_xvc], [Xilinx XVC/PCIe], [XLNX_PCIE_XVC]]])
158
159 m4_define([SERIAL_PORT_ADAPTERS],
160 [[[buspirate], [Bus Pirate], [BUS_PIRATE]]])
161
162 m4_define([OPTIONAL_LIBRARIES],
163 [[[capstone], [Use Capstone disassembly framework], []]])
164
165 AC_ARG_ENABLE([doxygen-html],
166 AS_HELP_STRING([--disable-doxygen-html],
167 [Disable building Doxygen manual as HTML.]),
168 [doxygen_as_html=$enableval], [doxygen_as_html=yes])
169 AC_SUBST([doxygen_as_html])
170 AC_MSG_CHECKING([whether to build Doxygen as HTML])
171 AC_MSG_RESULT([$doxygen_as_html])
172
173 AC_ARG_ENABLE([doxygen-pdf],
174 AS_HELP_STRING([--enable-doxygen-pdf],
175 [Enable building Doxygen manual as PDF.]),
176 [doxygen_as_pdf=$enableval], [doxygen_as_pdf=no])
177 AC_SUBST([doxygen_as_pdf])
178 AC_MSG_CHECKING([whether to build Doxygen as PDF])
179 AC_MSG_RESULT([$doxygen_as_pdf])
180
181 AC_ARG_ENABLE([gccwarnings],
182 AS_HELP_STRING([--disable-gccwarnings], [Disable compiler warnings]),
183 [gcc_warnings=$enableval], [gcc_warnings=yes])
184
185 AC_ARG_ENABLE([wextra],
186 AS_HELP_STRING([--disable-wextra], [Disable extra compiler warnings]),
187 [gcc_wextra=$enableval], [gcc_wextra=$gcc_warnings])
188
189 AC_ARG_ENABLE([werror],
190 AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
191 [gcc_werror=$enableval], [gcc_werror=$gcc_warnings])
192
193 # set default verbose options, overridden by following options
194 debug_usb_io=no
195 debug_usb_comms=no
196
197 AC_ARG_ENABLE([verbose],
198 AS_HELP_STRING([--enable-verbose],
199 [Enable verbose JTAG I/O messages (for debugging).]),
200 [
201 debug_usb_io=$enableval
202 debug_usb_comms=$enableval
203 ], [])
204
205 AC_ARG_ENABLE([verbose_usb_io],
206 AS_HELP_STRING([--enable-verbose-usb-io],
207 [Enable verbose USB I/O messages (for debugging)]),
208 [debug_usb_io=$enableval], [])
209
210 AC_ARG_ENABLE([verbose_usb_comms],
211 AS_HELP_STRING([--enable-verbose-usb-comms],
212 [Enable verbose USB communication messages (for debugging)]),
213 [debug_usb_comms=$enableval], [])
214
215 AC_MSG_CHECKING([whether to enable verbose USB I/O messages]);
216 AC_MSG_RESULT([$debug_usb_io])
217 AS_IF([test "x$debug_usb_io" = "xyes"], [
218 AC_DEFINE([_DEBUG_USB_IO_],[1], [Print verbose USB I/O messages])
219 ])
220
221 AC_MSG_CHECKING([whether to enable verbose USB communication messages]);
222 AC_MSG_RESULT([$debug_usb_comms])
223 AS_IF([test "x$debug_usb_comms" = "xyes"], [
224 AC_DEFINE([_DEBUG_USB_COMMS_],[1], [Print verbose USB communication messages])
225 ])
226
227 debug_malloc=no
228 AC_ARG_ENABLE([malloc_logging],
229 AS_HELP_STRING([--enable-malloc-logging],
230 [Include free space in logging messages (requires malloc.h).]),
231 [debug_malloc=$enableval], [])
232
233 AC_MSG_CHECKING([whether to enable malloc free space logging]);
234 AC_MSG_RESULT([$debug_malloc])
235 AS_IF([test "x$debug_malloc" = "xyes"], [
236 AC_DEFINE([_DEBUG_FREE_SPACE_],[1], [Include malloc free space in logging])
237 ])
238
239 AC_ARG_ENABLE([dummy],
240 AS_HELP_STRING([--enable-dummy], [Enable building the dummy port driver]),
241 [build_dummy=$enableval], [build_dummy=no])
242
243 AC_ARG_ENABLE([rshim],
244 AS_HELP_STRING([--enable-rshim], [Enable building the rshim driver]),
245 [build_rshim=$enableval], [build_rshim=no])
246
247 m4_define([AC_ARG_ADAPTERS], [
248 m4_foreach([adapter], [$1],
249 [AC_ARG_ENABLE(ADAPTER_OPT([adapter]),
250 AS_HELP_STRING([--enable-ADAPTER_OPT([adapter])],
251 [Enable building support for the ]ADAPTER_DESC([adapter])[ (default is $2)]),
252 [], [ADAPTER_VAR([adapter])=$2])
253 ])
254 ])
255
256 AC_ARG_ADAPTERS([
257 USB1_ADAPTERS,
258 HIDAPI_ADAPTERS,
259 HIDAPI_USB1_ADAPTERS,
260 LIBFTDI_ADAPTERS,
261 LIBFTDI_USB1_ADAPTERS
262 LIBGPIOD_ADAPTERS,
263 SERIAL_PORT_ADAPTERS,
264 LIBJAYLINK_ADAPTERS
265 ],[auto])
266
267 AC_ARG_ADAPTERS([DEPRECATED_USB1_ADAPTERS],[no])
268
269 AC_ARG_ENABLE([parport],
270 AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
271 [build_parport=$enableval], [build_parport=no])
272
273 AC_ARG_ENABLE([parport_ppdev],
274 AS_HELP_STRING([--disable-parport-ppdev],
275 [Disable use of ppdev (/dev/parportN) for parport (for x86 only)]),
276 [parport_use_ppdev=$enableval], [parport_use_ppdev=yes])
277
278 AC_ARG_ENABLE([parport_giveio],
279 AS_HELP_STRING([--enable-parport-giveio],
280 [Enable use of giveio for parport (for CygWin only)]),
281 [parport_use_giveio=$enableval], [parport_use_giveio=])
282
283 AC_ARG_ENABLE([jtag_vpi],
284 AS_HELP_STRING([--enable-jtag_vpi], [Enable building support for JTAG VPI]),
285 [build_jtag_vpi=$enableval], [build_jtag_vpi=no])
286
287 AC_ARG_ENABLE([vdebug],
288 AS_HELP_STRING([--enable-vdebug], [Enable building support for Cadence Virtual Debug Interface]),
289 [build_vdebug=$enableval], [build_vdebug=no])
290
291 AC_ARG_ENABLE([jtag_dpi],
292 AS_HELP_STRING([--enable-jtag_dpi], [Enable building support for JTAG DPI]),
293 [build_jtag_dpi=$enableval], [build_jtag_dpi=no])
294
295 AC_ARG_ENABLE([amtjtagaccel],
296 AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
297 [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
298
299 AS_CASE(["${host_cpu}"],
300 [arm*|aarch64], [
301 AC_ARG_ENABLE([bcm2835gpio],
302 AS_HELP_STRING([--enable-bcm2835gpio], [Enable building support for bitbanging on BCM2835 (as found in Raspberry Pi)]),
303 [build_bcm2835gpio=$enableval], [build_bcm2835gpio=no])
304 AC_ARG_ENABLE([imx_gpio],
305 AS_HELP_STRING([--enable-imx_gpio], [Enable building support for bitbanging on NXP IMX processors]),
306 [build_imx_gpio=$enableval], [build_imx_gpio=no])
307 AC_ARG_ENABLE([am335xgpio],
308 AS_HELP_STRING([--enable-am335xgpio], [Enable building support for bitbanging on AM335x (as found in Beaglebones)]),
309 [build_am335xgpio=$enableval], [build_am335xgpio=no])
310 ],
311 [
312 build_bcm2835gpio=no
313 build_imx_gpio=no
314 build_am335xgpio=no
315 ])
316
317 AS_CASE(["${host_cpu}"],
318 [arm*], [
319 AC_ARG_ENABLE([ep93xx],
320 AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]),
321 [build_ep93xx=$enableval], [build_ep93xx=no])
322
323 AC_ARG_ENABLE([at91rm9200],
324 AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
325 [build_at91rm9200=$enableval], [build_at91rm9200=no])
326 ],
327 [
328 build_ep93xx=no
329 build_at91rm9200=no
330 ])
331
332 AC_ARG_ENABLE([gw16012],
333 AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
334 [build_gw16012=$enableval], [build_gw16012=no])
335
336 AC_ARG_ENABLE([sysfsgpio],
337 AS_HELP_STRING([--enable-sysfsgpio], [Enable building support for programming driven via sysfs gpios.]),
338 [build_sysfsgpio=$enableval], [build_sysfsgpio=no])
339
340 AC_ARG_ENABLE([xlnx_pcie_xvc],
341 AS_HELP_STRING([--enable-xlnx-pcie-xvc], [Enable building support for Xilinx XVC/PCIe.]),
342 [build_xlnx_pcie_xvc=$enableval], [build_xlnx_pcie_xvc=no])
343
344 AS_CASE([$host_os],
345 [linux*], [],
346 [
347 AS_IF([test "x$build_sysfsgpio" = "xyes"], [
348 AC_MSG_ERROR([sysfsgpio is only available on linux])
349 ])
350
351 AS_IF([test "x$enable_linuxgpiod" = "xyes"], [
352 AC_MSG_ERROR([linuxgpiod is only available on linux])
353 ])
354
355 AS_IF([test "x$build_xlnx_pcie_xvc" = "xyes"], [
356 AC_MSG_ERROR([xlnx_pcie_xvc is only available on linux])
357 ])
358
359 AS_CASE([$host_os], [freebsd*], [],
360 [
361 AS_IF([test "x$build_rshim" = "xyes"], [
362 AC_MSG_ERROR([build_rshim is only available on linux or freebsd])
363 ])
364 ])
365 ])
366
367 AC_ARG_ENABLE([internal-jimtcl],
368 AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
369 [use_internal_jimtcl=$enableval], [use_internal_jimtcl=yes])
370
371 AC_ARG_ENABLE([jimtcl-maintainer],
372 AS_HELP_STRING([--enable-jimtcl-maintainer], [Enable maintainer mode when building internal jimtcl]),
373 [use_internal_jimtcl_maintainer=$enableval], [use_internal_jimtcl_maintainer=no])
374
375 AC_ARG_ENABLE([internal-libjaylink],
376 AS_HELP_STRING([--disable-internal-libjaylink],
377 [Disable building internal libjaylink]),
378 [use_internal_libjaylink=$enableval], [use_internal_libjaylink=yes])
379
380 AC_ARG_ENABLE([remote-bitbang],
381 AS_HELP_STRING([--enable-remote-bitbang], [Enable building support for the Remote Bitbang jtag driver]),
382 [build_remote_bitbang=$enableval], [build_remote_bitbang=no])
383
384 AS_CASE(["${host_cpu}"],
385 [i?86|x86*], [],
386 [
387 AS_IF([test "x$parport_use_ppdev" = "xno"], [
388 AC_MSG_WARN([--disable-parport-ppdev is not supported by the host CPU])
389 ])
390 parport_use_ppdev=yes
391 ])
392
393 AS_CASE([$host],
394 [*-cygwin*], [
395 is_win32=yes
396 parport_use_ppdev=no
397
398 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[return __MINGW32__;]])],
399 [is_mingw=yes],[is_mingw=no])
400 AS_IF([test "x$is_mingw" = "xyes"], [
401 AS_IF([test "x$parport_use_giveio" = "xno"], [
402 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
403 ])
404 parport_use_giveio=yes
405 is_cygwin=no
406 ], [
407 is_cygwin=yes
408 # sys/io.h needed under cygwin for parport access
409 AS_IF([test "x$build_parport" = "xyes"], [
410 AC_CHECK_HEADERS([sys/io.h],[],AC_MSG_ERROR([Please install the cygwin ioperm package]))
411 ])
412 ])
413 ],
414 [*-mingw* | *-msys*], [
415 is_mingw=yes
416 is_win32=yes
417 parport_use_ppdev=no
418
419 AS_IF([test "x$parport_use_giveio" = "xno"], [
420 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
421 ])
422 parport_use_giveio=yes
423
424 AS_IF([test "x$enable_buspirate" = "xyes"], [
425 AC_MSG_ERROR([buspirate currently not supported by MinGW32 hosts])
426 ])
427
428 # In case enable_buspirate=auto, make sure it will not be built.
429 enable_buspirate=no
430
431 AC_SUBST([HOST_CPPFLAGS], [-D__USE_MINGW_ANSI_STDIO])
432 ],
433 [*darwin*], [
434 is_darwin=yes
435
436 AS_IF([test "x$parport_use_giveio" = "xyes"], [
437 AC_MSG_WARN([--enable-parport-giveio cannot be used by Darwin hosts])
438 ])
439 parport_use_giveio=no
440 ],
441 [
442 AS_IF([test "x$parport_use_giveio" = "xyes"], [
443 AC_MSG_WARN([--enable-parport-giveio cannot be used by ]$host[ hosts])
444 ])
445 parport_use_giveio=no
446 ])
447
448 AS_IF([test "x$is_cygwin" = "xyes"], [
449 AC_DEFINE([IS_CYGWIN], [1], [1 if building for Cygwin.])
450 ], [
451 AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
452 ])
453
454 AS_IF([test "x$is_mingw" = "xyes"], [
455 AC_DEFINE([IS_MINGW], [1], [1 if building for Mingw.])
456 ], [
457 AC_DEFINE([IS_MINGW], [0], [0 if not building for Mingw.])
458 ])
459
460 AS_IF([test "x$is_win32" = "xyes"], [
461 AC_DEFINE([IS_WIN32], [1], [1 if building for Win32.])
462 ], [
463 AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
464 ])
465
466 AS_IF([test "x$is_darwin" = "xyes"], [
467 AC_DEFINE([IS_DARWIN], [1], [1 if building for Darwin.])
468 ], [
469 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
470 ])
471
472 AS_IF([test "x$build_parport" = "xyes"], [
473 build_bitbang=yes
474 AC_DEFINE([BUILD_PARPORT], [1], [1 if you want parport.])
475 ], [
476 AC_DEFINE([BUILD_PARPORT], [0], [0 if you don't want parport.])
477 ])
478
479 AS_IF([test "x$build_rshim" = "xyes"], [
480 AC_DEFINE([BUILD_RSHIM], [1], [1 if you want to debug BlueField SoC via rshim.])
481 ], [
482 AC_DEFINE([BUILD_RSHIM], [0], [0 if you don't want to debug BlueField SoC via rshim.])
483 ])
484
485 AS_IF([test "x$build_dummy" = "xyes"], [
486 build_bitbang=yes
487 AC_DEFINE([BUILD_DUMMY], [1], [1 if you want dummy driver.])
488 ], [
489 AC_DEFINE([BUILD_DUMMY], [0], [0 if you don't want dummy driver.])
490 ])
491
492 AS_IF([test "x$build_ep93xx" = "xyes"], [
493 build_bitbang=yes
494 AC_DEFINE([BUILD_EP93XX], [1], [1 if you want ep93xx.])
495 ], [
496 AC_DEFINE([BUILD_EP93XX], [0], [0 if you don't want ep93xx.])
497 ])
498
499 AS_IF([test "x$build_at91rm9200" = "xyes"], [
500 build_bitbang=yes
501 AC_DEFINE([BUILD_AT91RM9200], [1], [1 if you want at91rm9200.])
502 ], [
503 AC_DEFINE([BUILD_AT91RM9200], [0], [0 if you don't want at91rm9200.])
504 ])
505
506 AS_IF([test "x$build_bcm2835gpio" = "xyes"], [
507 build_bitbang=yes
508 AC_DEFINE([BUILD_BCM2835GPIO], [1], [1 if you want bcm2835gpio.])
509 ], [
510 AC_DEFINE([BUILD_BCM2835GPIO], [0], [0 if you don't want bcm2835gpio.])
511 ])
512
513 AS_IF([test "x$build_imx_gpio" = "xyes"], [
514 build_bitbang=yes
515 AC_DEFINE([BUILD_IMX_GPIO], [1], [1 if you want imx_gpio.])
516 ], [
517 AC_DEFINE([BUILD_IMX_GPIO], [0], [0 if you don't want imx_gpio.])
518 ])
519
520 AS_IF([test "x$build_am335xgpio" = "xyes"], [
521 build_bitbang=yes
522 AC_DEFINE([BUILD_AM335XGPIO], [1], [1 if you want am335xgpio.])
523 ], [
524 AC_DEFINE([BUILD_AM335XGPIO], [0], [0 if you don't want am335xgpio.])
525 ])
526
527 AS_IF([test "x$parport_use_ppdev" = "xyes"], [
528 AC_DEFINE([PARPORT_USE_PPDEV], [1], [1 if you want parport to use ppdev.])
529 ], [
530 AC_DEFINE([PARPORT_USE_PPDEV], [0], [0 if you don't want parport to use ppdev.])
531 ])
532
533 AS_IF([test "x$parport_use_giveio" = "xyes"], [
534 AC_DEFINE([PARPORT_USE_GIVEIO], [1], [1 if you want parport to use giveio.])
535 ], [
536 AC_DEFINE([PARPORT_USE_GIVEIO], [0], [0 if you don't want parport to use giveio.])
537 ])
538
539 AS_IF([test "x$build_jtag_vpi" = "xyes"], [
540 AC_DEFINE([BUILD_JTAG_VPI], [1], [1 if you want JTAG VPI.])
541 ], [
542 AC_DEFINE([BUILD_JTAG_VPI], [0], [0 if you don't want JTAG VPI.])
543 ])
544
545 AS_IF([test "x$build_vdebug" = "xyes"], [
546 AC_DEFINE([BUILD_VDEBUG], [1], [1 if you want Cadence vdebug interface.])
547 ], [
548 AC_DEFINE([BUILD_VDEBUG], [0], [0 if you don't want Cadence vdebug interface.])
549 ])
550
551 AS_IF([test "x$build_jtag_dpi" = "xyes"], [
552 AC_DEFINE([BUILD_JTAG_DPI], [1], [1 if you want JTAG DPI.])
553 ], [
554 AC_DEFINE([BUILD_JTAG_DPI], [0], [0 if you don't want JTAG DPI.])
555 ])
556
557
558 AS_IF([test "x$build_amtjtagaccel" = "xyes"], [
559 AC_DEFINE([BUILD_AMTJTAGACCEL], [1], [1 if you want the Amontec JTAG-Accelerator driver.])
560 ], [
561 AC_DEFINE([BUILD_AMTJTAGACCEL], [0], [0 if you don't want the Amontec JTAG-Accelerator driver.])
562 ])
563
564 AS_IF([test "x$build_gw16012" = "xyes"], [
565 AC_DEFINE([BUILD_GW16012], [1], [1 if you want the Gateworks GW16012 driver.])
566 ], [
567 AC_DEFINE([BUILD_GW16012], [0], [0 if you don't want the Gateworks GW16012 driver.])
568 ])
569
570 AS_IF([test "x$enable_buspirate" != "xno"], [
571 AC_DEFINE([BUILD_BUSPIRATE], [1], [1 if you want the Buspirate JTAG driver.])
572 ], [
573 AC_DEFINE([BUILD_BUSPIRATE], [0], [0 if you don't want the Buspirate JTAG driver.])
574 ])
575
576 AS_IF([test "x$use_internal_jimtcl" = "xyes"], [
577 AS_IF([test -f "$srcdir/jimtcl/configure.ac"], [
578 AS_IF([test "x$use_internal_jimtcl_maintainer" = "xyes"], [
579 jimtcl_config_options="--disable-install-jim --with-ext=json --maintainer"
580 ], [
581 jimtcl_config_options="--disable-install-jim --with-ext=json"
582 ])
583 AX_CONFIG_SUBDIR_OPTION([jimtcl], [$jimtcl_config_options])
584 ], [
585 AC_MSG_ERROR([jimtcl not found, run git submodule init and git submodule update.])
586 ])
587 ])
588
589 AS_IF([test "x$build_remote_bitbang" = "xyes"], [
590 build_bitbang=yes
591 AC_DEFINE([BUILD_REMOTE_BITBANG], [1], [1 if you want the Remote Bitbang JTAG driver.])
592 ], [
593 AC_DEFINE([BUILD_REMOTE_BITBANG], [0], [0 if you don't want the Remote Bitbang JTAG driver.])
594 ])
595
596 AS_IF([test "x$build_sysfsgpio" = "xyes"], [
597 build_bitbang=yes
598 AC_DEFINE([BUILD_SYSFSGPIO], [1], [1 if you want the SysfsGPIO driver.])
599 ], [
600 AC_DEFINE([BUILD_SYSFSGPIO], [0], [0 if you don't want SysfsGPIO driver.])
601 ])
602
603 AS_IF([test "x$build_xlnx_pcie_xvc" = "xyes"], [
604 build_xlnx_pcie_xvc=yes
605 AC_DEFINE([BUILD_XLNX_PCIE_XVC], [1], [1 if you want the Xilinx XVC/PCIe driver.])
606 ], [
607 AC_DEFINE([BUILD_XLNX_PCIE_XVC], [0], [0 if you don't want Xilinx XVC/PCIe driver.])
608 ])
609
610 PKG_CHECK_MODULES([LIBUSB1], [libusb-1.0], [
611 use_libusb1=yes
612 AC_DEFINE([HAVE_LIBUSB1], [1], [Define if you have libusb-1.x])
613 LIBUSB1_CFLAGS=`echo $LIBUSB1_CFLAGS | sed 's/-I/-isystem /'`
614 AC_MSG_NOTICE([libusb-1.0 header bug workaround: LIBUSB1_CFLAGS changed to "$LIBUSB1_CFLAGS"])
615 PKG_CHECK_EXISTS([libusb-1.0 >= 1.0.16],
616 [AC_DEFINE([HAVE_LIBUSB_GET_PORT_NUMBERS], [1], [Define if your libusb has libusb_get_port_numbers()])])
617 ], [
618 use_libusb1=no
619 AC_MSG_WARN([libusb-1.x not found, trying legacy libusb-0.1 as a fallback; consider installing libusb-1.x instead])
620 ])
621
622 AC_ARG_WITH([capstone],
623 AS_HELP_STRING([--with-capstone], [Use Capstone disassembly library (default=auto)])
624 , [
625 enable_capstone=$withval
626 ], [
627 enable_capstone=auto
628 ])
629
630 AS_IF([test "x$enable_capstone" != xno], [
631 PKG_CHECK_MODULES([CAPSTONE], [capstone], [
632 AC_DEFINE([HAVE_CAPSTONE], [1], [1 if you have Capstone disassembly framework.])
633 ], [
634 AC_DEFINE([HAVE_CAPSTONE], [0], [0 if you don't have Capstone disassembly framework.])
635 if test "x$enable_capstone" != xauto; then
636 AC_MSG_ERROR([--with-capstone was given, but test for Capstone failed])
637 fi
638 enable_capstone=no
639 ])
640 ])
641
642 for hidapi_lib in hidapi hidapi-hidraw hidapi-libusb; do
643 PKG_CHECK_MODULES([HIDAPI],[$hidapi_lib],[
644 use_hidapi=yes
645 break
646 ],[
647 use_hidapi=no
648 ])
649 done
650
651 PKG_CHECK_MODULES([LIBFTDI], [libftdi1], [
652 use_libftdi=yes
653 PKG_CHECK_EXISTS([libftdi1 >= 1.5],
654 [AC_DEFINE([HAVE_LIBFTDI_TCIOFLUSH], [1], [Define if your libftdi has ftdi_tcioflush()])])
655 ], [
656 PKG_CHECK_MODULES([LIBFTDI], [libftdi], [use_libftdi=yes], [use_libftdi=no])
657 ])
658
659 PKG_CHECK_MODULES([LIBGPIOD], [libgpiod], [use_libgpiod=yes], [use_libgpiod=no])
660
661 PKG_CHECK_MODULES([LIBJAYLINK], [libjaylink >= 0.2],
662 [use_libjaylink=yes], [use_libjaylink=no])
663
664 m4_define([PROCESS_ADAPTERS], [
665 m4_foreach([adapter], [$1], [
666 AS_IF([test $2], [
667 AS_IF([test "x$ADAPTER_VAR([adapter])" != "xno"], [
668 AC_DEFINE([BUILD_]ADAPTER_SYM([adapter]), [1], [1 if you want the ]ADAPTER_DESC([adapter]).)
669 ], [
670 AC_DEFINE([BUILD_]ADAPTER_SYM([adapter]), [0], [0 if you do not want the ]ADAPTER_DESC([adapter]).)
671 ])
672 ], [
673 AS_IF([test "x$ADAPTER_VAR([adapter])" = "xyes"], [
674 AC_MSG_ERROR([$3 is required for the ADAPTER_DESC([adapter])])
675 ])
676 ADAPTER_VAR([adapter])=no
677 AC_DEFINE([BUILD_]ADAPTER_SYM([adapter]), [0], [0 if you do not want the ]ADAPTER_DESC([adapter]).)
678 ])
679 AM_CONDITIONAL(ADAPTER_SYM([adapter]), [test "x$ADAPTER_VAR([adapter])" != "xno"])
680 ])
681 ])
682
683 PROCESS_ADAPTERS([USB1_ADAPTERS], ["x$use_libusb1" = "xyes"], [libusb-1.x])
684 PROCESS_ADAPTERS([DEPRECATED_USB1_ADAPTERS], ["x$use_libusb1" = "xyes"], [libusb-1.x])
685 PROCESS_ADAPTERS([HIDAPI_ADAPTERS], ["x$use_hidapi" = "xyes"], [hidapi])
686 PROCESS_ADAPTERS([HIDAPI_USB1_ADAPTERS], ["x$use_hidapi" = "xyes" -a "x$use_libusb1" = "xyes"], [hidapi and libusb-1.x])
687 PROCESS_ADAPTERS([LIBFTDI_ADAPTERS], ["x$use_libftdi" = "xyes"], [libftdi])
688 PROCESS_ADAPTERS([LIBFTDI_USB1_ADAPTERS], ["x$use_libftdi" = "xyes" -a "x$use_libusb1" = "xyes"], [libftdi and libusb-1.x])
689 PROCESS_ADAPTERS([LIBGPIOD_ADAPTERS], ["x$use_libgpiod" = "xyes"], [libgpiod])
690 PROCESS_ADAPTERS([LIBJAYLINK_ADAPTERS], ["x$use_internal_libjaylink" = "xyes" -o "x$use_libjaylink" = "xyes"], [libjaylink-0.2])
691
692 AS_IF([test "x$enable_linuxgpiod" != "xno"], [
693 build_bitbang=yes
694 ])
695
696 AS_IF([test "x$enable_stlink" != "xno" -o "x$enable_ti_icdi" != "xno" -o "x$enable_nulink" != "xno"], [
697 AC_DEFINE([BUILD_HLADAPTER], [1], [1 if you want the High Level JTAG driver.])
698 AM_CONDITIONAL([HLADAPTER], [true])
699 ], [
700 AC_DEFINE([BUILD_HLADAPTER], [0], [0 if you want the High Level JTAG driver.])
701 AM_CONDITIONAL([HLADAPTER], [false])
702 ])
703 AM_CONDITIONAL([HLADAPTER_STLINK], [test "x$enable_stlink" != "xno"])
704 AM_CONDITIONAL([HLADAPTER_ICDI], [test "x$enable_ti_icdi" != "xno"])
705 AM_CONDITIONAL([HLADAPTER_NULINK], [test "x$enable_nulink" != "xno"])
706
707 AS_IF([test "x$enable_jlink" != "xno"], [
708 AS_IF([test "x$use_internal_libjaylink" = "xyes"], [
709 AS_IF([test -f "$srcdir/src/jtag/drivers/libjaylink/configure.ac"], [
710 AX_CONFIG_SUBDIR_OPTION([src/jtag/drivers/libjaylink],
711 [--enable-subproject-build])
712 ], [
713 AC_MSG_ERROR([Internal libjaylink not found, run either 'git submodule init' and 'git submodule update' or disable internal libjaylink with --disable-internal-libjaylink.])
714 ])
715 ])
716 ])
717
718 # Presto needs the bitq module
719 AS_IF([test "x$enable_presto" != "xno"], [
720 build_bitq=yes
721 ])
722
723 # esp-usb-jtag also needs the bitq module
724 AS_IF([test "x$enable_esp_usb_jtag" != "xno"], [
725 build_bitq=yes
726 ])
727
728 AM_CONDITIONAL([RELEASE], [test "x$build_release" = "xyes"])
729 AM_CONDITIONAL([PARPORT], [test "x$build_parport" = "xyes"])
730 AM_CONDITIONAL([DUMMY], [test "x$build_dummy" = "xyes"])
731 AM_CONDITIONAL([GIVEIO], [test "x$parport_use_giveio" = "xyes"])
732 AM_CONDITIONAL([EP93XX], [test "x$build_ep93xx" = "xyes"])
733 AM_CONDITIONAL([AT91RM9200], [test "x$build_at91rm9200" = "xyes"])
734 AM_CONDITIONAL([BCM2835GPIO], [test "x$build_bcm2835gpio" = "xyes"])
735 AM_CONDITIONAL([IMX_GPIO], [test "x$build_imx_gpio" = "xyes"])
736 AM_CONDITIONAL([AM335XGPIO], [test "x$build_am335xgpio" = "xyes"])
737 AM_CONDITIONAL([BITBANG], [test "x$build_bitbang" = "xyes"])
738 AM_CONDITIONAL([JTAG_VPI], [test "x$build_jtag_vpi" = "xyes"])
739 AM_CONDITIONAL([VDEBUG], [test "x$build_vdebug" = "xyes"])
740 AM_CONDITIONAL([JTAG_DPI], [test "x$build_jtag_dpi" = "xyes"])
741 AM_CONDITIONAL([USB_BLASTER_DRIVER], [test "x$enable_usb_blaster" != "xno" -o "x$enable_usb_blaster_2" != "xno"])
742 AM_CONDITIONAL([AMTJTAGACCEL], [test "x$build_amtjtagaccel" = "xyes"])
743 AM_CONDITIONAL([GW16012], [test "x$build_gw16012" = "xyes"])
744 AM_CONDITIONAL([REMOTE_BITBANG], [test "x$build_remote_bitbang" = "xyes"])
745 AM_CONDITIONAL([BUSPIRATE], [test "x$enable_buspirate" != "xno"])
746 AM_CONDITIONAL([SYSFSGPIO], [test "x$build_sysfsgpio" = "xyes"])
747 AM_CONDITIONAL([XLNX_PCIE_XVC], [test "x$build_xlnx_pcie_xvc" = "xyes"])
748 AM_CONDITIONAL([USE_LIBUSB1], [test "x$use_libusb1" = "xyes"])
749 AM_CONDITIONAL([IS_CYGWIN], [test "x$is_cygwin" = "xyes"])
750 AM_CONDITIONAL([IS_MINGW], [test "x$is_mingw" = "xyes"])
751 AM_CONDITIONAL([IS_WIN32], [test "x$is_win32" = "xyes"])
752 AM_CONDITIONAL([IS_DARWIN], [test "x$is_darwin" = "xyes"])
753 AM_CONDITIONAL([BITQ], [test "x$build_bitq" = "xyes"])
754 AM_CONDITIONAL([USE_LIBFTDI], [test "x$use_libftdi" = "xyes"])
755 AM_CONDITIONAL([USE_LIBGPIOD], [test "x$use_libgpiod" = "xyes"])
756 AM_CONDITIONAL([USE_HIDAPI], [test "x$use_hidapi" = "xyes"])
757 AM_CONDITIONAL([USE_LIBJAYLINK], [test "x$use_libjaylink" = "xyes"])
758 AM_CONDITIONAL([RSHIM], [test "x$build_rshim" = "xyes"])
759 AM_CONDITIONAL([HAVE_CAPSTONE], [test "x$enable_capstone" != "xno"])
760
761 AM_CONDITIONAL([INTERNAL_JIMTCL], [test "x$use_internal_jimtcl" = "xyes"])
762 AM_CONDITIONAL([INTERNAL_LIBJAYLINK], [test "x$use_internal_libjaylink" = "xyes"])
763
764 # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h?
765 AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
766 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
767 #define _GNU_SOURCE
768 #include <unistd.h>
769 #include <stdlib.h>
770 ]], [[char **ep = environ;]]
771 )], [
772 AC_MSG_RESULT([yes])
773 has_environ=yes
774 ], [
775 AC_MSG_RESULT([no])
776
777 # Possibility #2: can environ be found in an available library?
778 AC_MSG_CHECKING([for extern environ])
779 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
780 extern char **environ;
781 ]], [[char **ep = environ;]]
782 )], [
783 AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
784 has_environ=yes
785 ], [
786 has_environ=no
787 ])
788 AC_MSG_RESULT([${has_environ}])
789 ])
790
791 AS_IF([test "x${has_environ}" != "xyes" ], [
792 AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
793 ])
794
795 AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
796
797 # set default gcc warnings
798 GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security -Wshadow"
799 AS_IF([test "x${gcc_wextra}" = "xyes"], [
800 GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
801 GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
802 GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
803 GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
804 GCC_WARNINGS="${GCC_WARNINGS} -Wpointer-arith"
805 GCC_WARNINGS="${GCC_WARNINGS} -Wundef"
806 ])
807 AS_IF([test "x${gcc_werror}" = "xyes"], [
808 GCC_WARNINGS="${GCC_WARNINGS} -Werror"
809 ])
810
811 # override default gcc cflags
812 AS_IF([test "x$gcc_warnings" = "xyes"], [
813 AC_SUBST([GCC_WARNINGS], [$GCC_WARNINGS])
814 ])
815
816 AC_SUBST(EXTRA_DIST_NEWS, ["$(echo $srcdir/NEWS-*)"])
817
818 AC_CONFIG_FILES([
819 Makefile
820 ])
821 AC_OUTPUT
822
823 echo
824 echo
825 echo OpenOCD configuration summary
826 echo --------------------------------------------------
827 m4_foreach([adapter], [USB1_ADAPTERS,
828 DEPRECATED_USB1_ADAPTERS,
829 HIDAPI_ADAPTERS, HIDAPI_USB1_ADAPTERS, LIBFTDI_ADAPTERS,
830 LIBFTDI_USB1_ADAPTERS,
831 LIBGPIOD_ADAPTERS,
832 LIBJAYLINK_ADAPTERS, PCIE_ADAPTERS, SERIAL_PORT_ADAPTERS,
833 OPTIONAL_LIBRARIES],
834 [s=m4_format(["%-40s"], ADAPTER_DESC([adapter]))
835 AS_CASE([$ADAPTER_VAR([adapter])],
836 [auto], [
837 echo "$s"yes '(auto)'
838 ],
839 [yes], [
840 echo "$s"yes
841 ],
842 [no], [
843 echo "$s"no
844 ])
845 ])
846 echo

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)