Restore -dev suffix
[openocd.git] / configure.ac
1 AC_PREREQ(2.64)
2 AC_INIT([openocd], [0.10.0-rc2-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/sysctl.h])
61 AC_CHECK_HEADERS([sys/time.h])
62 AC_CHECK_HEADERS([sys/types.h])
63 AC_CHECK_HEADERS([unistd.h])
64 AC_CHECK_HEADERS([arpa/inet.h ifaddrs.h netinet/in.h netinet/tcp.h net/if.h], [], [], [dnl
65 #include <stdio.h>
66 #ifdef STDC_HEADERS
67 # include <stdlib.h>
68 # include <stddef.h>
69 #else
70 # ifdef HAVE_STDLIB_H
71 # include <stdlib.h>
72 # endif
73 #endif
74 #ifdef HAVE_SYS_SOCKET_H
75 # include <sys/socket.h>
76 #endif
77 ])
78
79 AC_HEADER_ASSERT
80 AC_HEADER_STDBOOL
81 AC_HEADER_TIME
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 JTAG 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 [[vsllink], [Versaloon-Link JTAG Programmer], [VSLLINK]]])
118
119 m4_define([USB_ADAPTERS],
120 [[[osbdm], [OSBDM (JTAG only) Programmer], [OSBDM]],
121 [[opendous], [eStick/opendous JTAG Programmer], [OPENDOUS]],
122 [[aice], [Andes JTAG Programmer], [AICE]]])
123
124 m4_define([USB0_ADAPTERS],
125 [[[usbprog], [USBProg JTAG Programmer], [USBPROG]],
126 [[rlink], [Raisonance RLink JTAG Programmer], [RLINK]],
127 [[armjtagew], [Olimex ARM-JTAG-EW Programmer], [ARMJTAGEW]]])
128
129 m4_define([HIDAPI_ADAPTERS],
130 [[[cmsis_dap], [CMSIS-DAP Compliant Debugger], [CMSIS_DAP]]])
131
132 m4_define([LIBFTDI_ADAPTERS],
133 [[[usb_blaster], [Altera USB-Blaster Compatible], [USB_BLASTER]],
134 [[presto], [ASIX Presto Adapter], [PRESTO]],
135 [[openjtag], [OpenJTAG Adapter], [OPENJTAG]]])
136
137 m4_define([LIBJAYLINK_ADAPTERS],
138 [[[jlink], [SEGGER J-Link Programmer], [JLINK]]])
139
140
141 AC_ARG_ENABLE([doxygen-html],
142 AS_HELP_STRING([--disable-doxygen-html],
143 [Disable building Doxygen manual as HTML.]),
144 [doxygen_as_html=$enableval], [doxygen_as_html=yes])
145 AC_SUBST([doxygen_as_html])
146 AC_MSG_CHECKING([whether to build Doxygen as HTML])
147 AC_MSG_RESULT([$doxygen_as_html])
148
149 AC_ARG_ENABLE([doxygen-pdf],
150 AS_HELP_STRING([--enable-doxygen-pdf],
151 [Enable building Doxygen manual as PDF.]),
152 [doxygen_as_pdf=$enableval], [doxygen_as_pdf=no])
153 AC_SUBST([doxygen_as_pdf])
154 AC_MSG_CHECKING([whether to build Doxygen as PDF])
155 AC_MSG_RESULT([$doxygen_as_pdf])
156
157 AC_ARG_ENABLE([gccwarnings],
158 AS_HELP_STRING([--disable-gccwarnings], [Disable compiler warnings]),
159 [gcc_warnings=$enableval], [gcc_warnings=yes])
160
161 AC_ARG_ENABLE([wextra],
162 AS_HELP_STRING([--disable-wextra], [Disable extra compiler warnings]),
163 [gcc_wextra=$enableval], [gcc_wextra=$gcc_warnings])
164
165 AC_ARG_ENABLE([werror],
166 AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
167 [gcc_werror=$enableval], [gcc_werror=$gcc_warnings])
168
169 # set default verbose options, overridden by following options
170 debug_jtag_io=no
171 debug_usb_io=no
172 debug_usb_comms=no
173
174 AC_ARG_ENABLE([verbose],
175 AS_HELP_STRING([--enable-verbose],
176 [Enable verbose JTAG I/O messages (for debugging).]),
177 [
178 debug_jtag_io=$enableval
179 debug_usb_io=$enableval
180 debug_usb_comms=$enableval
181 ], [])
182
183 AC_ARG_ENABLE([verbose_jtag_io],
184 AS_HELP_STRING([--enable-verbose-jtag-io],
185 [Enable verbose JTAG I/O messages (for debugging).]),
186 [debug_jtag_io=$enableval], [])
187
188 AC_ARG_ENABLE([verbose_usb_io],
189 AS_HELP_STRING([--enable-verbose-usb-io],
190 [Enable verbose USB I/O messages (for debugging)]),
191 [debug_usb_io=$enableval], [])
192
193 AC_ARG_ENABLE([verbose_usb_comms],
194 AS_HELP_STRING([--enable-verbose-usb-comms],
195 [Enable verbose USB communication messages (for debugging)]),
196 [debug_usb_comms=$enableval], [])
197
198 AC_MSG_CHECKING([whether to enable verbose JTAG I/O messages]);
199 AC_MSG_RESULT([$debug_jtag_io])
200 AS_IF([test "x$debug_jtag_io" = "xyes"], [
201 AC_DEFINE([_DEBUG_JTAG_IO_],[1], [Print verbose JTAG I/O messages])
202 ])
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 m4_define([AC_ARG_ADAPTERS], [
233 m4_foreach([adapter], [$1],
234 [AC_ARG_ENABLE(ADAPTER_OPT([adapter]),
235 AS_HELP_STRING([--enable-ADAPTER_OPT([adapter])],
236 [Enable building support for the ]ADAPTER_DESC([adapter])[ (default is $2)]),
237 [], [ADAPTER_VAR([adapter])=$2])
238 ])
239 ])
240
241 AC_ARG_ADAPTERS([
242 USB1_ADAPTERS,
243 USB_ADAPTERS,
244 USB0_ADAPTERS,
245 HIDAPI_ADAPTERS,
246 LIBFTDI_ADAPTERS,
247 LIBJAYLINK_ADAPTERS
248 ],[auto])
249
250 AC_ARG_ENABLE([parport],
251 AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
252 [build_parport=$enableval], [build_parport=no])
253
254 AC_ARG_ENABLE([parport_ppdev],
255 AS_HELP_STRING([--disable-parport-ppdev],
256 [Disable use of ppdev (/dev/parportN) for parport (for x86 only)]),
257 [parport_use_ppdev=$enableval], [parport_use_ppdev=yes])
258
259 AC_ARG_ENABLE([parport_giveio],
260 AS_HELP_STRING([--enable-parport-giveio],
261 [Enable use of giveio for parport (for CygWin only)]),
262 [parport_use_giveio=$enableval], [parport_use_giveio=])
263
264 AC_ARG_ENABLE([jtag_vpi],
265 AS_HELP_STRING([--enable-jtag_vpi], [Enable building support for JTAG VPI]),
266 [build_jtag_vpi=$enableval], [build_jtag_vpi=no])
267
268 AC_ARG_ENABLE([amtjtagaccel],
269 AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
270 [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
271
272 AC_ARG_ENABLE([zy1000_master],
273 AS_HELP_STRING([--enable-zy1000-master], [Use ZY1000 JTAG master registers]),
274 [build_zy1000_master=$enableval], [build_zy1000_master=no])
275
276 AC_ARG_ENABLE([zy1000],
277 AS_HELP_STRING([--enable-zy1000], [Enable ZY1000 interface]),
278 [build_zy1000=$enableval], [build_zy1000=no])
279
280 AC_ARG_ENABLE([ioutil],
281 AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]),
282 [build_ioutil=$enableval], [build_ioutil=no])
283
284 AS_CASE(["${host_cpu}"],
285 [arm*], [
286 AC_ARG_ENABLE([ep93xx],
287 AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]),
288 [build_ep93xx=$enableval], [build_ep93xx=no])
289
290 AC_ARG_ENABLE([at91rm9200],
291 AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
292 [build_at91rm9200=$enableval], [build_at91rm9200=no])
293
294 AC_ARG_ENABLE([bcm2835gpio],
295 AS_HELP_STRING([--enable-bcm2835gpio], [Enable building support for bitbanging on BCM2835 (as found in Raspberry Pi)]),
296 [build_bcm2835gpio=$enableval], [build_bcm2835gpio=no])
297 ],
298 [
299 build_ep93xx=no
300 build_at91rm9200=no
301 build_bcm2835gpio=no
302 ])
303
304 AC_ARG_ENABLE([gw16012],
305 AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
306 [build_gw16012=$enableval], [build_gw16012=no])
307
308 AC_ARG_ENABLE([oocd_trace],
309 AS_HELP_STRING([--enable-oocd_trace],
310 [Enable building support for some prototype OpenOCD+trace ETM capture hardware]),
311 [build_oocd_trace=$enableval], [build_oocd_trace=no])
312
313 AC_ARG_ENABLE([buspirate],
314 AS_HELP_STRING([--enable-buspirate], [Enable building support for the Buspirate]),
315 [build_buspirate=$enableval], [build_buspirate=no])
316
317 AC_ARG_ENABLE([sysfsgpio],
318 AS_HELP_STRING([--enable-sysfsgpio], [Enable building support for programming driven via sysfs gpios.]),
319 [build_sysfsgpio=$enableval], [build_sysfsgpio=no])
320
321 AS_CASE([$host_os],
322 [linux*], [],
323 [
324 AS_IF([test "x$build_sysfsgpio" = "xyes"], [
325 AC_MSG_ERROR([sysfsgpio is only available on linux])
326 ])
327 ])
328
329 AC_ARG_ENABLE([minidriver_dummy],
330 AS_HELP_STRING([--enable-minidriver-dummy], [Enable the dummy minidriver.]),
331 [build_minidriver_dummy=$enableval], [build_minidriver_dummy=no])
332
333 AC_ARG_ENABLE([internal-jimtcl],
334 AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
335 [use_internal_jimtcl=$enableval], [use_internal_jimtcl=yes])
336
337 AC_ARG_ENABLE([internal-libjaylink],
338 AS_HELP_STRING([--disable-internal-libjaylink],
339 [Disable building internal libjaylink]),
340 [use_internal_libjaylink=$enableval], [use_internal_libjaylink=yes])
341
342 build_minidriver=no
343 AC_MSG_CHECKING([whether to enable ZY1000 minidriver])
344 AS_IF([test "x$build_zy1000" = "xyes"], [
345 AS_IF([test "x$build_minidriver" = "xyes"], [
346 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
347 ])
348 AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
349 [Define to 1 if you have the <jtag_minidriver.h> header file.])
350 build_minidriver=yes
351 ])
352 AC_MSG_RESULT([$build_zy1000])
353
354 AC_ARG_ENABLE([remote-bitbang],
355 AS_HELP_STRING([--enable-remote-bitbang], [Enable building support for the Remote Bitbang jtag driver]),
356 [build_remote_bitbang=$enableval], [build_remote_bitbang=no])
357
358 AC_MSG_CHECKING([whether to enable dummy minidriver])
359 AS_IF([test "x$build_minidriver_dummy" = "xyes"], [
360 AS_IF([test "x$build_minidriver" = "xyes"], [
361 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
362 ])
363 build_minidriver=yes
364 AC_DEFINE([BUILD_MINIDRIVER_DUMMY], [1], [Use the dummy minidriver.])
365 AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
366 [Define to 1 if you have the <jtag_minidriver.h> header file.])
367 ])
368 AC_MSG_RESULT([$build_minidriver_dummy])
369
370 AC_MSG_CHECKING([whether standard drivers can be built])
371 AS_IF([test "x$build_minidriver" = "xyes"], [
372 AC_MSG_RESULT([no])
373 AC_MSG_WARN([Using the minidriver disables all other drivers.])
374 sleep 2
375 ], [
376 AC_MSG_RESULT([yes])
377 ])
378
379 AS_CASE(["${host_cpu}"],
380 [i?86|x86*], [],
381 [
382 AS_IF([test "x$parport_use_ppdev" = "xno"], [
383 AC_MSG_WARN([--disable-parport-ppdev is not supported by the host CPU])
384 ])
385 parport_use_ppdev=yes
386 ])
387
388 AS_CASE([$host],
389 [*-cygwin*], [
390 is_win32=yes
391 parport_use_ppdev=no
392
393 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[return __MINGW32__;]])],
394 [is_mingw=yes],[is_mingw=no])
395 AS_IF([test "x$is_mingw" = "xyes"], [
396 AS_IF([test "x$parport_use_giveio" = "xno"], [
397 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
398 ])
399 parport_use_giveio=yes
400 is_cygwin=no
401 ], [
402 is_cygwin=yes
403 # sys/io.h needed under cygwin for parport access
404 AS_IF([test "x$build_parport" = "xyes"], [
405 AC_CHECK_HEADERS([sys/io.h],[],AC_MSG_ERROR([Please install the cygwin ioperm package]))
406 ])
407 ])
408 ],
409 [*-mingw* | *-msys*], [
410 is_mingw=yes
411 is_win32=yes
412 parport_use_ppdev=no
413
414 AS_IF([test "x$parport_use_giveio" = "xno"], [
415 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
416 ])
417 parport_use_giveio=yes
418
419 AS_IF([test "x$build_buspirate" = "xyes"], [
420 AC_MSG_ERROR([buspirate currently not supported by MinGW32 hosts])
421 ])
422
423 AC_SUBST([HOST_CPPFLAGS], [-D__USE_MINGW_ANSI_STDIO])
424 ],
425 [*darwin*], [
426 is_darwin=yes
427
428 AS_IF([test "x$parport_use_giveio" = "xyes"], [
429 AC_MSG_WARN([--enable-parport-giveio cannot be used by Darwin hosts])
430 ])
431 parport_use_giveio=no
432 ],
433 [
434 AS_IF([test "x$parport_use_giveio" = "xyes"], [
435 AC_MSG_WARN([--enable-parport-giveio cannot be used by ]$host[ hosts])
436 ])
437 parport_use_giveio=no
438 ])
439
440 AS_IF([test "x$is_cygwin" = "xyes"], [
441 AC_DEFINE([IS_CYGWIN], [1], [1 if building for Cygwin.])
442 ], [
443 AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
444 ])
445
446 AS_IF([test "x$is_mingw" = "xyes"], [
447 AC_DEFINE([IS_MINGW], [1], [1 if building for Mingw.])
448 ], [
449 AC_DEFINE([IS_MINGW], [0], [0 if not building for Mingw.])
450 ])
451
452 AS_IF([test "x$is_win32" = "xyes"], [
453 AC_DEFINE([IS_WIN32], [1], [1 if building for Win32.])
454 ], [
455 AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
456 ])
457
458 AS_IF([test "x$is_darwin" = "xyes"], [
459 AC_DEFINE([IS_DARWIN], [1], [1 if building for Darwin.])
460 ], [
461 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
462 ])
463
464 AS_IF([test "x$build_parport" = "xyes"], [
465 build_bitbang=yes
466 AC_DEFINE([BUILD_PARPORT], [1], [1 if you want parport.])
467 ], [
468 AC_DEFINE([BUILD_PARPORT], [0], [0 if you don't want parport.])
469 ])
470
471 AS_IF([test "x$build_dummy" = "xyes"], [
472 build_bitbang=yes
473 AC_DEFINE([BUILD_DUMMY], [1], [1 if you want dummy driver.])
474 ], [
475 AC_DEFINE([BUILD_DUMMY], [0], [0 if you don't want dummy driver.])
476 ])
477
478 AS_IF([test "x$build_ep93xx" = "xyes"], [
479 build_bitbang=yes
480 AC_DEFINE([BUILD_EP93XX], [1], [1 if you want ep93xx.])
481 ], [
482 AC_DEFINE([BUILD_EP93XX], [0], [0 if you don't want ep93xx.])
483 ])
484
485 AS_IF([test "x$build_zy1000" = "xyes"], [
486 AC_DEFINE([BUILD_ZY1000], [1], [1 if you want ZY1000.])
487 ], [
488 AC_DEFINE([BUILD_ZY1000], [0], [0 if you don't want ZY1000.])
489 ])
490
491 AS_IF([test "x$build_zy1000_master" = "xyes"], [
492 AC_DEFINE([BUILD_ZY1000_MASTER], [1], [1 if you want ZY1000 JTAG master registers.])
493 ], [
494 AC_DEFINE([BUILD_ZY1000_MASTER], [0], [0 if you don't want ZY1000 JTAG master registers.])
495 ])
496
497 AS_IF([test "x$build_at91rm9200" = "xyes"], [
498 build_bitbang=yes
499 AC_DEFINE([BUILD_AT91RM9200], [1], [1 if you want at91rm9200.])
500 ], [
501 AC_DEFINE([BUILD_AT91RM9200], [0], [0 if you don't want at91rm9200.])
502 ])
503
504 AS_IF([test "x$build_bcm2835gpio" = "xyes"], [
505 build_bitbang=yes
506 AC_DEFINE([BUILD_BCM2835GPIO], [1], [1 if you want bcm2835gpio.])
507 ], [
508 AC_DEFINE([BUILD_BCM2835GPIO], [0], [0 if you don't want bcm2835gpio.])
509 ])
510
511 AS_IF([test "x$parport_use_ppdev" = "xyes"], [
512 AC_DEFINE([PARPORT_USE_PPDEV], [1], [1 if you want parport to use ppdev.])
513 ], [
514 AC_DEFINE([PARPORT_USE_PPDEV], [0], [0 if you don't want parport to use ppdev.])
515 ])
516
517 AS_IF([test "x$parport_use_giveio" = "xyes"], [
518 AC_DEFINE([PARPORT_USE_GIVEIO], [1], [1 if you want parport to use giveio.])
519 ], [
520 AC_DEFINE([PARPORT_USE_GIVEIO], [0], [0 if you don't want parport to use giveio.])
521 ])
522
523 AS_IF([test "x$build_jtag_vpi" = "xyes"], [
524 AC_DEFINE([BUILD_JTAG_VPI], [1], [1 if you want JTAG VPI.])
525 ], [
526 AC_DEFINE([BUILD_JTAG_VPI], [0], [0 if you don't want JTAG VPI.])
527 ])
528
529 AS_IF([test "x$build_amtjtagaccel" = "xyes"], [
530 AC_DEFINE([BUILD_AMTJTAGACCEL], [1], [1 if you want the Amontec JTAG-Accelerator driver.])
531 ], [
532 AC_DEFINE([BUILD_AMTJTAGACCEL], [0], [0 if you don't want the Amontec JTAG-Accelerator driver.])
533 ])
534
535 AS_IF([test "x$build_gw16012" = "xyes"], [
536 AC_DEFINE([BUILD_GW16012], [1], [1 if you want the Gateworks GW16012 driver.])
537 ], [
538 AC_DEFINE([BUILD_GW16012], [0], [0 if you don't want the Gateworks GW16012 driver.])
539 ])
540
541 AS_IF([test "x$build_oocd_trace" = "xyes"], [
542 AC_DEFINE([BUILD_OOCD_TRACE], [1], [1 if you want the OpenOCD+trace ETM capture driver.])
543 ], [
544 AC_DEFINE([BUILD_OOCD_TRACE], [0], [0 if you don't want the OpenOCD+trace ETM capture driver.])
545 ])
546
547 AS_IF([test "x$build_buspirate" = "xyes"], [
548 AC_DEFINE([BUILD_BUSPIRATE], [1], [1 if you want the Buspirate JTAG driver.])
549 ], [
550 AC_DEFINE([BUILD_BUSPIRATE], [0], [0 if you don't want the Buspirate JTAG driver.])
551 ])
552
553 AS_IF([test "x$use_internal_jimtcl" = "xyes"], [
554 AS_IF([test -f "$srcdir/jimtcl/configure.ac"], [
555 AX_CONFIG_SUBDIR_OPTION([jimtcl], [--disable-install-jim --with-ext="eventloop array clock regexp stdlib tclcompat" --without-ext="default"])
556 ], [
557 AC_MSG_ERROR([jimtcl not found, run git submodule init and git submodule update.])
558 ])
559 ])
560
561 AS_IF([test "x$build_remote_bitbang" = "xyes"], [
562 build_bitbang=yes
563 AC_DEFINE([BUILD_REMOTE_BITBANG], [1], [1 if you want the Remote Bitbang JTAG driver.])
564 ], [
565 AC_DEFINE([BUILD_REMOTE_BITBANG], [0], [0 if you don't want the Remote Bitbang JTAG driver.])
566 ])
567
568 AS_IF([test "x$build_sysfsgpio" = "xyes"], [
569 build_bitbang=yes
570 AC_DEFINE([BUILD_SYSFSGPIO], [1], [1 if you want the SysfsGPIO driver.])
571 ], [
572 AC_DEFINE([BUILD_SYSFSGPIO], [0], [0 if you don't want SysfsGPIO driver.])
573 ])
574
575 PKG_CHECK_MODULES([LIBUSB1], [libusb-1.0], [
576 use_libusb1=yes
577 AC_DEFINE([HAVE_LIBUSB1], [1], [Define if you have libusb-1.x])
578 PKG_CHECK_EXISTS([libusb-1.0 >= 1.0.9],
579 [AC_DEFINE([HAVE_LIBUSB_ERROR_NAME], [1], [Define if your libusb has libusb_error_name()])],
580 [AC_MSG_WARN([libusb-1.x older than 1.0.9 detected, consider updating])])
581 LIBUSB1_CFLAGS=`echo $LIBUSB1_CFLAGS | sed 's/-I/-isystem /'`
582 AC_MSG_NOTICE([libusb-1.0 header bug workaround: LIBUSB1_CFLAGS changed to "$LIBUSB1_CFLAGS"])
583 PKG_CHECK_EXISTS([libusb-1.0 >= 1.0.16],
584 [AC_DEFINE([HAVE_LIBUSB_GET_PORT_NUMBERS], [1], [Define if your libusb has libusb_get_port_numbers()])])
585 ], [
586 use_libusb1=no
587 AC_MSG_WARN([libusb-1.x not found, trying legacy libusb-0.1 as a fallback; consider installing libusb-1.x instead])
588 ])
589
590 PKG_CHECK_MODULES([LIBUSB0], [libusb], [use_libusb0=yes], [use_libusb0=no])
591
592 for hidapi_lib in hidapi hidapi-hidraw hidapi-libusb; do
593 PKG_CHECK_MODULES([HIDAPI],[$hidapi_lib],[
594 use_hidapi=yes
595 break
596 ],[
597 use_hidapi=no
598 ])
599 done
600
601 PKG_CHECK_MODULES([LIBFTDI], [libftdi1], [use_libftdi=yes], [
602 PKG_CHECK_MODULES([LIBFTDI], [libftdi], [use_libftdi=yes], [use_libftdi=no])
603 ])
604
605 PKG_CHECK_MODULES([LIBJAYLINK], [libjaylink >= 0.1],
606 [use_libjaylink=yes], [use_libjaylink=no])
607
608 m4_define([PROCESS_ADAPTERS], [
609 m4_foreach([adapter], [$1], [
610 AS_IF([test $2], [
611 AS_IF([test "x$ADAPTER_VAR([adapter])" != "xno"], [
612 AC_DEFINE([BUILD_]ADAPTER_SYM([adapter]), [1], [1 if you want the ]ADAPTER_DESC([adapter]).)
613 ], [
614 AC_DEFINE([BUILD_]ADAPTER_SYM([adapter]), [0], [0 if you do not want the ]ADAPTER_DESC([adapter]).)
615 ])
616 ], [
617 AS_IF([test "x$ADAPTER_VAR([adapter])" = "xyes"], [
618 AC_MSG_ERROR([$3 is required for the ADAPTER_DESC([adapter])])
619 ])
620 ADAPTER_VAR([adapter])=no
621 ])
622 AM_CONDITIONAL(ADAPTER_SYM([adapter]), [test "x$ADAPTER_VAR([adapter])" != "xno"])
623 ])
624 ])
625
626 PROCESS_ADAPTERS([USB1_ADAPTERS], ["x$use_libusb1" = "xyes"], [libusb-1.x])
627 PROCESS_ADAPTERS([USB_ADAPTERS], ["x$use_libusb1" = "xyes" -o "x$use_libusb0" = "xyes"], [libusb-1.x or libusb-0.1])
628 PROCESS_ADAPTERS([USB0_ADAPTERS], ["x$use_libusb0" = "xyes"], [libusb-0.1])
629 PROCESS_ADAPTERS([HIDAPI_ADAPTERS], ["x$use_hidapi" = "xyes"], [hidapi])
630 PROCESS_ADAPTERS([LIBFTDI_ADAPTERS], ["x$use_libftdi" = "xyes"], [libftdi])
631 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])
632
633 AS_IF([test "x$build_openjtag" = "xyes"], [
634 AS_IF([test "x$use_libusb1" != "xyes" -a "x$use_libusb0" != "xyes"], [
635 AC_MSG_ERROR([libusb-1.x or libusb-0.1 is required for the OpenJTAG Programmer])
636 build_openjtag=no
637 ])
638 ])
639
640 AS_IF([test "x$enable_stlink" != "xno" -o "x$enable_ti_icdi" != "xno"], [
641 AC_DEFINE([BUILD_HLADAPTER], [1], [1 if you want the High Level JTAG driver.])
642 ], [
643 AC_DEFINE([BUILD_HLADAPTER], [0], [0 if you want the High Level JTAG driver.])
644 ])
645 AM_CONDITIONAL([HLADAPTER], [test "x$enable_stlink" != "xno" -o "x$enable_ti_icdi" != "xno"])
646
647 AS_IF([test "x$enable_jlink" != "xno"], [
648 AS_IF([test "x$use_internal_libjaylink" = "xyes"], [
649 AS_IF([test -f "$srcdir/src/jtag/drivers/libjaylink/configure.ac"], [
650 AX_CONFIG_SUBDIR_OPTION([src/jtag/drivers/libjaylink],
651 [--enable-subproject-build])
652 ], [
653 AC_MSG_ERROR([Internal libjaylink not found, run either 'git submodule init' and 'git submodule update' or disable internal libjaylink with --disable-internal-libjaylink.])
654 ])
655 ])
656 ])
657
658 # Presto needs the bitq module
659 AS_IF([test "x$enable_presto" != "xno"], [
660 build_bitq=yes
661 ])
662
663 AM_CONDITIONAL([RELEASE], [test "x$build_release" = "xyes"])
664 AM_CONDITIONAL([PARPORT], [test "x$build_parport" = "xyes"])
665 AM_CONDITIONAL([DUMMY], [test "x$build_dummy" = "xyes"])
666 AM_CONDITIONAL([GIVEIO], [test "x$parport_use_giveio" = "xyes"])
667 AM_CONDITIONAL([EP93XX], [test "x$build_ep93xx" = "xyes"])
668 AM_CONDITIONAL([ZY1000], [test "x$build_zy1000" = "xyes"])
669 AM_CONDITIONAL([ZY1000_MASTER], [test "x$build_zy1000_master" = "xyes"])
670 AM_CONDITIONAL([IOUTIL], [test "x$build_ioutil" = "xyes"])
671 AM_CONDITIONAL([AT91RM9200], [test "x$build_at91rm9200" = "xyes"])
672 AM_CONDITIONAL([BCM2835GPIO], [test "x$build_bcm2835gpio" = "xyes"])
673 AM_CONDITIONAL([BITBANG], [test "x$build_bitbang" = "xyes"])
674 AM_CONDITIONAL([JTAG_VPI], [test "x$build_jtag_vpi" = "xyes" -o "x$build_jtag_vpi" = "xyes"])
675 AM_CONDITIONAL([USB_BLASTER_DRIVER], [test "x$enable_usb_blaster" != "xno" -o "x$enable_usb_blaster_2" != "xno"])
676 AM_CONDITIONAL([AMTJTAGACCEL], [test "x$build_amtjtagaccel" = "xyes"])
677 AM_CONDITIONAL([GW16012], [test "x$build_gw16012" = "xyes"])
678 AM_CONDITIONAL([OOCD_TRACE], [test "x$build_oocd_trace" = "xyes"])
679 AM_CONDITIONAL([REMOTE_BITBANG], [test "x$build_remote_bitbang" = "xyes"])
680 AM_CONDITIONAL([BUSPIRATE], [test "x$build_buspirate" = "xyes"])
681 AM_CONDITIONAL([SYSFSGPIO], [test "x$build_sysfsgpio" = "xyes"])
682 AM_CONDITIONAL([USE_LIBUSB0], [test "x$use_libusb0" = "xyes"])
683 AM_CONDITIONAL([USE_LIBUSB1], [test "x$use_libusb1" = "xyes"])
684 AM_CONDITIONAL([IS_CYGWIN], [test "x$is_cygwin" = "xyes"])
685 AM_CONDITIONAL([IS_MINGW], [test "x$is_mingw" = "xyes"])
686 AM_CONDITIONAL([IS_WIN32], [test "x$is_win32" = "xyes"])
687 AM_CONDITIONAL([IS_DARWIN], [test "x$is_darwin" = "xyes"])
688 AM_CONDITIONAL([BITQ], [test "x$build_bitq" = "xyes"])
689 AM_CONDITIONAL([USE_LIBFTDI], [test "x$use_libftdi" = "xyes"])
690 AM_CONDITIONAL([USE_HIDAPI], [test "x$use_hidapi" = "xyes"])
691 AM_CONDITIONAL([USE_LIBJAYLINK], [test "x$use_libjaylink" = "xyes"])
692
693 AM_CONDITIONAL([MINIDRIVER], [test "x$build_minidriver" = "xyes"])
694 AM_CONDITIONAL([MINIDRIVER_DUMMY], [test "x$build_minidriver_dummy" = "xyes"])
695
696 AM_CONDITIONAL([INTERNAL_JIMTCL], [test "x$use_internal_jimtcl" = "xyes"])
697 AM_CONDITIONAL([INTERNAL_LIBJAYLINK], [test "x$use_internal_libjaylink" = "xyes"])
698
699 # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h?
700 AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
701 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
702 #define _GNU_SOURCE
703 #include <unistd.h>
704 #include <stdlib.h>
705 ]], [[char **ep = environ;]]
706 )], [
707 AC_MSG_RESULT([yes])
708 has_environ=yes
709 ], [
710 AC_MSG_RESULT([no])
711
712 # Possibility #2: can environ be found in an available library?
713 AC_MSG_CHECKING([for extern environ])
714 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
715 extern char **environ;
716 ]], [[char **ep = environ;]]
717 )], [
718 AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
719 has_environ=yes
720 ], [
721 has_environ=no
722 ])
723 AC_MSG_RESULT([${has_environ}])
724 ])
725
726 AS_IF([test "x${has_environ}" != "xyes" ], [
727 AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
728 ])
729
730 AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
731
732 # set default gcc warnings
733 GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security -Wshadow"
734 AS_IF([test "x${gcc_wextra}" = "xyes"], [
735 GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
736 GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
737 GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
738 GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
739 ])
740 AS_IF([test "x${gcc_werror}" = "xyes"], [
741 GCC_WARNINGS="${GCC_WARNINGS} -Werror"
742 ])
743
744 # overide default gcc cflags
745 AS_IF([test "x$gcc_warnings" = "xyes"], [
746 AC_SUBST([GCC_WARNINGS], [$GCC_WARNINGS])
747 ])
748
749 AC_CONFIG_FILES([
750 Makefile
751 ])
752 AC_OUTPUT
753
754 echo
755 echo
756 echo OpenOCD configuration summary
757 echo --------------------------------------------------
758 m4_foreach([adapter], [USB1_ADAPTERS, USB_ADAPTERS, USB0_ADAPTERS,
759 HIDAPI_ADAPTERS, LIBFTDI_ADAPTERS, LIBJAYLINK_ADAPTERS],
760 [s=m4_format(["%-40s"], ADAPTER_DESC([adapter]))
761 AS_CASE([$ADAPTER_VAR([adapter])],
762 [auto], [
763 echo "$s"yes '(auto)'
764 ],
765 [yes], [
766 echo "$s"yes
767 ],
768 [no], [
769 echo "$s"no
770 ])
771 ])
772 echo
773
774 AS_IF([test "x$build_oocd_trace" = "xyes"], [
775 echo 'WARNING! Deprecated configure option (--enable-oocd_trace)'
776 echo 'The oocd_trace driver is deprecated and will be removed in the next release.'
777 echo 'If you regularly use this driver, please report to the OpenOCD Mailing List.'
778 echo
779 ])
780
781 AS_IF([test "x$build_zy1000" = "xyes" -o "x$build_zy1000_master" = "xyes"], [
782 echo 'WARNING! Deprecated configure option (--enable-zy1000, --enable-zy1000-master)'
783 echo 'Support for the ZY1000 platform is deprecated and will be removed in the next'
784 echo 'release. If you regularly use this platform, please report to the OpenOCD'
785 echo 'Mailing List.'
786 echo
787 ])
788
789 AS_IF([test "x$build_ioutil" = "xyes"], [
790 echo 'WARNING! Deprecated configure option (--enable-ioutil)'
791 echo 'Support for the ioutil functions is deprecated and will be removed in the next'
792 echo 'release. If you regularly depend on this functionality, please report to the'
793 echo 'OpenOCD Mailing List.'
794 echo
795 ])

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)