Cleanup of config/includes.
[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
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([OPTIONAL_LIBRARIES],
152 [[[capstone], [Use Capstone disassembly framework], []]])
153
154 AC_ARG_ENABLE([doxygen-html],
155 AS_HELP_STRING([--disable-doxygen-html],
156 [Disable building Doxygen manual as HTML.]),
157 [doxygen_as_html=$enableval], [doxygen_as_html=yes])
158 AC_SUBST([doxygen_as_html])
159 AC_MSG_CHECKING([whether to build Doxygen as HTML])
160 AC_MSG_RESULT([$doxygen_as_html])
161
162 AC_ARG_ENABLE([doxygen-pdf],
163 AS_HELP_STRING([--enable-doxygen-pdf],
164 [Enable building Doxygen manual as PDF.]),
165 [doxygen_as_pdf=$enableval], [doxygen_as_pdf=no])
166 AC_SUBST([doxygen_as_pdf])
167 AC_MSG_CHECKING([whether to build Doxygen as PDF])
168 AC_MSG_RESULT([$doxygen_as_pdf])
169
170 AC_ARG_ENABLE([gccwarnings],
171 AS_HELP_STRING([--disable-gccwarnings], [Disable compiler warnings]),
172 [gcc_warnings=$enableval], [gcc_warnings=yes])
173
174 AC_ARG_ENABLE([wextra],
175 AS_HELP_STRING([--disable-wextra], [Disable extra compiler warnings]),
176 [gcc_wextra=$enableval], [gcc_wextra=$gcc_warnings])
177
178 AC_ARG_ENABLE([werror],
179 AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
180 [gcc_werror=$enableval], [gcc_werror=$gcc_warnings])
181
182 # set default verbose options, overridden by following options
183 debug_usb_io=no
184 debug_usb_comms=no
185
186 AC_ARG_ENABLE([verbose],
187 AS_HELP_STRING([--enable-verbose],
188 [Enable verbose JTAG I/O messages (for debugging).]),
189 [
190 debug_usb_io=$enableval
191 debug_usb_comms=$enableval
192 ], [])
193
194 AC_ARG_ENABLE([verbose_usb_io],
195 AS_HELP_STRING([--enable-verbose-usb-io],
196 [Enable verbose USB I/O messages (for debugging)]),
197 [debug_usb_io=$enableval], [])
198
199 AC_ARG_ENABLE([verbose_usb_comms],
200 AS_HELP_STRING([--enable-verbose-usb-comms],
201 [Enable verbose USB communication messages (for debugging)]),
202 [debug_usb_comms=$enableval], [])
203
204 AC_MSG_CHECKING([whether to enable verbose USB I/O messages]);
205 AC_MSG_RESULT([$debug_usb_io])
206 AS_IF([test "x$debug_usb_io" = "xyes"], [
207 AC_DEFINE([_DEBUG_USB_IO_],[1], [Print verbose USB I/O messages])
208 ])
209
210 AC_MSG_CHECKING([whether to enable verbose USB communication messages]);
211 AC_MSG_RESULT([$debug_usb_comms])
212 AS_IF([test "x$debug_usb_comms" = "xyes"], [
213 AC_DEFINE([_DEBUG_USB_COMMS_],[1], [Print verbose USB communication messages])
214 ])
215
216 debug_malloc=no
217 AC_ARG_ENABLE([malloc_logging],
218 AS_HELP_STRING([--enable-malloc-logging],
219 [Include free space in logging messages (requires malloc.h).]),
220 [debug_malloc=$enableval], [])
221
222 AC_MSG_CHECKING([whether to enable malloc free space logging]);
223 AC_MSG_RESULT([$debug_malloc])
224 AS_IF([test "x$debug_malloc" = "xyes"], [
225 AC_DEFINE([_DEBUG_FREE_SPACE_],[1], [Include malloc free space in logging])
226 ])
227
228 AC_ARG_ENABLE([dummy],
229 AS_HELP_STRING([--enable-dummy], [Enable building the dummy port driver]),
230 [build_dummy=$enableval], [build_dummy=no])
231
232 AC_ARG_ENABLE([rshim],
233 AS_HELP_STRING([--enable-rshim], [Enable building the rshim driver]),
234 [build_rshim=$enableval], [build_rshim=no])
235
236 m4_define([AC_ARG_ADAPTERS], [
237 m4_foreach([adapter], [$1],
238 [AC_ARG_ENABLE(ADAPTER_OPT([adapter]),
239 AS_HELP_STRING([--enable-ADAPTER_OPT([adapter])],
240 [Enable building support for the ]ADAPTER_DESC([adapter])[ (default is $2)]),
241 [], [ADAPTER_VAR([adapter])=$2])
242 ])
243 ])
244
245 AC_ARG_ADAPTERS([
246 USB1_ADAPTERS,
247 HIDAPI_ADAPTERS,
248 HIDAPI_USB1_ADAPTERS,
249 LIBFTDI_ADAPTERS,
250 LIBFTDI_USB1_ADAPTERS
251 LIBGPIOD_ADAPTERS,
252 LIBJAYLINK_ADAPTERS
253 ],[auto])
254
255 AC_ARG_ENABLE([parport],
256 AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
257 [build_parport=$enableval], [build_parport=no])
258
259 AC_ARG_ENABLE([parport_ppdev],
260 AS_HELP_STRING([--disable-parport-ppdev],
261 [Disable use of ppdev (/dev/parportN) for parport (for x86 only)]),
262 [parport_use_ppdev=$enableval], [parport_use_ppdev=yes])
263
264 AC_ARG_ENABLE([parport_giveio],
265 AS_HELP_STRING([--enable-parport-giveio],
266 [Enable use of giveio for parport (for CygWin only)]),
267 [parport_use_giveio=$enableval], [parport_use_giveio=])
268
269 AC_ARG_ENABLE([jtag_vpi],
270 AS_HELP_STRING([--enable-jtag_vpi], [Enable building support for JTAG VPI]),
271 [build_jtag_vpi=$enableval], [build_jtag_vpi=no])
272
273 AC_ARG_ENABLE([jtag_dpi],
274 AS_HELP_STRING([--enable-jtag_dpi], [Enable building support for JTAG DPI]),
275 [build_jtag_dpi=$enableval], [build_jtag_dpi=no])
276
277 AC_ARG_ENABLE([amtjtagaccel],
278 AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
279 [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
280
281 AS_CASE(["${host_cpu}"],
282 [arm*|aarch64], [
283 AC_ARG_ENABLE([bcm2835gpio],
284 AS_HELP_STRING([--enable-bcm2835gpio], [Enable building support for bitbanging on BCM2835 (as found in Raspberry Pi)]),
285 [build_bcm2835gpio=$enableval], [build_bcm2835gpio=no])
286 AC_ARG_ENABLE([imx_gpio],
287 AS_HELP_STRING([--enable-imx_gpio], [Enable building support for bitbanging on NXP IMX processors]),
288 [build_imx_gpio=$enableval], [build_imx_gpio=no])
289 ],
290 [
291 build_bcm2835gpio=no
292 build_imx_gpio=no
293 ])
294
295 AS_CASE(["${host_cpu}"],
296 [arm*], [
297 AC_ARG_ENABLE([ep93xx],
298 AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]),
299 [build_ep93xx=$enableval], [build_ep93xx=no])
300
301 AC_ARG_ENABLE([at91rm9200],
302 AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
303 [build_at91rm9200=$enableval], [build_at91rm9200=no])
304 ],
305 [
306 build_ep93xx=no
307 build_at91rm9200=no
308 ])
309
310 AC_ARG_ENABLE([gw16012],
311 AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
312 [build_gw16012=$enableval], [build_gw16012=no])
313
314 AC_ARG_ENABLE([buspirate],
315 AS_HELP_STRING([--enable-buspirate], [Enable building support for the Buspirate]),
316 [build_buspirate=$enableval], [build_buspirate=no])
317
318 AC_ARG_ENABLE([sysfsgpio],
319 AS_HELP_STRING([--enable-sysfsgpio], [Enable building support for programming driven via sysfs gpios.]),
320 [build_sysfsgpio=$enableval], [build_sysfsgpio=no])
321
322 AC_ARG_ENABLE([xlnx_pcie_xvc],
323 AS_HELP_STRING([--enable-xlnx-pcie-xvc], [Enable building support for Xilinx XVC/PCIe.]),
324 [build_xlnx_pcie_xvc=$enableval], [build_xlnx_pcie_xvc=no])
325
326 AS_CASE([$host_os],
327 [linux*], [],
328 [
329 AS_IF([test "x$build_sysfsgpio" = "xyes"], [
330 AC_MSG_ERROR([sysfsgpio is only available on linux])
331 ])
332
333 AS_IF([test "x$enable_linuxgpiod" = "xyes"], [
334 AC_MSG_ERROR([linuxgpiod is only available on linux])
335 ])
336
337 AS_IF([test "x$build_xlnx_pcie_xvc" = "xyes"], [
338 AC_MSG_ERROR([xlnx_pcie_xvc is only available on linux])
339 ])
340
341 AS_CASE([$host_os], [freebsd*], [],
342 [
343 AS_IF([test "x$build_rshim" = "xyes"], [
344 AC_MSG_ERROR([build_rshim is only available on linux or freebsd])
345 ])
346 ])
347 ])
348
349 AC_ARG_ENABLE([internal-jimtcl],
350 AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
351 [use_internal_jimtcl=$enableval], [use_internal_jimtcl=yes])
352
353 AC_ARG_ENABLE([internal-libjaylink],
354 AS_HELP_STRING([--disable-internal-libjaylink],
355 [Disable building internal libjaylink]),
356 [use_internal_libjaylink=$enableval], [use_internal_libjaylink=yes])
357
358 AC_ARG_ENABLE([remote-bitbang],
359 AS_HELP_STRING([--enable-remote-bitbang], [Enable building support for the Remote Bitbang jtag driver]),
360 [build_remote_bitbang=$enableval], [build_remote_bitbang=no])
361
362 AS_CASE(["${host_cpu}"],
363 [i?86|x86*], [],
364 [
365 AS_IF([test "x$parport_use_ppdev" = "xno"], [
366 AC_MSG_WARN([--disable-parport-ppdev is not supported by the host CPU])
367 ])
368 parport_use_ppdev=yes
369 ])
370
371 AS_CASE([$host],
372 [*-cygwin*], [
373 is_win32=yes
374 parport_use_ppdev=no
375
376 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[return __MINGW32__;]])],
377 [is_mingw=yes],[is_mingw=no])
378 AS_IF([test "x$is_mingw" = "xyes"], [
379 AS_IF([test "x$parport_use_giveio" = "xno"], [
380 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
381 ])
382 parport_use_giveio=yes
383 is_cygwin=no
384 ], [
385 is_cygwin=yes
386 # sys/io.h needed under cygwin for parport access
387 AS_IF([test "x$build_parport" = "xyes"], [
388 AC_CHECK_HEADERS([sys/io.h],[],AC_MSG_ERROR([Please install the cygwin ioperm package]))
389 ])
390 ])
391 ],
392 [*-mingw* | *-msys*], [
393 is_mingw=yes
394 is_win32=yes
395 parport_use_ppdev=no
396
397 AS_IF([test "x$parport_use_giveio" = "xno"], [
398 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
399 ])
400 parport_use_giveio=yes
401
402 AS_IF([test "x$build_buspirate" = "xyes"], [
403 AC_MSG_ERROR([buspirate currently not supported by MinGW32 hosts])
404 ])
405
406 AC_SUBST([HOST_CPPFLAGS], [-D__USE_MINGW_ANSI_STDIO])
407 ],
408 [*darwin*], [
409 is_darwin=yes
410
411 AS_IF([test "x$parport_use_giveio" = "xyes"], [
412 AC_MSG_WARN([--enable-parport-giveio cannot be used by Darwin hosts])
413 ])
414 parport_use_giveio=no
415 ],
416 [
417 AS_IF([test "x$parport_use_giveio" = "xyes"], [
418 AC_MSG_WARN([--enable-parport-giveio cannot be used by ]$host[ hosts])
419 ])
420 parport_use_giveio=no
421 ])
422
423 AS_IF([test "x$is_cygwin" = "xyes"], [
424 AC_DEFINE([IS_CYGWIN], [1], [1 if building for Cygwin.])
425 ], [
426 AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
427 ])
428
429 AS_IF([test "x$is_mingw" = "xyes"], [
430 AC_DEFINE([IS_MINGW], [1], [1 if building for Mingw.])
431 ], [
432 AC_DEFINE([IS_MINGW], [0], [0 if not building for Mingw.])
433 ])
434
435 AS_IF([test "x$is_win32" = "xyes"], [
436 AC_DEFINE([IS_WIN32], [1], [1 if building for Win32.])
437 ], [
438 AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
439 ])
440
441 AS_IF([test "x$is_darwin" = "xyes"], [
442 AC_DEFINE([IS_DARWIN], [1], [1 if building for Darwin.])
443 ], [
444 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
445 ])
446
447 AS_IF([test "x$build_parport" = "xyes"], [
448 build_bitbang=yes
449 AC_DEFINE([BUILD_PARPORT], [1], [1 if you want parport.])
450 ], [
451 AC_DEFINE([BUILD_PARPORT], [0], [0 if you don't want parport.])
452 ])
453
454 AS_IF([test "x$build_rshim" = "xyes"], [
455 AC_DEFINE([BUILD_RSHIM], [1], [1 if you want to debug BlueField SoC via rshim.])
456 ], [
457 AC_DEFINE([BUILD_RSHIM], [0], [0 if you don't want to debug BlueField SoC via rshim.])
458 ])
459
460 AS_IF([test "x$build_dummy" = "xyes"], [
461 build_bitbang=yes
462 AC_DEFINE([BUILD_DUMMY], [1], [1 if you want dummy driver.])
463 ], [
464 AC_DEFINE([BUILD_DUMMY], [0], [0 if you don't want dummy driver.])
465 ])
466
467 AS_IF([test "x$build_ep93xx" = "xyes"], [
468 build_bitbang=yes
469 AC_DEFINE([BUILD_EP93XX], [1], [1 if you want ep93xx.])
470 ], [
471 AC_DEFINE([BUILD_EP93XX], [0], [0 if you don't want ep93xx.])
472 ])
473
474 AS_IF([test "x$build_at91rm9200" = "xyes"], [
475 build_bitbang=yes
476 AC_DEFINE([BUILD_AT91RM9200], [1], [1 if you want at91rm9200.])
477 ], [
478 AC_DEFINE([BUILD_AT91RM9200], [0], [0 if you don't want at91rm9200.])
479 ])
480
481 AS_IF([test "x$build_bcm2835gpio" = "xyes"], [
482 build_bitbang=yes
483 AC_DEFINE([BUILD_BCM2835GPIO], [1], [1 if you want bcm2835gpio.])
484 ], [
485 AC_DEFINE([BUILD_BCM2835GPIO], [0], [0 if you don't want bcm2835gpio.])
486 ])
487
488 AS_IF([test "x$build_imx_gpio" = "xyes"], [
489 build_bitbang=yes
490 AC_DEFINE([BUILD_IMX_GPIO], [1], [1 if you want imx_gpio.])
491 ], [
492 AC_DEFINE([BUILD_IMX_GPIO], [0], [0 if you don't want imx_gpio.])
493 ])
494
495 AS_IF([test "x$parport_use_ppdev" = "xyes"], [
496 AC_DEFINE([PARPORT_USE_PPDEV], [1], [1 if you want parport to use ppdev.])
497 ], [
498 AC_DEFINE([PARPORT_USE_PPDEV], [0], [0 if you don't want parport to use ppdev.])
499 ])
500
501 AS_IF([test "x$parport_use_giveio" = "xyes"], [
502 AC_DEFINE([PARPORT_USE_GIVEIO], [1], [1 if you want parport to use giveio.])
503 ], [
504 AC_DEFINE([PARPORT_USE_GIVEIO], [0], [0 if you don't want parport to use giveio.])
505 ])
506
507 AS_IF([test "x$build_jtag_vpi" = "xyes"], [
508 AC_DEFINE([BUILD_JTAG_VPI], [1], [1 if you want JTAG VPI.])
509 ], [
510 AC_DEFINE([BUILD_JTAG_VPI], [0], [0 if you don't want JTAG VPI.])
511 ])
512
513 AS_IF([test "x$build_jtag_dpi" = "xyes"], [
514 AC_DEFINE([BUILD_JTAG_DPI], [1], [1 if you want JTAG DPI.])
515 ], [
516 AC_DEFINE([BUILD_JTAG_DPI], [0], [0 if you don't want JTAG DPI.])
517 ])
518
519
520 AS_IF([test "x$build_amtjtagaccel" = "xyes"], [
521 AC_DEFINE([BUILD_AMTJTAGACCEL], [1], [1 if you want the Amontec JTAG-Accelerator driver.])
522 ], [
523 AC_DEFINE([BUILD_AMTJTAGACCEL], [0], [0 if you don't want the Amontec JTAG-Accelerator driver.])
524 ])
525
526 AS_IF([test "x$build_gw16012" = "xyes"], [
527 AC_DEFINE([BUILD_GW16012], [1], [1 if you want the Gateworks GW16012 driver.])
528 ], [
529 AC_DEFINE([BUILD_GW16012], [0], [0 if you don't want the Gateworks GW16012 driver.])
530 ])
531
532 AS_IF([test "x$build_buspirate" = "xyes"], [
533 AC_DEFINE([BUILD_BUSPIRATE], [1], [1 if you want the Buspirate JTAG driver.])
534 ], [
535 AC_DEFINE([BUILD_BUSPIRATE], [0], [0 if you don't want the Buspirate JTAG driver.])
536 ])
537
538 AS_IF([test "x$use_internal_jimtcl" = "xyes"], [
539 AS_IF([test -f "$srcdir/jimtcl/configure.ac"], [
540 AX_CONFIG_SUBDIR_OPTION([jimtcl], [--disable-install-jim])
541 ], [
542 AC_MSG_ERROR([jimtcl not found, run git submodule init and git submodule update.])
543 ])
544 ])
545
546 AS_IF([test "x$build_remote_bitbang" = "xyes"], [
547 build_bitbang=yes
548 AC_DEFINE([BUILD_REMOTE_BITBANG], [1], [1 if you want the Remote Bitbang JTAG driver.])
549 ], [
550 AC_DEFINE([BUILD_REMOTE_BITBANG], [0], [0 if you don't want the Remote Bitbang JTAG driver.])
551 ])
552
553 AS_IF([test "x$build_sysfsgpio" = "xyes"], [
554 build_bitbang=yes
555 AC_DEFINE([BUILD_SYSFSGPIO], [1], [1 if you want the SysfsGPIO driver.])
556 ], [
557 AC_DEFINE([BUILD_SYSFSGPIO], [0], [0 if you don't want SysfsGPIO driver.])
558 ])
559
560 AS_IF([test "x$build_xlnx_pcie_xvc" = "xyes"], [
561 build_xlnx_pcie_xvc=yes
562 AC_DEFINE([BUILD_XLNX_PCIE_XVC], [1], [1 if you want the Xilinx XVC/PCIe driver.])
563 ], [
564 AC_DEFINE([BUILD_XLNX_PCIE_XVC], [0], [0 if you don't want Xilinx XVC/PCIe driver.])
565 ])
566
567 PKG_CHECK_MODULES([LIBUSB1], [libusb-1.0], [
568 use_libusb1=yes
569 AC_DEFINE([HAVE_LIBUSB1], [1], [Define if you have libusb-1.x])
570 PKG_CHECK_EXISTS([libusb-1.0 >= 1.0.9],
571 [AC_DEFINE([HAVE_LIBUSB_ERROR_NAME], [1], [Define if your libusb has libusb_error_name()])],
572 [AC_MSG_WARN([libusb-1.x older than 1.0.9 detected, consider updating])])
573 LIBUSB1_CFLAGS=`echo $LIBUSB1_CFLAGS | sed 's/-I/-isystem /'`
574 AC_MSG_NOTICE([libusb-1.0 header bug workaround: LIBUSB1_CFLAGS changed to "$LIBUSB1_CFLAGS"])
575 PKG_CHECK_EXISTS([libusb-1.0 >= 1.0.16],
576 [AC_DEFINE([HAVE_LIBUSB_GET_PORT_NUMBERS], [1], [Define if your libusb has libusb_get_port_numbers()])])
577 ], [
578 use_libusb1=no
579 AC_MSG_WARN([libusb-1.x not found, trying legacy libusb-0.1 as a fallback; consider installing libusb-1.x instead])
580 ])
581
582 AC_ARG_WITH([capstone],
583 AS_HELP_STRING([--with-capstone], [Use Capstone disassembly library (default=auto)])
584 , [
585 enable_capstone=$withval
586 ], [
587 enable_capstone=auto
588 ])
589
590 AS_IF([test "x$enable_capstone" != xno], [
591 PKG_CHECK_MODULES([CAPSTONE], [capstone], [
592 AC_DEFINE([HAVE_CAPSTONE], [1], [1 if you have Capstone disassembly framework.])
593 ], [
594 AC_DEFINE([HAVE_CAPSTONE], [0], [0 if you don't have Capstone disassembly framework.])
595 if test "x$enable_capstone" != xauto; then
596 AC_MSG_ERROR([--with-capstone was given, but test for Capstone failed])
597 fi
598 enable_capstone=no
599 ])
600 ])
601
602 for hidapi_lib in hidapi hidapi-hidraw hidapi-libusb; do
603 PKG_CHECK_MODULES([HIDAPI],[$hidapi_lib],[
604 use_hidapi=yes
605 break
606 ],[
607 use_hidapi=no
608 ])
609 done
610
611 PKG_CHECK_MODULES([LIBFTDI], [libftdi1], [
612 use_libftdi=yes
613 PKG_CHECK_EXISTS([libftdi1 >= 1.5],
614 [AC_DEFINE([HAVE_LIBFTDI_TCIOFLUSH], [1], [Define if your libftdi has ftdi_tcioflush()])])
615 ], [
616 PKG_CHECK_MODULES([LIBFTDI], [libftdi], [use_libftdi=yes], [use_libftdi=no])
617 ])
618
619 PKG_CHECK_MODULES([LIBGPIOD], [libgpiod], [use_libgpiod=yes], [use_libgpiod=no])
620
621 PKG_CHECK_MODULES([LIBJAYLINK], [libjaylink >= 0.2],
622 [use_libjaylink=yes], [use_libjaylink=no])
623
624 m4_define([PROCESS_ADAPTERS], [
625 m4_foreach([adapter], [$1], [
626 AS_IF([test $2], [
627 AS_IF([test "x$ADAPTER_VAR([adapter])" != "xno"], [
628 AC_DEFINE([BUILD_]ADAPTER_SYM([adapter]), [1], [1 if you want the ]ADAPTER_DESC([adapter]).)
629 ], [
630 AC_DEFINE([BUILD_]ADAPTER_SYM([adapter]), [0], [0 if you do not want the ]ADAPTER_DESC([adapter]).)
631 ])
632 ], [
633 AS_IF([test "x$ADAPTER_VAR([adapter])" = "xyes"], [
634 AC_MSG_ERROR([$3 is required for the ADAPTER_DESC([adapter])])
635 ])
636 ADAPTER_VAR([adapter])=no
637 ])
638 AM_CONDITIONAL(ADAPTER_SYM([adapter]), [test "x$ADAPTER_VAR([adapter])" != "xno"])
639 ])
640 ])
641
642 PROCESS_ADAPTERS([USB1_ADAPTERS], ["x$use_libusb1" = "xyes"], [libusb-1.x])
643 PROCESS_ADAPTERS([HIDAPI_ADAPTERS], ["x$use_hidapi" = "xyes"], [hidapi])
644 PROCESS_ADAPTERS([HIDAPI_USB1_ADAPTERS], ["x$use_hidapi" = "xyes" -a "x$use_libusb1" = "xyes"], [hidapi and libusb-1.x])
645 PROCESS_ADAPTERS([LIBFTDI_ADAPTERS], ["x$use_libftdi" = "xyes"], [libftdi])
646 PROCESS_ADAPTERS([LIBFTDI_USB1_ADAPTERS], ["x$use_libftdi" = "xyes" -a "x$use_libusb1" = "xyes"], [libftdi and libusb-1.x])
647 PROCESS_ADAPTERS([LIBGPIOD_ADAPTERS], ["x$use_libgpiod" = "xyes"], [libgpiod])
648 PROCESS_ADAPTERS([LIBJAYLINK_ADAPTERS], ["x$use_internal_libjaylink" = "xyes" -o "x$use_libjaylink" = "xyes"], [libjaylink-0.2])
649
650 AS_IF([test "x$enable_linuxgpiod" != "xno"], [
651 build_bitbang=yes
652 ])
653
654 AS_IF([test "x$enable_stlink" != "xno" -o "x$enable_ti_icdi" != "xno" -o "x$enable_nulink" != "xno"], [
655 AC_DEFINE([BUILD_HLADAPTER], [1], [1 if you want the High Level JTAG driver.])
656 AM_CONDITIONAL([HLADAPTER], [true])
657 ], [
658 AC_DEFINE([BUILD_HLADAPTER], [0], [0 if you want the High Level JTAG driver.])
659 AM_CONDITIONAL([HLADAPTER], [false])
660 ])
661 AM_CONDITIONAL([HLADAPTER_STLINK], [test "x$enable_stlink" != "xno"])
662 AM_CONDITIONAL([HLADAPTER_ICDI], [test "x$enable_ti_icdi" != "xno"])
663 AM_CONDITIONAL([HLADAPTER_NULINK], [test "x$enable_nulink" != "xno"])
664
665 AS_IF([test "x$enable_jlink" != "xno"], [
666 AS_IF([test "x$use_internal_libjaylink" = "xyes"], [
667 AS_IF([test -f "$srcdir/src/jtag/drivers/libjaylink/configure.ac"], [
668 AX_CONFIG_SUBDIR_OPTION([src/jtag/drivers/libjaylink],
669 [--enable-subproject-build])
670 ], [
671 AC_MSG_ERROR([Internal libjaylink not found, run either 'git submodule init' and 'git submodule update' or disable internal libjaylink with --disable-internal-libjaylink.])
672 ])
673 ])
674 ])
675
676 # Presto needs the bitq module
677 AS_IF([test "x$enable_presto" != "xno"], [
678 build_bitq=yes
679 ])
680
681 AM_CONDITIONAL([RELEASE], [test "x$build_release" = "xyes"])
682 AM_CONDITIONAL([PARPORT], [test "x$build_parport" = "xyes"])
683 AM_CONDITIONAL([DUMMY], [test "x$build_dummy" = "xyes"])
684 AM_CONDITIONAL([GIVEIO], [test "x$parport_use_giveio" = "xyes"])
685 AM_CONDITIONAL([EP93XX], [test "x$build_ep93xx" = "xyes"])
686 AM_CONDITIONAL([AT91RM9200], [test "x$build_at91rm9200" = "xyes"])
687 AM_CONDITIONAL([BCM2835GPIO], [test "x$build_bcm2835gpio" = "xyes"])
688 AM_CONDITIONAL([IMX_GPIO], [test "x$build_imx_gpio" = "xyes"])
689 AM_CONDITIONAL([BITBANG], [test "x$build_bitbang" = "xyes"])
690 AM_CONDITIONAL([JTAG_VPI], [test "x$build_jtag_vpi" = "xyes" -o "x$build_jtag_vpi" = "xyes"])
691 AM_CONDITIONAL([JTAG_DPI], [test "x$build_jtag_dpi" = "xyes" -o "x$build_jtag_dpi" = "xyes"])
692 AM_CONDITIONAL([USB_BLASTER_DRIVER], [test "x$enable_usb_blaster" != "xno" -o "x$enable_usb_blaster_2" != "xno"])
693 AM_CONDITIONAL([AMTJTAGACCEL], [test "x$build_amtjtagaccel" = "xyes"])
694 AM_CONDITIONAL([GW16012], [test "x$build_gw16012" = "xyes"])
695 AM_CONDITIONAL([REMOTE_BITBANG], [test "x$build_remote_bitbang" = "xyes"])
696 AM_CONDITIONAL([BUSPIRATE], [test "x$build_buspirate" = "xyes"])
697 AM_CONDITIONAL([SYSFSGPIO], [test "x$build_sysfsgpio" = "xyes"])
698 AM_CONDITIONAL([XLNX_PCIE_XVC], [test "x$build_xlnx_pcie_xvc" = "xyes"])
699 AM_CONDITIONAL([USE_LIBUSB1], [test "x$use_libusb1" = "xyes"])
700 AM_CONDITIONAL([IS_CYGWIN], [test "x$is_cygwin" = "xyes"])
701 AM_CONDITIONAL([IS_MINGW], [test "x$is_mingw" = "xyes"])
702 AM_CONDITIONAL([IS_WIN32], [test "x$is_win32" = "xyes"])
703 AM_CONDITIONAL([IS_DARWIN], [test "x$is_darwin" = "xyes"])
704 AM_CONDITIONAL([BITQ], [test "x$build_bitq" = "xyes"])
705 AM_CONDITIONAL([USE_LIBFTDI], [test "x$use_libftdi" = "xyes"])
706 AM_CONDITIONAL([USE_LIBGPIOD], [test "x$use_libgpiod" = "xyes"])
707 AM_CONDITIONAL([USE_HIDAPI], [test "x$use_hidapi" = "xyes"])
708 AM_CONDITIONAL([USE_LIBJAYLINK], [test "x$use_libjaylink" = "xyes"])
709 AM_CONDITIONAL([RSHIM], [test "x$build_rshim" = "xyes"])
710 AM_CONDITIONAL([HAVE_CAPSTONE], [test "x$enable_capstone" != "xno"])
711
712 AM_CONDITIONAL([INTERNAL_JIMTCL], [test "x$use_internal_jimtcl" = "xyes"])
713 AM_CONDITIONAL([INTERNAL_LIBJAYLINK], [test "x$use_internal_libjaylink" = "xyes"])
714
715 # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h?
716 AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
717 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
718 #define _GNU_SOURCE
719 #include <unistd.h>
720 #include <stdlib.h>
721 ]], [[char **ep = environ;]]
722 )], [
723 AC_MSG_RESULT([yes])
724 has_environ=yes
725 ], [
726 AC_MSG_RESULT([no])
727
728 # Possibility #2: can environ be found in an available library?
729 AC_MSG_CHECKING([for extern environ])
730 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
731 extern char **environ;
732 ]], [[char **ep = environ;]]
733 )], [
734 AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
735 has_environ=yes
736 ], [
737 has_environ=no
738 ])
739 AC_MSG_RESULT([${has_environ}])
740 ])
741
742 AS_IF([test "x${has_environ}" != "xyes" ], [
743 AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
744 ])
745
746 AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
747
748 # set default gcc warnings
749 GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security -Wshadow"
750 AS_IF([test "x${gcc_wextra}" = "xyes"], [
751 GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
752 GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
753 GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
754 GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
755 GCC_WARNINGS="${GCC_WARNINGS} -Wpointer-arith"
756 ])
757 AS_IF([test "x${gcc_werror}" = "xyes"], [
758 GCC_WARNINGS="${GCC_WARNINGS} -Werror"
759 ])
760
761 # override default gcc cflags
762 AS_IF([test "x$gcc_warnings" = "xyes"], [
763 AC_SUBST([GCC_WARNINGS], [$GCC_WARNINGS])
764 ])
765
766 AC_SUBST(EXTRA_DIST_NEWS, ["$(echo $srcdir/NEWS-*)"])
767
768 AC_CONFIG_FILES([
769 Makefile
770 ])
771 AC_OUTPUT
772
773 echo
774 echo
775 echo OpenOCD configuration summary
776 echo --------------------------------------------------
777 m4_foreach([adapter], [USB1_ADAPTERS,
778 HIDAPI_ADAPTERS, HIDAPI_USB1_ADAPTERS, LIBFTDI_ADAPTERS,
779 LIBFTDI_USB1_ADAPTERS,
780 LIBGPIOD_ADAPTERS,
781 LIBJAYLINK_ADAPTERS, PCIE_ADAPTERS,
782 OPTIONAL_LIBRARIES],
783 [s=m4_format(["%-40s"], ADAPTER_DESC([adapter]))
784 AS_CASE([$ADAPTER_VAR([adapter])],
785 [auto], [
786 echo "$s"yes '(auto)'
787 ],
788 [yes], [
789 echo "$s"yes
790 ],
791 [no], [
792 echo "$s"no
793 ])
794 ])
795 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)