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