Deprecate ZY1000, ioutils and oocd_trace
[openocd.git] / configure.ac
1 AC_PREREQ(2.64)
2 AC_INIT([openocd], [0.10.0-dev],
3 [OpenOCD Mailing List <openocd-devel@lists.sourceforge.net>])
4 AC_CONFIG_SRCDIR([src/openocd.c])
5
6 m4_include([config_subdir.m4])dnl
7
8 # check for makeinfo before calling AM_INIT_AUTOMAKE
9 AC_CHECK_PROG([MAKEINFO], [makeinfo], [makeinfo])
10 AS_IF([test "x$MAKEINFO" = "x"], [
11 MAKEINFO='echo makeinfo missing; true'
12 AC_MSG_WARN([Info documentation will not be built.])
13 ])
14 AC_SUBST([MAKEINFO])
15
16 AM_INIT_AUTOMAKE([-Wall -Wno-portability dist-bzip2 dist-zip subdir-objects])
17
18 AC_CONFIG_HEADERS([config.h])
19 AH_BOTTOM([
20 #include <helper/system.h>
21 #include <helper/types.h>
22 #include <helper/replacements.h>
23 ])
24
25 AC_LANG_C
26 AC_PROG_CC
27 AC_PROG_CC_C99
28 AM_PROG_CC_C_O
29 AC_PROG_RANLIB
30 PKG_PROG_PKG_CONFIG([0.23])
31
32 dnl disable checks for C++, Fortran and GNU Java Compiler
33 m4_defun([_LT_AC_LANG_CXX_CONFIG], [:])
34 m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
35 m4_defun([_LT_AC_LANG_GCJ_CONFIG], [:])
36 AC_DISABLE_SHARED
37 AC_PROG_LIBTOOL
38 AC_SUBST([LIBTOOL_DEPS])
39
40 dnl configure checks required for Jim files (these are obsolete w/ C99)
41 AC_C_CONST
42 AC_TYPE_LONG_LONG_INT
43
44 AC_SEARCH_LIBS([ioperm], [ioperm])
45 AC_SEARCH_LIBS([dlopen], [dl])
46
47 AC_CHECK_HEADERS([sys/socket.h])
48 AC_CHECK_HEADERS([elf.h])
49 AC_CHECK_HEADERS([dirent.h])
50 AC_CHECK_HEADERS([fcntl.h])
51 AC_CHECK_HEADERS([malloc.h])
52 AC_CHECK_HEADERS([netdb.h])
53 AC_CHECK_HEADERS([poll.h])
54 AC_CHECK_HEADERS([pthread.h])
55 AC_CHECK_HEADERS([strings.h])
56 AC_CHECK_HEADERS([sys/ioctl.h])
57 AC_CHECK_HEADERS([sys/param.h])
58 AC_CHECK_HEADERS([sys/select.h])
59 AC_CHECK_HEADERS([sys/stat.h])
60 AC_CHECK_HEADERS([sys/time.h])
61 AC_CHECK_HEADERS([sys/types.h])
62 AC_CHECK_HEADERS([unistd.h])
63 AC_CHECK_HEADERS([arpa/inet.h ifaddrs.h netinet/in.h netinet/tcp.h net/if.h], [], [], [dnl
64 #include <stdio.h>
65 #ifdef STDC_HEADERS
66 # include <stdlib.h>
67 # include <stddef.h>
68 #else
69 # ifdef HAVE_STDLIB_H
70 # include <stdlib.h>
71 # endif
72 #endif
73 #ifdef HAVE_SYS_SOCKET_H
74 # include <sys/socket.h>
75 #endif
76 ])
77
78 AC_HEADER_ASSERT
79 AC_HEADER_STDBOOL
80 AC_HEADER_TIME
81
82 AC_C_BIGENDIAN
83
84 AC_CHECK_FUNCS([strndup])
85 AC_CHECK_FUNCS([strnlen])
86 AC_CHECK_FUNCS([gettimeofday])
87 AC_CHECK_FUNCS([usleep])
88 AC_CHECK_FUNCS([vasprintf])
89
90 # guess-rev.sh only exists in the repository, not in the released archives
91 AC_MSG_CHECKING([whether to build a release])
92 AS_IF([test -x "$srcdir/guess-rev.sh"], [
93 build_release=no
94 ], [
95 build_release=yes
96 ])
97 AC_MSG_RESULT([$build_release])
98
99 # Adapter drivers
100 # 1st column -- configure option
101 # 2nd column -- description
102 # 3rd column -- symbol used for both config.h and automake
103 m4_define([ADAPTER_ARG], [m4_argn([1], $1)])
104 m4_define([ADAPTER_DESC], [m4_argn([2], $1)])
105 m4_define([ADAPTER_SYM], [m4_argn([3], $1)])
106 m4_define([ADAPTER_VAR], [enable_[]ADAPTER_ARG($1)])
107 m4_define([ADAPTER_OPT], [m4_translit(ADAPTER_ARG($1), [_], [-])])
108
109 m4_define([USB1_ADAPTERS],
110 [[[ftdi], [MPSSE mode of FTDI based devices], [FTDI]],
111 [[stlink], [ST-Link JTAG Programmer], [HLADAPTER_STLINK]],
112 [[ti_icdi], [TI ICDI JTAG Programmer], [HLADAPTER_ICDI]],
113 [[ulink], [Keil ULINK JTAG Programmer], [ULINK]],
114 [[usb_blaster_2], [Altera USB-Blaster II Compatible], [USB_BLASTER_2]],
115 [[vsllink], [Versaloon-Link JTAG Programmer], [VSLLINK]]])
116
117 m4_define([USB_ADAPTERS],
118 [[[osbdm], [OSBDM (JTAG only) Programmer], [OSBDM]],
119 [[opendous], [eStick/opendous JTAG Programmer], [OPENDOUS]],
120 [[aice], [Andes JTAG Programmer], [AICE]]])
121
122 m4_define([USB0_ADAPTERS],
123 [[[usbprog], [USBProg JTAG Programmer], [USBPROG]],
124 [[rlink], [Raisonance RLink JTAG Programmer], [RLINK]],
125 [[armjtagew], [Olimex ARM-JTAG-EW Programmer], [ARMJTAGEW]]])
126
127 m4_define([HIDAPI_ADAPTERS],
128 [[[cmsis_dap], [CMSIS-DAP Compliant Debugger], [CMSIS_DAP]]])
129
130 m4_define([LIBFTDI_ADAPTERS],
131 [[[usb_blaster], [Altera USB-Blaster Compatible], [USB_BLASTER]],
132 [[presto], [ASIX Presto Adapter], [PRESTO]],
133 [[openjtag], [OpenJTAG Adapter], [OPENJTAG]]])
134
135 m4_define([LIBJAYLINK_ADAPTERS],
136 [[[jlink], [SEGGER J-Link Programmer], [JLINK]]])
137
138
139 AC_ARG_ENABLE([doxygen-html],
140 AS_HELP_STRING([--disable-doxygen-html],
141 [Disable building Doxygen manual as HTML.]),
142 [doxygen_as_html=$enableval], [doxygen_as_html=yes])
143 AC_SUBST([doxygen_as_html])
144 AC_MSG_CHECKING([whether to build Doxygen as HTML])
145 AC_MSG_RESULT([$doxygen_as_html])
146
147 AC_ARG_ENABLE([doxygen-pdf],
148 AS_HELP_STRING([--enable-doxygen-pdf],
149 [Enable building Doxygen manual as PDF.]),
150 [doxygen_as_pdf=$enableval], [doxygen_as_pdf=no])
151 AC_SUBST([doxygen_as_pdf])
152 AC_MSG_CHECKING([whether to build Doxygen as PDF])
153 AC_MSG_RESULT([$doxygen_as_pdf])
154
155 AC_ARG_ENABLE([gccwarnings],
156 AS_HELP_STRING([--disable-gccwarnings], [Disable compiler warnings]),
157 [gcc_warnings=$enableval], [gcc_warnings=yes])
158
159 AC_ARG_ENABLE([wextra],
160 AS_HELP_STRING([--disable-wextra], [Disable extra compiler warnings]),
161 [gcc_wextra=$enableval], [gcc_wextra=$gcc_warnings])
162
163 AC_ARG_ENABLE([werror],
164 AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
165 [gcc_werror=$enableval], [gcc_werror=$gcc_warnings])
166
167 # set default verbose options, overridden by following options
168 debug_jtag_io=no
169 debug_usb_io=no
170 debug_usb_comms=no
171
172 AC_ARG_ENABLE([verbose],
173 AS_HELP_STRING([--enable-verbose],
174 [Enable verbose JTAG I/O messages (for debugging).]),
175 [
176 debug_jtag_io=$enableval
177 debug_usb_io=$enableval
178 debug_usb_comms=$enableval
179 ], [])
180
181 AC_ARG_ENABLE([verbose_jtag_io],
182 AS_HELP_STRING([--enable-verbose-jtag-io],
183 [Enable verbose JTAG I/O messages (for debugging).]),
184 [debug_jtag_io=$enableval], [])
185
186 AC_ARG_ENABLE([verbose_usb_io],
187 AS_HELP_STRING([--enable-verbose-usb-io],
188 [Enable verbose USB I/O messages (for debugging)]),
189 [debug_usb_io=$enableval], [])
190
191 AC_ARG_ENABLE([verbose_usb_comms],
192 AS_HELP_STRING([--enable-verbose-usb-comms],
193 [Enable verbose USB communication messages (for debugging)]),
194 [debug_usb_comms=$enableval], [])
195
196 AC_MSG_CHECKING([whether to enable verbose JTAG I/O messages]);
197 AC_MSG_RESULT([$debug_jtag_io])
198 AS_IF([test "x$debug_jtag_io" = "xyes"], [
199 AC_DEFINE([_DEBUG_JTAG_IO_],[1], [Print verbose JTAG I/O messages])
200 ])
201
202 AC_MSG_CHECKING([whether to enable verbose USB I/O messages]);
203 AC_MSG_RESULT([$debug_usb_io])
204 AS_IF([test "x$debug_usb_io" = "xyes"], [
205 AC_DEFINE([_DEBUG_USB_IO_],[1], [Print verbose USB I/O messages])
206 ])
207
208 AC_MSG_CHECKING([whether to enable verbose USB communication messages]);
209 AC_MSG_RESULT([$debug_usb_comms])
210 AS_IF([test "x$debug_usb_comms" = "xyes"], [
211 AC_DEFINE([_DEBUG_USB_COMMS_],[1], [Print verbose USB communication messages])
212 ])
213
214 debug_malloc=no
215 AC_ARG_ENABLE([malloc_logging],
216 AS_HELP_STRING([--enable-malloc-logging],
217 [Include free space in logging messages (requires malloc.h).]),
218 [debug_malloc=$enableval], [])
219
220 AC_MSG_CHECKING([whether to enable malloc free space logging]);
221 AC_MSG_RESULT([$debug_malloc])
222 AS_IF([test "x$debug_malloc" = "xyes"], [
223 AC_DEFINE([_DEBUG_FREE_SPACE_],[1], [Include malloc free space in logging])
224 ])
225
226 AC_ARG_ENABLE([dummy],
227 AS_HELP_STRING([--enable-dummy], [Enable building the dummy port driver]),
228 [build_dummy=$enableval], [build_dummy=no])
229
230 m4_define([AC_ARG_ADAPTERS], [
231 m4_foreach([adapter], [$1],
232 [AC_ARG_ENABLE(ADAPTER_OPT([adapter]),
233 AS_HELP_STRING([--enable-ADAPTER_OPT([adapter])],
234 [Enable building support for the ]ADAPTER_DESC([adapter])[ (default is $2)]),
235 [], [ADAPTER_VAR([adapter])=$2])
236 ])
237 ])
238
239 AC_ARG_ADAPTERS([
240 USB1_ADAPTERS,
241 USB_ADAPTERS,
242 USB0_ADAPTERS,
243 HIDAPI_ADAPTERS,
244 LIBFTDI_ADAPTERS,
245 LIBJAYLINK_ADAPTERS
246 ],[auto])
247
248 AC_ARG_ENABLE([parport],
249 AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
250 [build_parport=$enableval], [build_parport=no])
251
252 AC_ARG_ENABLE([parport_ppdev],
253 AS_HELP_STRING([--disable-parport-ppdev],
254 [Disable use of ppdev (/dev/parportN) for parport (for x86 only)]),
255 [parport_use_ppdev=$enableval], [parport_use_ppdev=yes])
256
257 AC_ARG_ENABLE([parport_giveio],
258 AS_HELP_STRING([--enable-parport-giveio],
259 [Enable use of giveio for parport (for CygWin only)]),
260 [parport_use_giveio=$enableval], [parport_use_giveio=])
261
262 AC_ARG_ENABLE([jtag_vpi],
263 AS_HELP_STRING([--enable-jtag_vpi], [Enable building support for JTAG VPI]),
264 [build_jtag_vpi=$enableval], [build_jtag_vpi=no])
265
266 AC_ARG_ENABLE([amtjtagaccel],
267 AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
268 [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
269
270 AC_ARG_ENABLE([zy1000_master],
271 AS_HELP_STRING([--enable-zy1000-master], [Use ZY1000 JTAG master registers]),
272 [build_zy1000_master=$enableval], [build_zy1000_master=no])
273
274 AC_ARG_ENABLE([zy1000],
275 AS_HELP_STRING([--enable-zy1000], [Enable ZY1000 interface]),
276 [build_zy1000=$enableval], [build_zy1000=no])
277
278 AC_ARG_ENABLE([ioutil],
279 AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]),
280 [build_ioutil=$enableval], [build_ioutil=no])
281
282 AS_CASE(["${host_cpu}"],
283 [arm*], [
284 AC_ARG_ENABLE([ep93xx],
285 AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]),
286 [build_ep93xx=$enableval], [build_ep93xx=no])
287
288 AC_ARG_ENABLE([at91rm9200],
289 AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
290 [build_at91rm9200=$enableval], [build_at91rm9200=no])
291
292 AC_ARG_ENABLE([bcm2835gpio],
293 AS_HELP_STRING([--enable-bcm2835gpio], [Enable building support for bitbanging on BCM2835 (as found in Raspberry Pi)]),
294 [build_bcm2835gpio=$enableval], [build_bcm2835gpio=no])
295 ],
296 [
297 build_ep93xx=no
298 build_at91rm9200=no
299 build_bcm2835gpio=no
300 ])
301
302 AC_ARG_ENABLE([gw16012],
303 AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
304 [build_gw16012=$enableval], [build_gw16012=no])
305
306 AC_ARG_ENABLE([oocd_trace],
307 AS_HELP_STRING([--enable-oocd_trace],
308 [Enable building support for some prototype OpenOCD+trace ETM capture hardware]),
309 [build_oocd_trace=$enableval], [build_oocd_trace=no])
310
311 AC_ARG_ENABLE([buspirate],
312 AS_HELP_STRING([--enable-buspirate], [Enable building support for the Buspirate]),
313 [build_buspirate=$enableval], [build_buspirate=no])
314
315 AC_ARG_ENABLE([sysfsgpio],
316 AS_HELP_STRING([--enable-sysfsgpio], [Enable building support for programming driven via sysfs gpios.]),
317 [build_sysfsgpio=$enableval], [build_sysfsgpio=no])
318
319 AC_ARG_ENABLE([minidriver_dummy],
320 AS_HELP_STRING([--enable-minidriver-dummy], [Enable the dummy minidriver.]),
321 [build_minidriver_dummy=$enableval], [build_minidriver_dummy=no])
322
323 AC_ARG_ENABLE([internal-jimtcl],
324 AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
325 [use_internal_jimtcl=$enableval], [use_internal_jimtcl=yes])
326
327 AC_ARG_ENABLE([internal-libjaylink],
328 AS_HELP_STRING([--disable-internal-libjaylink],
329 [Disable building internal libjaylink]),
330 [use_internal_libjaylink=$enableval], [use_internal_libjaylink=yes])
331
332 build_minidriver=no
333 AC_MSG_CHECKING([whether to enable ZY1000 minidriver])
334 AS_IF([test "x$build_zy1000" = "xyes"], [
335 AS_IF([test "x$build_minidriver" = "xyes"], [
336 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
337 ])
338 AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
339 [Define to 1 if you have the <jtag_minidriver.h> header file.])
340 build_minidriver=yes
341 ])
342 AC_MSG_RESULT([$build_zy1000])
343
344 AC_ARG_ENABLE([remote-bitbang],
345 AS_HELP_STRING([--enable-remote-bitbang], [Enable building support for the Remote Bitbang jtag driver]),
346 [build_remote_bitbang=$enableval], [build_remote_bitbang=no])
347
348 AC_MSG_CHECKING([whether to enable dummy minidriver])
349 AS_IF([test "x$build_minidriver_dummy" = "xyes"], [
350 AS_IF([test "x$build_minidriver" = "xyes"], [
351 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
352 ])
353 build_minidriver=yes
354 AC_DEFINE([BUILD_MINIDRIVER_DUMMY], [1], [Use the dummy minidriver.])
355 AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
356 [Define to 1 if you have the <jtag_minidriver.h> header file.])
357 ])
358 AC_MSG_RESULT([$build_minidriver_dummy])
359
360 AC_MSG_CHECKING([whether standard drivers can be built])
361 AS_IF([test "x$build_minidriver" = "xyes"], [
362 AC_MSG_RESULT([no])
363 AC_MSG_WARN([Using the minidriver disables all other drivers.])
364 sleep 2
365 ], [
366 AC_MSG_RESULT([yes])
367 ])
368
369 AS_CASE(["${host_cpu}"],
370 [i?86|x86*], [],
371 [
372 AS_IF([test "x$parport_use_ppdev" = "xno"], [
373 AC_MSG_WARN([--disable-parport-ppdev is not supported by the host CPU])
374 ])
375 parport_use_ppdev=yes
376 ])
377
378 AS_CASE([$host],
379 [*-cygwin*], [
380 is_win32=yes
381 parport_use_ppdev=no
382
383 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[return __MINGW32__;]])],
384 [is_mingw=yes],[is_mingw=no])
385 AS_IF([test "x$is_mingw" = "xyes"], [
386 AS_IF([test "x$parport_use_giveio" = "xno"], [
387 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
388 ])
389 parport_use_giveio=yes
390 is_cygwin=no
391 ], [
392 is_cygwin=yes
393 # sys/io.h needed under cygwin for parport access
394 AS_IF([test "x$build_parport" = "xyes"], [
395 AC_CHECK_HEADERS([sys/io.h],[],AC_MSG_ERROR([Please install the cygwin ioperm package]))
396 ])
397 ])
398 ],
399 [*-mingw* | *-msys*], [
400 is_mingw=yes
401 is_win32=yes
402 parport_use_ppdev=no
403
404 AS_IF([test "x$parport_use_giveio" = "xno"], [
405 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
406 ])
407 parport_use_giveio=yes
408
409 AS_IF([test "x$build_buspirate" = "xyes"], [
410 AC_MSG_ERROR([buspirate currently not supported by MinGW32 hosts])
411 ])
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_dummy" = "xyes"], [
462 build_bitbang=yes
463 AC_DEFINE([BUILD_DUMMY], [1], [1 if you want dummy driver.])
464 ], [
465 AC_DEFINE([BUILD_DUMMY], [0], [0 if you don't want dummy driver.])
466 ])
467
468 AS_IF([test "x$build_ep93xx" = "xyes"], [
469 build_bitbang=yes
470 AC_DEFINE([BUILD_EP93XX], [1], [1 if you want ep93xx.])
471 ], [
472 AC_DEFINE([BUILD_EP93XX], [0], [0 if you don't want ep93xx.])
473 ])
474
475 AS_IF([test "x$build_zy1000" = "xyes"], [
476 AC_DEFINE([BUILD_ZY1000], [1], [1 if you want ZY1000.])
477 ], [
478 AC_DEFINE([BUILD_ZY1000], [0], [0 if you don't want ZY1000.])
479 ])
480
481 AS_IF([test "x$build_zy1000_master" = "xyes"], [
482 AC_DEFINE([BUILD_ZY1000_MASTER], [1], [1 if you want ZY1000 JTAG master registers.])
483 ], [
484 AC_DEFINE([BUILD_ZY1000_MASTER], [0], [0 if you don't want ZY1000 JTAG master registers.])
485 ])
486
487 AS_IF([test "x$build_at91rm9200" = "xyes"], [
488 build_bitbang=yes
489 AC_DEFINE([BUILD_AT91RM9200], [1], [1 if you want at91rm9200.])
490 ], [
491 AC_DEFINE([BUILD_AT91RM9200], [0], [0 if you don't want at91rm9200.])
492 ])
493
494 AS_IF([test "x$build_bcm2835gpio" = "xyes"], [
495 build_bitbang=yes
496 AC_DEFINE([BUILD_BCM2835GPIO], [1], [1 if you want bcm2835gpio.])
497 ], [
498 AC_DEFINE([BUILD_BCM2835GPIO], [0], [0 if you don't want bcm2835gpio.])
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_amtjtagaccel" = "xyes"], [
520 AC_DEFINE([BUILD_AMTJTAGACCEL], [1], [1 if you want the Amontec JTAG-Accelerator driver.])
521 ], [
522 AC_DEFINE([BUILD_AMTJTAGACCEL], [0], [0 if you don't want the Amontec JTAG-Accelerator driver.])
523 ])
524
525 AS_IF([test "x$build_gw16012" = "xyes"], [
526 AC_DEFINE([BUILD_GW16012], [1], [1 if you want the Gateworks GW16012 driver.])
527 ], [
528 AC_DEFINE([BUILD_GW16012], [0], [0 if you don't want the Gateworks GW16012 driver.])
529 ])
530
531 AS_IF([test "x$build_oocd_trace" = "xyes"], [
532 AC_DEFINE([BUILD_OOCD_TRACE], [1], [1 if you want the OpenOCD+trace ETM capture driver.])
533 ], [
534 AC_DEFINE([BUILD_OOCD_TRACE], [0], [0 if you don't want the OpenOCD+trace ETM capture driver.])
535 ])
536
537 AS_IF([test "x$build_buspirate" = "xyes"], [
538 AC_DEFINE([BUILD_BUSPIRATE], [1], [1 if you want the Buspirate JTAG driver.])
539 ], [
540 AC_DEFINE([BUILD_BUSPIRATE], [0], [0 if you don't want the Buspirate JTAG driver.])
541 ])
542
543 AS_IF([test "x$use_internal_jimtcl" = "xyes"], [
544 AS_IF([test -f "$srcdir/jimtcl/configure.ac"], [
545 AX_CONFIG_SUBDIR_OPTION([jimtcl], [--disable-install-jim])
546 ], [
547 AC_MSG_ERROR([jimtcl not found, run git submodule init and git submodule update.])
548 ])
549 ])
550
551 AS_IF([test "x$build_remote_bitbang" = "xyes"], [
552 build_bitbang=yes
553 AC_DEFINE([BUILD_REMOTE_BITBANG], [1], [1 if you want the Remote Bitbang JTAG driver.])
554 ], [
555 AC_DEFINE([BUILD_REMOTE_BITBANG], [0], [0 if you don't want the Remote Bitbang JTAG driver.])
556 ])
557
558 AS_IF([test "x$build_sysfsgpio" = "xyes"], [
559 build_bitbang=yes
560 AC_DEFINE([BUILD_SYSFSGPIO], [1], [1 if you want the SysfsGPIO driver.])
561 ], [
562 AC_DEFINE([BUILD_SYSFSGPIO], [0], [0 if you don't want SysfsGPIO driver.])
563 ])
564
565 PKG_CHECK_MODULES([LIBUSB1], [libusb-1.0], [
566 use_libusb1=yes
567 AC_DEFINE([HAVE_LIBUSB1], [1], [Define if you have libusb-1.x])
568 PKG_CHECK_EXISTS([libusb-1.0 >= 1.0.9],
569 [AC_DEFINE([HAVE_LIBUSB_ERROR_NAME], [1], [Define if your libusb has libusb_error_name()])],
570 [AC_MSG_WARN([libusb-1.x older than 1.0.9 detected, consider updating])])
571 LIBUSB1_CFLAGS=`echo $LIBUSB1_CFLAGS | sed 's/-I/-isystem /'`
572 AC_MSG_NOTICE([libusb-1.0 header bug workaround: LIBUSB1_CFLAGS changed to "$LIBUSB1_CFLAGS"])
573 PKG_CHECK_EXISTS([libusb-1.0 >= 1.0.16],
574 [AC_DEFINE([HAVE_LIBUSB_GET_PORT_NUMBERS], [1], [Define if your libusb has libusb_get_port_numbers()])])
575 ], [
576 use_libusb1=no
577 AC_MSG_WARN([libusb-1.x not found, trying legacy libusb-0.1 as a fallback; consider installing libusb-1.x instead])
578 ])
579
580 PKG_CHECK_MODULES([LIBUSB0], [libusb], [use_libusb0=yes], [use_libusb0=no])
581
582 for hidapi_lib in hidapi hidapi-hidraw hidapi-libusb; do
583 PKG_CHECK_MODULES([HIDAPI],[$hidapi_lib],[
584 use_hidapi=yes
585 break
586 ],[
587 use_hidapi=no
588 ])
589 done
590
591 PKG_CHECK_MODULES([LIBFTDI], [libftdi1], [use_libftdi=yes], [
592 PKG_CHECK_MODULES([LIBFTDI], [libftdi], [use_libftdi=yes], [use_libftdi=no])
593 ])
594
595 PKG_CHECK_MODULES([LIBJAYLINK], [libjaylink >= 0.1],
596 [use_libjaylink=yes], [use_libjaylink=no])
597
598 m4_define([PROCESS_ADAPTERS], [
599 m4_foreach([adapter], [$1], [
600 AS_IF([test $2], [
601 AS_IF([test "x$ADAPTER_VAR([adapter])" != "xno"], [
602 AC_DEFINE([BUILD_]ADAPTER_SYM([adapter]), [1], [1 if you want the ]ADAPTER_DESC([adapter]).)
603 ], [
604 AC_DEFINE([BUILD_]ADAPTER_SYM([adapter]), [0], [0 if you do not want the ]ADAPTER_DESC([adapter]).)
605 ])
606 ], [
607 AS_IF([test "x$ADAPTER_VAR([adapter])" = "xyes"], [
608 AC_MSG_ERROR([$3 is required for the ADAPTER_DESC([adapter])])
609 ])
610 ADAPTER_VAR([adapter])=no
611 ])
612 AM_CONDITIONAL(ADAPTER_SYM([adapter]), [test "x$ADAPTER_VAR([adapter])" != "xno"])
613 ])
614 ])
615
616 PROCESS_ADAPTERS([USB1_ADAPTERS], ["x$use_libusb1" = "xyes"], [libusb-1.x])
617 PROCESS_ADAPTERS([USB_ADAPTERS], ["x$use_libusb1" = "xyes" -o "x$use_libusb0" = "xyes"], [libusb-1.x or libusb-0.1])
618 PROCESS_ADAPTERS([USB0_ADAPTERS], ["x$use_libusb0" = "xyes"], [libusb-0.1])
619 PROCESS_ADAPTERS([HIDAPI_ADAPTERS], ["x$use_hidapi" = "xyes"], [hidapi])
620 PROCESS_ADAPTERS([LIBFTDI_ADAPTERS], ["x$use_libftdi" = "xyes"], [libftdi])
621 PROCESS_ADAPTERS([LIBJAYLINK_ADAPTERS], ["x$use_libusb1" = "xyes" -a "x$use_internal_libjaylink" = "xyes" -o "x$use_libjaylink" = "xyes"], [libusb-1.x or libjaylink-0.1])
622
623 AS_IF([test "x$build_openjtag" = "xyes"], [
624 AS_IF([test "x$use_libusb1" != "xyes" -a "x$use_libusb0" != "xyes"], [
625 AC_MSG_ERROR([libusb-1.x or libusb-0.1 is required for the OpenJTAG Programmer])
626 build_openjtag=no
627 ])
628 ])
629
630 AS_IF([test "x$enable_stlink" != "xno" -o "x$enable_ti_icdi" != "xno"], [
631 AC_DEFINE([BUILD_HLADAPTER], [1], [1 if you want the High Level JTAG driver.])
632 ], [
633 AC_DEFINE([BUILD_HLADAPTER], [0], [0 if you want the High Level JTAG driver.])
634 ])
635 AM_CONDITIONAL([HLADAPTER], [test "x$enable_stlink" != "xno" -o "x$enable_ti_icdi" != "xno"])
636
637 AS_IF([test "x$enable_jlink" != "xno"], [
638 AS_IF([test "x$use_internal_libjaylink" = "xyes"], [
639 AS_IF([test -f "$srcdir/src/jtag/drivers/libjaylink/configure.ac"], [
640 AX_CONFIG_SUBDIR_OPTION([src/jtag/drivers/libjaylink],
641 [--enable-subproject-build])
642 ], [
643 AC_MSG_ERROR([Internal libjaylink not found, run either 'git submodule init' and 'git submodule update' or disable internal libjaylink with --disable-internal-libjaylink.])
644 ])
645 ])
646 ])
647
648 # Presto needs the bitq module
649 AS_IF([test "x$enable_presto" != "xno"], [
650 build_bitq=yes
651 ])
652
653 AM_CONDITIONAL([RELEASE], [test "x$build_release" = "xyes"])
654 AM_CONDITIONAL([PARPORT], [test "x$build_parport" = "xyes"])
655 AM_CONDITIONAL([DUMMY], [test "x$build_dummy" = "xyes"])
656 AM_CONDITIONAL([GIVEIO], [test "x$parport_use_giveio" = "xyes"])
657 AM_CONDITIONAL([EP93XX], [test "x$build_ep93xx" = "xyes"])
658 AM_CONDITIONAL([ZY1000], [test "x$build_zy1000" = "xyes"])
659 AM_CONDITIONAL([ZY1000_MASTER], [test "x$build_zy1000_master" = "xyes"])
660 AM_CONDITIONAL([IOUTIL], [test "x$build_ioutil" = "xyes"])
661 AM_CONDITIONAL([AT91RM9200], [test "x$build_at91rm9200" = "xyes"])
662 AM_CONDITIONAL([BCM2835GPIO], [test "x$build_bcm2835gpio" = "xyes"])
663 AM_CONDITIONAL([BITBANG], [test "x$build_bitbang" = "xyes"])
664 AM_CONDITIONAL([JTAG_VPI], [test "x$build_jtag_vpi" = "xyes" -o "x$build_jtag_vpi" = "xyes"])
665 AM_CONDITIONAL([USB_BLASTER_DRIVER], [test "x$enable_usb_blaster" != "xno" -o "x$enable_usb_blaster_2" != "xno"])
666 AM_CONDITIONAL([AMTJTAGACCEL], [test "x$build_amtjtagaccel" = "xyes"])
667 AM_CONDITIONAL([GW16012], [test "x$build_gw16012" = "xyes"])
668 AM_CONDITIONAL([OOCD_TRACE], [test "x$build_oocd_trace" = "xyes"])
669 AM_CONDITIONAL([REMOTE_BITBANG], [test "x$build_remote_bitbang" = "xyes"])
670 AM_CONDITIONAL([BUSPIRATE], [test "x$build_buspirate" = "xyes"])
671 AM_CONDITIONAL([SYSFSGPIO], [test "x$build_sysfsgpio" = "xyes"])
672 AM_CONDITIONAL([USE_LIBUSB0], [test "x$use_libusb0" = "xyes"])
673 AM_CONDITIONAL([USE_LIBUSB1], [test "x$use_libusb1" = "xyes"])
674 AM_CONDITIONAL([IS_CYGWIN], [test "x$is_cygwin" = "xyes"])
675 AM_CONDITIONAL([IS_MINGW], [test "x$is_mingw" = "xyes"])
676 AM_CONDITIONAL([IS_WIN32], [test "x$is_win32" = "xyes"])
677 AM_CONDITIONAL([IS_DARWIN], [test "x$is_darwin" = "xyes"])
678 AM_CONDITIONAL([BITQ], [test "x$build_bitq" = "xyes"])
679 AM_CONDITIONAL([USE_LIBFTDI], [test "x$use_libftdi" = "xyes"])
680 AM_CONDITIONAL([USE_HIDAPI], [test "x$use_hidapi" = "xyes"])
681 AM_CONDITIONAL([USE_LIBJAYLINK], [test "x$use_libjaylink" = "xyes"])
682
683 AM_CONDITIONAL([MINIDRIVER], [test "x$build_minidriver" = "xyes"])
684 AM_CONDITIONAL([MINIDRIVER_DUMMY], [test "x$build_minidriver_dummy" = "xyes"])
685
686 AM_CONDITIONAL([INTERNAL_JIMTCL], [test "x$use_internal_jimtcl" = "xyes"])
687 AM_CONDITIONAL([INTERNAL_LIBJAYLINK], [test "x$use_internal_libjaylink" = "xyes"])
688
689 # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h?
690 AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
691 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
692 #define _GNU_SOURCE
693 #include <unistd.h>
694 #include <stdlib.h>
695 ]], [[char **ep = environ;]]
696 )], [
697 AC_MSG_RESULT([yes])
698 has_environ=yes
699 ], [
700 AC_MSG_RESULT([no])
701
702 # Possibility #2: can environ be found in an available library?
703 AC_MSG_CHECKING([for extern environ])
704 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
705 extern char **environ;
706 ]], [[char **ep = environ;]]
707 )], [
708 AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
709 has_environ=yes
710 ], [
711 has_environ=no
712 ])
713 AC_MSG_RESULT([${has_environ}])
714 ])
715
716 AS_IF([test "x${has_environ}" != "xyes" ], [
717 AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
718 ])
719
720 AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
721
722 # set default gcc warnings
723 GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security -Wshadow"
724 AS_IF([test "x${gcc_wextra}" = "xyes"], [
725 GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
726 GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
727 GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
728 GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
729 ])
730 AS_IF([test "x${gcc_werror}" = "xyes"], [
731 GCC_WARNINGS="${GCC_WARNINGS} -Werror"
732 ])
733
734 # overide default gcc cflags
735 AS_IF([test "x$gcc_warnings" = "xyes"], [
736 AC_SUBST([GCC_WARNINGS], [$GCC_WARNINGS])
737 ])
738
739 AC_CONFIG_FILES([
740 Makefile
741 ])
742 AC_OUTPUT
743
744 echo
745 echo
746 echo OpenOCD configuration summary
747 echo --------------------------------------------------
748 m4_foreach([adapter], [USB1_ADAPTERS, USB_ADAPTERS, USB0_ADAPTERS,
749 HIDAPI_ADAPTERS, LIBFTDI_ADAPTERS, LIBJAYLINK_ADAPTERS],
750 [s=m4_format(["%-40s"], ADAPTER_DESC([adapter]))
751 AS_CASE([$ADAPTER_VAR([adapter])],
752 [auto], [
753 echo "$s"yes '(auto)'
754 ],
755 [yes], [
756 echo "$s"yes
757 ],
758 [no], [
759 echo "$s"no
760 ])
761 ])
762 echo
763
764 AS_IF([test "x$build_oocd_trace" = "xyes"], [
765 echo 'WARNING! Deprecated configure option (--enable-oocd_trace)'
766 echo 'The oocd_trace driver is deprecated and will be removed in the next release.'
767 echo 'If you regularly use this driver, please report to the OpenOCD Mailing List.'
768 echo
769 ])
770
771 AS_IF([test "x$build_zy1000" = "xyes" -o "x$build_zy1000_master" = "xyes"], [
772 echo 'WARNING! Deprecated configure option (--enable-zy1000, --enable-zy1000-master)'
773 echo 'Support for the ZY1000 platform is deprecated and will be removed in the next'
774 echo 'release. If you regularly use this platform, please report to the OpenOCD'
775 echo 'Mailing List.'
776 echo
777 ])
778
779 AS_IF([test "x$build_ioutil" = "xyes"], [
780 echo 'WARNING! Deprecated configure option (--enable-ioutil)'
781 echo 'Support for the ioutil functions is deprecated and will be removed in the next'
782 echo 'release. If you regularly depend on this functionality, please report to the'
783 echo 'OpenOCD Mailing List.'
784 echo
785 ])

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)