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