Remove since long deprecated ft2232 driver
[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 if test "x$MAKEINFO" = "x"; then
11 MAKEINFO='echo makeinfo missing; true'
12 AC_MSG_WARN([Info documentation will not be built.])
13 fi
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([arpa/inet.h], [], [], [dnl
49 #include <stdio.h>
50 #ifdef STDC_HEADERS
51 # include <stdlib.h>
52 # include <stddef.h>
53 #else
54 # ifdef HAVE_STDLIB_H
55 # include <stdlib.h>
56 # endif
57 #endif
58 #ifdef HAVE_SYS_SOCKET_H
59 # include <sys/socket.h>
60 #endif
61 ])
62 AC_CHECK_HEADERS([elf.h])
63 AC_CHECK_HEADERS([dirent.h])
64 AC_CHECK_HEADERS([fcntl.h])
65 AC_CHECK_HEADERS([ifaddrs.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 AC_CHECK_HEADERS([malloc.h])
80 AC_CHECK_HEADERS([netdb.h])
81 AC_CHECK_HEADERS([netinet/in.h], [], [], [dnl
82 #include <stdio.h>
83 #ifdef STDC_HEADERS
84 # include <stdlib.h>
85 # include <stddef.h>
86 #else
87 # ifdef HAVE_STDLIB_H
88 # include <stdlib.h>
89 # endif
90 #endif
91 #ifdef HAVE_SYS_SOCKET_H
92 # include <sys/socket.h>
93 #endif
94 ])
95 AC_CHECK_HEADERS([netinet/tcp.h], [], [], [dnl
96 #include <stdio.h>
97 #ifdef STDC_HEADERS
98 # include <stdlib.h>
99 # include <stddef.h>
100 #else
101 # ifdef HAVE_STDLIB_H
102 # include <stdlib.h>
103 # endif
104 #endif
105 #ifdef HAVE_SYS_SOCKET_H
106 # include <sys/socket.h>
107 #endif
108 ])
109 AC_CHECK_HEADERS([poll.h])
110 AC_CHECK_HEADERS([pthread.h])
111 AC_CHECK_HEADERS([strings.h])
112 AC_CHECK_HEADERS([sys/ioctl.h])
113 AC_CHECK_HEADERS([sys/param.h])
114 AC_CHECK_HEADERS([sys/select.h])
115 AC_CHECK_HEADERS([sys/stat.h])
116 AC_CHECK_HEADERS([sys/time.h])
117 AC_CHECK_HEADERS([sys/types.h])
118 AC_CHECK_HEADERS([unistd.h])
119 AC_CHECK_HEADERS([net/if.h], [], [], [dnl
120 #include <stdio.h>
121 #ifdef STDC_HEADERS
122 # include <stdlib.h>
123 # include <stddef.h>
124 #else
125 # ifdef HAVE_STDLIB_H
126 # include <stdlib.h>
127 # endif
128 #endif
129 #ifdef HAVE_SYS_SOCKET_H
130 # include <sys/socket.h>
131 #endif
132 ])
133
134 AC_HEADER_ASSERT
135 AC_HEADER_STDBOOL
136 AC_HEADER_TIME
137
138 AC_C_BIGENDIAN
139
140 AC_CHECK_FUNCS([strndup])
141 AC_CHECK_FUNCS([strnlen])
142 AC_CHECK_FUNCS([gettimeofday])
143 AC_CHECK_FUNCS([usleep])
144 AC_CHECK_FUNCS([vasprintf])
145
146 build_bitbang=no
147 build_bitq=no
148 is_cygwin=no
149 is_mingw=no
150 is_win32=no
151 is_darwin=no
152
153 # guess-rev.sh only exists in the repository, not in the released archives
154 AC_MSG_CHECKING([whether to build a release])
155 if test -x $srcdir/guess-rev.sh ; then
156 build_release=no
157 else
158 build_release=yes
159 fi
160 AC_MSG_RESULT([$build_release])
161
162 AC_ARG_WITH(ftd2xx,
163 AS_HELP_STRING([--with-ftd2xx=<PATH>],[This option has been removed.]),
164 [
165 # Option Given.
166 cat << __EOF__
167
168 The option: --with-ftd2xx=<PATH> has been removed.
169 On Linux, the new option is:
170
171 --with-ftd2xx-linux-tardir=/path/to/files
172
173 Where <path> is the path the the directory where the "tar.gz" file
174 from FTDICHIP.COM was unpacked, for example:
175
176 --with-ftd2xx-linux-tardir=${HOME}/libftd2xx0.4.16
177
178 On Cygwin/MingW32, the new option is:
179
180 --with-ftd2xx-win32-zipdir=/path/to/files
181
182 Where <path> is the path to the directory where the "zip" file from
183 FTDICHIP.COM was unpacked, for example:
184
185 --with-ftd2xx-win32-zipdir=${HOME}/ftd2xx.cdm.files
186
187 __EOF__
188
189 AC_MSG_ERROR([Sorry Cannot continue])
190 ], [true])
191
192 # Adapter drivers
193 # 1st column -- configure option
194 # 2nd column -- description
195 # 3rd column -- symbol used for both config.h and automake
196 m4_define([ADAPTER_ARG], [m4_argn([1], $1)])
197 m4_define([ADAPTER_DESC], [m4_argn([2], $1)])
198 m4_define([ADAPTER_SYM], [m4_argn([3], $1)])
199 m4_define([ADAPTER_VAR], [enable_[]ADAPTER_ARG($1)])
200 m4_define([ADAPTER_OPT], [m4_translit(ADAPTER_ARG($1), [_], [-])])
201
202 m4_define([USB1_ADAPTERS],
203 [[[ftdi], [MPSSE mode of FTDI based devices], [FTDI]],
204 [[stlink], [ST-Link JTAG Programmer], [HLADAPTER_STLINK]],
205 [[ti_icdi], [TI ICDI JTAG Programmer], [HLADAPTER_ICDI]],
206 [[ulink], [Keil ULINK JTAG Programmer], [ULINK]],
207 [[usb_blaster_2], [Altera USB-Blaster II Compatible], [USB_BLASTER_2]],
208 [[vsllink], [Versaloon-Link JTAG Programmer], [VSLLINK]]])
209
210 m4_define([USB_ADAPTERS],
211 [[[osbdm], [OSBDM (JTAG only) Programmer], [OSBDM]],
212 [[opendous], [eStick/opendous JTAG Programmer], [OPENDOUS]],
213 [[aice], [Andes JTAG Programmer], [AICE]]])
214
215 m4_define([USB0_ADAPTERS],
216 [[[usbprog], [USBProg JTAG Programmer], [USBPROG]],
217 [[rlink], [Raisonance RLink JTAG Programmer], [RLINK]],
218 [[armjtagew], [Olimex ARM-JTAG-EW Programmer], [ARMJTAGEW]]])
219
220 m4_define([HIDAPI_ADAPTERS],
221 [[[cmsis_dap], [CMSIS-DAP Compliant Debugger], [CMSIS_DAP]]])
222
223 m4_define([LIBJAYLINK_ADAPTERS],
224 [[[jlink], [SEGGER J-Link Programmer], [JLINK]]])
225
226 #========================================
227 # FTD2XXX support comes in 4 forms.
228 # (1) win32 - via a zip file
229 # (2) linux - via a tar file
230 # (3) linux/cygwin/mingw - via libftdi
231 # (4) darwin - installed under /usr/local
232 #
233 # In case (1) and (2) we need to know where the package was unpacked.
234
235 AC_ARG_WITH(ftd2xx-win32-zipdir,
236 AS_HELP_STRING([--with-ftd2xx-win32-zipdir],[Where (CYGWIN/MINGW) the zip file from ftdichip.com was unpacked (default=search)]),
237 [
238 # option present
239 if test -d $with_ftd2xx_win32_zipdir
240 then
241 with_ftd2xx_win32_zipdir=`cd $with_ftd2xx_win32_zipdir && pwd`
242 AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_win32_zipdir])
243 else
244 AC_MSG_ERROR([Parameter to --with-ftd2xx-win32-zipdir is not a dir: $with_ftd2xx_win32_zipdir])
245 fi
246 ], [true])
247
248 AC_ARG_WITH(ftd2xx-linux-tardir,
249 AS_HELP_STRING([--with-ftd2xx-linux-tardir], [Where (Linux/Unix) the tar file from ftdichip.com was unpacked (default=search)]),
250 [
251 # Option present
252 if test $is_win32 = yes ; then
253 AC_MSG_ERROR([The option: --with-ftd2xx-linux-tardir is only usable on linux])
254 fi
255 if test -d $with_ftd2xx_linux_tardir
256 then
257 with_ftd2xx_linux_tardir=`cd $with_ftd2xx_linux_tardir && pwd`
258 AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_linux_tardir])
259 else
260 AC_MSG_ERROR([Parameter to --with-ftd2xx-linux-tardir is not a dir: $with_ftd2xx_linux_tardir])
261 fi
262 ], [true])
263
264 AC_ARG_WITH(ftd2xx-lib,
265 AS_HELP_STRING([--with-ftd2xx-lib],
266 [Use static or shared ftd2xx libs (default=static)]),
267 [
268 case "$withval" in
269 static)
270 with_ftd2xx_lib=$withval
271 ;;
272 shared)
273 with_ftd2xx_lib=$withval
274 ;;
275 *)
276 AC_MSG_ERROR([Option: --with-ftd2xx-lib=static or --with-ftd2xx-lib=shared not, $withval])
277 ;;
278 esac
279 ], [
280 # Default is static - it is simpler :-(
281 with_ftd2xx_lib=static
282 ])
283
284 AC_ARG_ENABLE([doxygen-html],
285 AS_HELP_STRING([--disable-doxygen-html],
286 [Disable building Doxygen manual as HTML.]),
287 [doxygen_as_html=$enableval], [doxygen_as_html=yes])
288 AC_SUBST([doxygen_as_html])
289 AC_MSG_CHECKING([whether to build Doxygen as HTML])
290 AC_MSG_RESULT([$doxygen_as_html])
291
292 AC_ARG_ENABLE([doxygen-pdf],
293 AS_HELP_STRING([--enable-doxygen-pdf],
294 [Enable building Doxygen manual as PDF.]),
295 [doxygen_as_pdf=$enableval], [doxygen_as_pdf=no])
296 AC_SUBST([doxygen_as_pdf])
297 AC_MSG_CHECKING([whether to build Doxygen as PDF])
298 AC_MSG_RESULT([$doxygen_as_pdf])
299
300 AC_ARG_ENABLE([gccwarnings],
301 AS_HELP_STRING([--disable-gccwarnings], [Disable compiler warnings]),
302 [gcc_warnings=$enableval], [gcc_warnings=yes])
303
304 AC_ARG_ENABLE([wextra],
305 AS_HELP_STRING([--disable-wextra], [Disable extra compiler warnings]),
306 [gcc_wextra=$enableval], [gcc_wextra=$gcc_warnings])
307
308 AC_ARG_ENABLE([werror],
309 AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
310 [gcc_werror=$enableval], [gcc_werror=$gcc_warnings])
311
312 # set default verbose options, overridden by following options
313 debug_jtag_io=no
314 debug_usb_io=no
315 debug_usb_comms=no
316
317 AC_ARG_ENABLE([verbose],
318 AS_HELP_STRING([--enable-verbose],
319 [Enable verbose JTAG I/O messages (for debugging).]),
320 [
321 debug_jtag_io=$enableval
322 debug_usb_io=$enableval
323 debug_usb_comms=$enableval
324 ], [])
325
326 AC_ARG_ENABLE([verbose_jtag_io],
327 AS_HELP_STRING([--enable-verbose-jtag-io],
328 [Enable verbose JTAG I/O messages (for debugging).]),
329 [debug_jtag_io=$enableval], [])
330
331 AC_ARG_ENABLE([verbose_usb_io],
332 AS_HELP_STRING([--enable-verbose-usb-io],
333 [Enable verbose USB I/O messages (for debugging)]),
334 [debug_usb_io=$enableval], [])
335
336 AC_ARG_ENABLE([verbose_usb_comms],
337 AS_HELP_STRING([--enable-verbose-usb-comms],
338 [Enable verbose USB communication messages (for debugging)]),
339 [debug_usb_comms=$enableval], [])
340
341 AC_MSG_CHECKING([whether to enable verbose JTAG I/O messages]);
342 AC_MSG_RESULT([$debug_jtag_io])
343 if test $debug_jtag_io = yes; then
344 AC_DEFINE([_DEBUG_JTAG_IO_],[1], [Print verbose JTAG I/O messages])
345 fi
346
347 AC_MSG_CHECKING([whether to enable verbose USB I/O messages]);
348 AC_MSG_RESULT([$debug_usb_io])
349 if test $debug_usb_io = yes; then
350 AC_DEFINE([_DEBUG_USB_IO_],[1], [Print verbose USB I/O messages])
351 fi
352
353 AC_MSG_CHECKING([whether to enable verbose USB communication messages]);
354 AC_MSG_RESULT([$debug_usb_comms])
355 if test $debug_usb_comms = yes; then
356 AC_DEFINE([_DEBUG_USB_COMMS_],[1], [Print verbose USB communication messages])
357 fi
358
359 debug_malloc=no
360 AC_ARG_ENABLE([malloc_logging],
361 AS_HELP_STRING([--enable-malloc-logging],
362 [Include free space in logging messages (requires malloc.h).]),
363 [debug_malloc=$enableval], [])
364
365 AC_MSG_CHECKING([whether to enable malloc free space logging]);
366 AC_MSG_RESULT([$debug_malloc])
367 if test $debug_malloc = yes; then
368 AC_DEFINE([_DEBUG_FREE_SPACE_],[1], [Include malloc free space in logging])
369 fi
370
371 AC_ARG_ENABLE([dummy],
372 AS_HELP_STRING([--enable-dummy], [Enable building the dummy port driver]),
373 [build_dummy=$enableval], [build_dummy=no])
374
375 m4_define([AC_ARG_ADAPTERS], [
376 m4_foreach([adapter], [$1],
377 [AC_ARG_ENABLE(ADAPTER_OPT([adapter]),
378 AS_HELP_STRING([--enable-ADAPTER_OPT([adapter])],
379 [Enable building support for the ]ADAPTER_DESC([adapter])[ (default is $2)]),
380 [], [ADAPTER_VAR([adapter])=$2])
381 ])
382 ])
383
384 AC_ARG_ADAPTERS([USB1_ADAPTERS, USB_ADAPTERS, USB0_ADAPTERS, HIDAPI_ADAPTERS, LIBJAYLINK_ADAPTERS], [auto])
385
386 AC_ARG_ENABLE([parport],
387 AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
388 [build_parport=$enableval], [build_parport=no])
389
390 AC_ARG_ENABLE([parport_ppdev],
391 AS_HELP_STRING([--disable-parport-ppdev],
392 [Disable use of ppdev (/dev/parportN) for parport (for x86 only)]),
393 [parport_use_ppdev=$enableval], [parport_use_ppdev=yes])
394
395 AC_ARG_ENABLE([parport_giveio],
396 AS_HELP_STRING([--enable-parport-giveio],
397 [Enable use of giveio for parport (for CygWin only)]),
398 [parport_use_giveio=$enableval], [parport_use_giveio=])
399
400 AC_ARG_ENABLE([jtag_vpi],
401 AS_HELP_STRING([--enable-jtag_vpi], [Enable building support for JTAG VPI]),
402 [build_jtag_vpi=$enableval], [build_jtag_vpi=no])
403
404 AC_ARG_ENABLE([usb_blaster_libftdi],
405 AS_HELP_STRING([--enable-usb_blaster_libftdi], [Enable building support for the Altera USB-Blaster using the libftdi driver, opensource alternate of FTD2XX]),
406 [build_usb_blaster_libftdi=$enableval], [build_usb_blaster_libftdi=no])
407
408 AC_ARG_ENABLE([usb_blaster_ftd2xx],
409 AS_HELP_STRING([--enable-usb_blaster_ftd2xx], [Enable building support for the Altera USB-Blaster using the FTD2XX driver from ftdichip.com]),
410 [build_usb_blaster_ftd2xx=$enableval], [build_usb_blaster_ftd2xx=no])
411
412 AC_ARG_ENABLE([amtjtagaccel],
413 AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
414 [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
415
416 AC_ARG_ENABLE([zy1000_master],
417 AS_HELP_STRING([--enable-zy1000-master], [Use ZY1000 JTAG master registers]),
418 [build_zy1000_master=$enableval], [build_zy1000_master=no])
419
420 AC_ARG_ENABLE([zy1000],
421 AS_HELP_STRING([--enable-zy1000], [Enable ZY1000 interface]),
422 [build_zy1000=$enableval], [build_zy1000=no])
423
424 AC_ARG_ENABLE([ioutil],
425 AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]),
426 [build_ioutil=$enableval], [build_ioutil=no])
427
428 case "${host_cpu}" in
429 arm*)
430 AC_ARG_ENABLE([ep93xx],
431 AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]),
432 [build_ep93xx=$enableval], [build_ep93xx=no])
433
434 AC_ARG_ENABLE([at91rm9200],
435 AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
436 [build_at91rm9200=$enableval], [build_at91rm9200=no])
437
438 AC_ARG_ENABLE([bcm2835gpio],
439 AS_HELP_STRING([--enable-bcm2835gpio], [Enable building support for bitbanging on BCM2835 (as found in Raspberry Pi)]),
440 [build_bcm2835gpio=$enableval], [build_bcm2835gpio=no])
441 ;;
442
443 *)
444 build_ep93xx=no
445 build_at91rm9200=no
446 build_bcm2835gpio=no
447 ;;
448 esac
449
450 AC_ARG_ENABLE([gw16012],
451 AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
452 [build_gw16012=$enableval], [build_gw16012=no])
453
454 AC_ARG_ENABLE([presto_libftdi],
455 AS_HELP_STRING([--enable-presto_libftdi], [Enable building support for ASIX Presto Programmer using the libftdi driver]),
456 [build_presto_libftdi=$enableval], [build_presto_libftdi=no])
457
458 AC_ARG_ENABLE([presto_ftd2xx],
459 AS_HELP_STRING([--enable-presto_ftd2xx], [Enable building support for ASIX Presto Programmer using the FTD2XX driver]),
460 [build_presto_ftd2xx=$enableval], [build_presto_ftd2xx=no])
461
462 AC_ARG_ENABLE([openjtag_ftd2xx],
463 AS_HELP_STRING([--enable-openjtag_ftd2xx], [Enable building support for the OpenJTAG Programmer with ftd2xx driver]),
464 [build_openjtag_ftd2xx=$enableval], [build_openjtag_ftd2xx=no])
465
466 AC_ARG_ENABLE([openjtag_ftdi],
467 AS_HELP_STRING([--enable-openjtag_ftdi], [Enable building support for the OpenJTAG Programmer with ftdi driver]),
468 [build_openjtag_ftdi=$enableval], [build_openjtag_ftdi=no])
469
470 AC_ARG_ENABLE([oocd_trace],
471 AS_HELP_STRING([--enable-oocd_trace],
472 [Enable building support for some prototype OpenOCD+trace ETM capture hardware]),
473 [build_oocd_trace=$enableval], [build_oocd_trace=no])
474
475 AC_ARG_ENABLE([buspirate],
476 AS_HELP_STRING([--enable-buspirate], [Enable building support for the Buspirate]),
477 [build_buspirate=$enableval], [build_buspirate=no])
478
479 AC_ARG_ENABLE([sysfsgpio],
480 AS_HELP_STRING([--enable-sysfsgpio], [Enable building support for programming driven via sysfs gpios.]),
481 [build_sysfsgpio=$enableval], [build_sysfsgpio=no])
482
483 AC_ARG_ENABLE([minidriver_dummy],
484 AS_HELP_STRING([--enable-minidriver-dummy], [Enable the dummy minidriver.]),
485 [build_minidriver_dummy=$enableval], [build_minidriver_dummy=no])
486
487 AC_ARG_ENABLE([internal-jimtcl],
488 AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
489 [use_internal_jimtcl=$enableval], [use_internal_jimtcl=yes])
490
491 AC_ARG_ENABLE([internal-libjaylink],
492 AS_HELP_STRING([--disable-internal-libjaylink],
493 [Disable building internal libjaylink]),
494 [use_internal_libjaylink=$enableval], [use_internal_libjaylink=yes])
495
496 build_minidriver=no
497 AC_MSG_CHECKING([whether to enable ZY1000 minidriver])
498 if test $build_zy1000 = yes; then
499 if test $build_minidriver = yes; then
500 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
501 fi
502 AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
503 [Define to 1 if you have the <jtag_minidriver.h> header file.])
504 build_minidriver=yes
505 fi
506 AC_MSG_RESULT([$build_zy1000])
507
508 AC_ARG_ENABLE([remote-bitbang],
509 AS_HELP_STRING([--enable-remote-bitbang], [Enable building support for the Remote Bitbang jtag driver]),
510 [build_remote_bitbang=$enableval], [build_remote_bitbang=no])
511
512 AC_MSG_CHECKING([whether to enable dummy minidriver])
513 if test $build_minidriver_dummy = yes; then
514 if test $build_minidriver = yes; then
515 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
516 fi
517 build_minidriver=yes
518 AC_DEFINE([BUILD_MINIDRIVER_DUMMY], [1], [Use the dummy minidriver.])
519 AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
520 [Define to 1 if you have the <jtag_minidriver.h> header file.])
521 fi
522 AC_MSG_RESULT([$build_minidriver_dummy])
523
524 AC_MSG_CHECKING([whether standard drivers can be built])
525 if test "$build_minidriver" = yes; then
526 AC_MSG_RESULT([no])
527 AC_MSG_WARN([Using the minidriver disables all other drivers.])
528 sleep 2
529 else
530 AC_MSG_RESULT([yes])
531 fi
532
533 case "${host_cpu}" in
534 i?86|x86*)
535 ;;
536 *)
537 if test x$parport_use_ppdev = xno; then
538 AC_MSG_WARN([--disable-parport-ppdev is not supported by the host CPU])
539 fi
540 parport_use_ppdev=yes
541 ;;
542 esac
543
544 case $host in
545 *-cygwin*)
546 is_win32=yes
547 parport_use_ppdev=no
548
549 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[return __MINGW32__;]])],
550 [is_mingw=yes],[is_mingw=no])
551 if test $is_mingw = yes; then
552 AC_DEFINE([IS_MINGW], [1], [1 if building for MinGW.])
553 if test x$parport_use_giveio = xno; then
554 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
555 fi
556 parport_use_giveio=yes
557 is_cygwin=no
558 else
559 is_cygwin=yes
560 AC_DEFINE([IS_CYGWIN], [1], [1 if building for Cygwin.])
561 # sys/io.h needed under cygwin for parport access
562 if test $build_parport = yes; then
563 AC_CHECK_HEADERS([sys/io.h],[],AC_MSG_ERROR([Please install the cygwin ioperm package]))
564 fi
565 fi
566
567 AC_DEFINE([IS_WIN32], [1], [1 if building for Win32.])
568 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
569 ;;
570 *-mingw* | *-msys*)
571 is_mingw=yes
572 is_win32=yes
573 parport_use_ppdev=no
574
575 if test x$parport_use_giveio = xno; then
576 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
577 fi
578 parport_use_giveio=yes
579
580 if test x$build_buspirate = xyes; then
581 AC_MSG_ERROR([buspirate currently not supported by MinGW32 hosts])
582 fi
583
584 CFLAGS="$CFLAGS -D__USE_MINGW_ANSI_STDIO"
585
586 AC_DEFINE([IS_MINGW], [1], [1 if building for MinGW.])
587 AC_DEFINE([IS_WIN32], [1], [1 if building for Win32.])
588 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
589 ;;
590 *darwin*)
591 is_darwin=yes
592
593 if test x$parport_use_giveio = xyes; then
594 AC_MSG_WARN([--enable-parport-giveio cannot be used by Darwin hosts])
595 fi
596 parport_use_giveio=no
597
598 AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
599 AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
600 AC_DEFINE([IS_DARWIN], [1], [1 if building for Darwin.])
601 ;;
602 *)
603 if test x$parport_use_giveio = xyes; then
604 AC_MSG_WARN([--enable-parport-giveio cannot be used by ]$host[ hosts])
605 fi
606 parport_use_giveio=no
607 AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
608 AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
609 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
610 ;;
611 esac
612
613 if test $is_win32 = yes; then
614 AC_DEFINE([WIN32_LEAN_AND_MEAN], [1], [1 to exclude old conflicting definitions when building on Windows])
615 fi
616
617 if test $build_parport = yes; then
618 build_bitbang=yes
619 AC_DEFINE([BUILD_PARPORT], [1], [1 if you want parport.])
620 else
621 AC_DEFINE([BUILD_PARPORT], [0], [0 if you don't want parport.])
622 fi
623
624 if test $build_dummy = yes; then
625 build_bitbang=yes
626 AC_DEFINE([BUILD_DUMMY], [1], [1 if you want dummy driver.])
627 else
628 AC_DEFINE([BUILD_DUMMY], [0], [0 if you don't want dummy driver.])
629 fi
630
631 if test $build_ep93xx = yes; then
632 build_bitbang=yes
633 AC_DEFINE([BUILD_EP93XX], [1], [1 if you want ep93xx.])
634 else
635 AC_DEFINE([BUILD_EP93XX], [0], [0 if you don't want ep93xx.])
636 fi
637
638 if test $build_zy1000 = yes; then
639 AC_DEFINE([BUILD_ZY1000], [1], [1 if you want ZY1000.])
640 else
641 AC_DEFINE([BUILD_ZY1000], [0], [0 if you don't want ZY1000.])
642 fi
643
644 if test $build_zy1000_master = yes; then
645 AC_DEFINE([BUILD_ZY1000_MASTER], [1], [1 if you want ZY1000 JTAG master registers.])
646 else
647 AC_DEFINE([BUILD_ZY1000_MASTER], [0], [0 if you don't want ZY1000 JTAG master registers.])
648 fi
649
650 if test $build_at91rm9200 = yes; then
651 build_bitbang=yes
652 AC_DEFINE([BUILD_AT91RM9200], [1], [1 if you want at91rm9200.])
653 else
654 AC_DEFINE([BUILD_AT91RM9200], [0], [0 if you don't want at91rm9200.])
655 fi
656
657 if test $build_bcm2835gpio = yes; then
658 build_bitbang=yes
659 AC_DEFINE([BUILD_BCM2835GPIO], [1], [1 if you want bcm2835gpio.])
660 else
661 AC_DEFINE([BUILD_BCM2835GPIO], [0], [0 if you don't want bcm2835gpio.])
662 fi
663
664 if test x$parport_use_ppdev = xyes; then
665 AC_DEFINE([PARPORT_USE_PPDEV], [1], [1 if you want parport to use ppdev.])
666 else
667 AC_DEFINE([PARPORT_USE_PPDEV], [0], [0 if you don't want parport to use ppdev.])
668 fi
669
670 if test x$parport_use_giveio = xyes; then
671 AC_DEFINE([PARPORT_USE_GIVEIO], [1], [1 if you want parport to use giveio.])
672 else
673 AC_DEFINE([PARPORT_USE_GIVEIO], [0], [0 if you don't want parport to use giveio.])
674 fi
675
676 if test $build_bitbang = yes; then
677 AC_DEFINE([BUILD_BITBANG], [1], [1 if you want a bitbang interface.])
678 else
679 AC_DEFINE([BUILD_BITBANG], [0], [0 if you don't want a bitbang interface.])
680 fi
681
682 if test $build_usb_blaster_libftdi = yes; then
683 AC_DEFINE([BUILD_USB_BLASTER_LIBFTDI], [1], [1 if you want libftdi usb_blaster.])
684 else
685 AC_DEFINE([BUILD_USB_BLASTER_LIBFTDI], [0], [0 if you don't want libftdi usb_blaster.])
686 fi
687
688 if test $build_jtag_vpi = yes; then
689 AC_DEFINE([BUILD_JTAG_VPI], [1], [1 if you want JTAG VPI.])
690 else
691 AC_DEFINE([BUILD_JTAG_VPI], [0], [0 if you don't want JTAG VPI.])
692 fi
693
694 if test $build_usb_blaster_ftd2xx = yes; then
695 AC_DEFINE([BUILD_USB_BLASTER_FTD2XX], [1], [1 if you want ftd2xx usb_blaster.])
696 else
697 AC_DEFINE([BUILD_USB_BLASTER_FTD2XX], [0], [0 if you don't want ftd2xx usb_blaster.])
698 fi
699
700 if test $build_amtjtagaccel = yes; then
701 AC_DEFINE([BUILD_AMTJTAGACCEL], [1], [1 if you want the Amontec JTAG-Accelerator driver.])
702 else
703 AC_DEFINE([BUILD_AMTJTAGACCEL], [0], [0 if you don't want the Amontec JTAG-Accelerator driver.])
704 fi
705
706 if test $build_gw16012 = yes; then
707 AC_DEFINE([BUILD_GW16012], [1], [1 if you want the Gateworks GW16012 driver.])
708 else
709 AC_DEFINE([BUILD_GW16012], [0], [0 if you don't want the Gateworks GW16012 driver.])
710 fi
711
712 if test $build_presto_libftdi = yes; then
713 build_bitq=yes
714 AC_DEFINE([BUILD_PRESTO_LIBFTDI], [1], [1 if you want the ASIX PRESTO driver using libftdi.])
715 else
716 AC_DEFINE([BUILD_PRESTO_LIBFTDI], [0], [0 if you don't want the ASIX PRESTO driver using libftdi.])
717 fi
718
719 if test $build_presto_ftd2xx = yes; then
720 build_bitq=yes
721 AC_DEFINE([BUILD_PRESTO_FTD2XX], [1], [1 if you want the ASIX PRESTO driver using FTD2XX.])
722 else
723 AC_DEFINE([BUILD_PRESTO_FTD2XX], [0], [0 if you don't want the ASIX PRESTO driver using FTD2XX.])
724 fi
725
726 if test $build_bitq = yes; then
727 AC_DEFINE([BUILD_BITQ], [1], [1 if you want a bitq interface.])
728 else
729 AC_DEFINE([BUILD_BITQ], [0], [0 if you don't want a bitq interface.])
730 fi
731
732 AC_DEFINE([BUILD_OPENJTAG], [0], [0 if you don't want the OpenJTAG driver.])
733 AC_DEFINE([BUILD_OPENJTAG_FTD2XX], [0], [0 if you don't want the OpenJTAG driver with FTD2XX driver.])
734 AC_DEFINE([BUILD_OPENJTAG_LIBFTDI], [0], [0 if you don't want to build OpenJTAG driver with libftdi.])
735
736 if test $build_openjtag_ftd2xx = yes; then
737 AC_DEFINE([BUILD_OPENJTAG], [1], [1 if you want the OpenJTAG driver.])
738 AC_DEFINE([BUILD_OPENJTAG_FTD2XX], [1], [1 if you want the OpenJTAG driver with FTD2XX driver.])
739 fi
740 if test $build_openjtag_ftdi = yes; then
741 AC_DEFINE([BUILD_OPENJTAG], [1], [1 if you want the OpenJTAG drvier.])
742 AC_DEFINE([BUILD_OPENJTAG_LIBFTDI], [1], [1 if you want to build OpenJTAG with FTDI driver.])
743 fi
744
745 if test $build_oocd_trace = yes; then
746 AC_DEFINE([BUILD_OOCD_TRACE], [1], [1 if you want the OpenOCD+trace ETM capture driver.])
747 else
748 AC_DEFINE([BUILD_OOCD_TRACE], [0], [0 if you don't want the OpenOCD+trace ETM capture driver.])
749 fi
750
751 if test $build_buspirate = yes; then
752 AC_DEFINE([BUILD_BUSPIRATE], [1], [1 if you want the Buspirate JTAG driver.])
753 else
754 AC_DEFINE([BUILD_BUSPIRATE], [0], [0 if you don't want the Buspirate JTAG driver.])
755 fi
756
757 if test $use_internal_jimtcl = yes; then
758 if test -f "$srcdir/jimtcl/configure.ac"; then
759 AX_CONFIG_SUBDIR_OPTION([jimtcl], [--disable-install-jim])
760 else
761 AC_MSG_ERROR([jimtcl not found, run git submodule init and git submodule update.])
762 fi
763 fi
764
765 if test $build_remote_bitbang = yes; then
766 build_bitbang=yes
767 AC_DEFINE([BUILD_REMOTE_BITBANG], [1], [1 if you want the Remote Bitbang JTAG driver.])
768 else
769 AC_DEFINE([BUILD_REMOTE_BITBANG], [0], [0 if you don't want the Remote Bitbang JTAG driver.])
770 fi
771
772 if test $build_sysfsgpio = yes; then
773 build_bitbang=yes
774 AC_DEFINE([BUILD_SYSFSGPIO], [1], [1 if you want the SysfsGPIO driver.])
775 else
776 AC_DEFINE([BUILD_SYSFSGPIO], [0], [0 if you don't want SysfsGPIO driver.])
777 fi
778 #-- Deal with MingW/Cygwin FTD2XX issues
779
780 if test $is_win32 = yes; then
781 if test "${with_ftd2xx_linux_tardir+set}" = set
782 then
783 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
784 fi
785
786 if test $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes -o $build_openjtag_ftd2xx = yes; then
787 AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
788
789 # if we are given a zipdir...
790 if test "${with_ftd2xx_win32_zipdir+set}" = set
791 then
792 # Set the CFLAGS for "ftd2xx.h"
793 f=$with_ftd2xx_win32_zipdir/ftd2xx.h
794 if test ! -f $f ; then
795 AC_MSG_ERROR([File: $f cannot be found])
796 fi
797 CFLAGS="$CFLAGS -I$with_ftd2xx_win32_zipdir"
798
799 # And calculate the LDFLAGS for the machine
800 case "$host_cpu" in
801 i?86|x86_32)
802 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/i386"
803 LIBS="$LIBS -lftd2xx"
804 f=$with_ftd2xx_win32_zipdir/i386/ftd2xx.lib
805 ;;
806 amd64|x86_64)
807 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/amd64"
808 LIBS="$LIBS -lftd2xx"
809 f=$with_ftd2xx_win32_zipdir/amd64/ftd2xx.lib
810 ;;
811 *)
812 AC_MSG_ERROR([Unknown Win32 host cpu: $host_cpu])
813 ;;
814 esac
815 if test ! -f $f ; then
816 AC_MSG_ERROR([Library: $f not found])
817 fi
818 else
819 LIBS="$LIBS -lftd2xx"
820 AC_MSG_WARN([ASSUMPTION: The (win32) FTDICHIP.COM files: ftd2xx.h and ftd2xx.lib are in a proper place])
821 fi
822 fi
823 fi # win32
824
825 if test $is_darwin = yes ; then
826 if test "${with_ftd2xx_win32_zipdir+set}" = set
827 then
828 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
829 fi
830 if test "${with_ftd2xx_linux_tardir+set}" = set
831 then
832 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
833 fi
834
835 if test $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
836 AC_MSG_CHECKING([for libftd2xx.a (darwin)])
837
838 if test ! -f /usr/local/include/ftd2xx.h ; then
839 AC_MSG_ERROR([ftd2xx library from FTDICHIP.com seems to be missing, cannot find: /usr/local/include/ftd2xx.h])
840 fi
841
842 CFLAGS="$CFLAGS -I/usr/local/include"
843 LDFLAGS="$LDFLAGS -L/usr/local/lib"
844 LIBS="$LIBS -lftd2xx"
845 AC_MSG_RESULT([-L/usr/local/lib -lftd2xx])
846 fi
847 fi # darwin
848
849 if test $is_win32 = no && test $is_darwin = no ; then
850
851 if test "${with_ftd2xx_win32_zipdir+set}" = set
852 then
853 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
854 fi
855
856 if test $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes -o $build_openjtag_ftd2xx = yes; then
857 # Must be linux
858 if test $host_os != linux-gnu && test $host_os != linux ; then
859 AC_MSG_ERROR([The (linux) ftd2xx library from FTDICHIP.com is linux only. Try --enable-*-libftdi instead])
860 fi
861 # Are we given a TAR directory?
862 if test "${with_ftd2xx_linux_tardir+set}" = set
863 then
864 AC_MSG_CHECKING([uninstalled ftd2xx distribution])
865 # The .H file is simple..
866 FTD2XX_H=$with_ftd2xx_linux_tardir/ftd2xx.h
867 if test ! -f "${FTD2XX_H}"; then
868 AC_MSG_ERROR([Option: --with-ftd2xx-linux-tardir appears wrong, cannot find: ${FTD2XX_H}])
869 fi
870 CFLAGS="$CFLAGS -I$with_ftd2xx_linux_tardir"
871 if test $with_ftd2xx_lib = shared; then
872 FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir"
873 FTD2XX_LIB="-lftd2xx"
874 else
875 # Test #1 - v1.0.x
876 case "$host_cpu" in
877 i?86|x86_32)
878 dir=build/i386;;
879 amd64|x86_64)
880 dir=build/x86_64;;
881 *)
882 dir=none;;
883 esac
884 if test -f "$with_ftd2xx_linux_tardir/$dir/libftd2xx.a"; then
885 FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir/$dir"
886 # Also needs -lrt
887 FTD2XX_LIB="-lftd2xx -lrt"
888 else
889 # Test Number2.
890 # Grr.. perhaps it exists as a version number?
891 FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a.*.*.*"
892 count=`ls ${FTD2XX_LIB} | wc -l`
893 if test $count -gt 1 ; then
894 AC_MSG_ERROR([Multiple libftd2xx.a files found in: $with_ftd2xx_linux_tardir/static_lib sorry cannot handle this yet])
895 fi
896 if test $count -ne 1 ; then
897 AC_MSG_ERROR([Not found: $f, option: --with-ftd2xx-linux-tardir appears to be wrong])
898 fi
899 # Because the "-l" rules do not understand version numbers...
900 # we will just stuff the absolute path onto the LIBS variable
901 FTD2XX_LIB="`ls ${FTD2XX_LIB}` -lpthread"
902 FTD2XX_LDFLAGS=""
903 fi
904 fi
905 LDFLAGS="${LDFLAGS} ${FTD2XX_LDFLAGS}"
906 LIBS="${FTD2XX_LIB} ${LIBS}"
907 AC_MSG_RESULT([${FTD2XX_LDFLAGS} ${FTD2XX_LIB}])
908 else
909 AC_CHECK_HEADER([ftd2xx.h],[],[
910 AC_MSG_ERROR([You seem to be missing the FTD2xx driver header file.])
911 ])
912 AC_SEARCH_LIBS([FT_GetLibraryVersion],[ftd2xx],,[
913 AC_MSG_ERROR([You appear to be missing the FTD2xx driver library.])
914 ],[-lrt -lusb-1.0])
915 fi
916 fi
917 fi # linux
918
919 if test $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
920
921 # Before we go any further - make sure we can *BUILD* and *RUN*
922 # a simple app with the "ftd2xx.lib" file - in what ever form we where given
923 # We should be able to compile, link and run this test program now
924 AC_MSG_CHECKING([whether ftd2xx library works])
925
926 #
927 # Save the LDFLAGS for later..
928 LDFLAGS_SAVE=$LDFLAGS
929 CFLAGS_SAVE=$CFLAGS
930 _LDFLAGS=`eval echo $LDFLAGS`
931 _CFLAGS=`eval echo $CFLAGS`
932 LDFLAGS=$_LDFLAGS
933 CFLAGS=$_CFLAGS
934
935 AC_RUN_IFELSE([AC_LANG_PROGRAM([[
936 #include "confdefs.h"
937 #if IS_WIN32
938 #include "windows.h"
939 #endif
940 #include <stdio.h>
941 #include <ftd2xx.h>
942 ]], [[
943 DWORD x;
944 FT_GetLibraryVersion( &x );
945 ]])], [
946 AC_MSG_RESULT([Success!])
947 ], [
948 AC_MSG_ERROR([Cannot build & run test program using ftd2xx.lib])
949 ], [
950 AC_MSG_RESULT([Skipping as we are cross-compiling])
951 ])
952
953 AC_MSG_CHECKING([for ftd2xx FT232H device support])
954 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
955 #include "confdefs.h"
956 #if IS_WIN32
957 #include "windows.h"
958 #endif
959 #include <stdio.h>
960 #include <ftd2xx.h>
961
962 DWORD x = FT_DEVICE_232H;
963 ]], [])], [
964 AC_DEFINE([HAS_ENUM_FT232H], [1],
965 [Support FT232H with FTD2XX or libftdi.])
966 has_enum_ft232h=yes
967 ], [
968 has_enum_ft232h=no
969 ])
970 AC_MSG_RESULT([$has_enum_ft232h])
971
972 if test $has_enum_ft232h = no; then
973 AC_MSG_WARN([You need a newer FTD2XX driver (version 2.08.12 or later).])
974 fi
975
976 LDFLAGS=$LDFLAGS_SAVE
977 CFLAGS=$CFLAGS_SAVE
978 fi
979
980 if test $build_usb_blaster_libftdi = yes -o \
981 $build_openjtag_ftdi = yes -o $build_presto_libftdi = yes; then
982
983 # we can have libftdi or libftdi1, so check it and use the latest one
984 PKG_CHECK_MODULES([LIBFTDI], [libftdi1], [use_libftdi=yes], [use_libftdi=no])
985 if test $use_libftdi = no; then
986 PKG_CHECK_MODULES([LIBFTDI], [libftdi], [use_libftdi=yes], [use_libftdi=no])
987 fi
988 if test $use_libftdi = no; then
989 AC_MSG_ERROR([The libftdi driver is not present on your system.])
990 fi
991
992 #
993 # Try to build a small program.
994 AC_MSG_CHECKING([Build & Link with libftdi...])
995
996 LDFLAGS_SAVE=$LDFLAGS
997 CFLAGS_SAVE=$CFLAGS
998 LIBS_SAVE=$LIBS
999 _LDFLAGS=`eval echo $LDFLAGS`
1000 _CFLAGS=`eval echo $CFLAGS`
1001 _LIBS=`eval echo $LIBS`
1002 LDFLAGS=$_LDFLAGS
1003 CFLAGS="$_CFLAGS $LIBFTDI_CFLAGS"
1004 LIBS="$_LIBS $LIBFTDI_LIBS"
1005
1006 AC_RUN_IFELSE([AC_LANG_PROGRAM([[
1007 #include <stdio.h>
1008 #include <ftdi.h>
1009 ]], [[
1010 struct ftdi_context *p;
1011 p = ftdi_new();
1012 if( p != NULL ){
1013 return 0;
1014 } else {
1015 fprintf( stderr, "calling ftdi_new() failed\n");
1016 return 1;
1017 }
1018 ]])], [
1019 AC_MSG_RESULT([Success])
1020 ], [
1021 AC_MSG_ERROR([Cannot build & run test program using libftdi])
1022 ], [
1023 AC_MSG_RESULT([Skipping as we are cross-compiling, trying build only])
1024 AC_SEARCH_LIBS([ftdi_new], [], [], [AC_MSG_ERROR([Cannot link with libftdi])])
1025 ])
1026
1027 AC_MSG_CHECKING([for libftdi FT232H device support])
1028 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1029 #include <stdio.h>
1030 #include <ftdi.h>
1031 ]], [[
1032 enum ftdi_chip_type x = TYPE_232H;
1033 ]])], [
1034 AC_DEFINE([HAS_ENUM_FT232H], [1],
1035 [Support FT232H with FTD2XX or libftdi.])
1036 has_enum_ft232h=yes
1037 ], [
1038 has_enum_ft232h=no
1039 ])
1040 AC_MSG_RESULT([$has_enum_ft232h])
1041
1042 if test $has_enum_ft232h = no; then
1043 AC_MSG_WARN([You need a newer libftdi version (0.20 or later).])
1044 fi
1045
1046 # Restore the 'unexpanded ldflags'
1047 LDFLAGS=$LDFLAGS_SAVE
1048 CFLAGS=$CFLAGS_SAVE
1049 LIBS=$LIBS_SAVE
1050 fi
1051
1052 PKG_CHECK_MODULES([LIBUSB1], [libusb-1.0], [
1053 use_libusb1=yes
1054 AC_DEFINE([HAVE_LIBUSB1], [1], [Define if you have libusb-1.x])
1055 PKG_CHECK_EXISTS([libusb-1.0 >= 1.0.9],
1056 [AC_DEFINE([HAVE_LIBUSB_ERROR_NAME], [1], [Define if your libusb has libusb_error_name()])],
1057 [AC_MSG_WARN([libusb-1.x older than 1.0.9 detected, consider updating])])
1058 LIBUSB1_CFLAGS=`echo $LIBUSB1_CFLAGS | sed 's/-I/-isystem /'`
1059 AC_MSG_NOTICE([libusb-1.0 header bug workaround: LIBUSB1_CFLAGS changed to "$LIBUSB1_CFLAGS"])
1060 PKG_CHECK_EXISTS([libusb-1.0 >= 1.0.16],
1061 [AC_DEFINE([HAVE_LIBUSB_GET_PORT_NUMBERS], [1], [Define if your libusb has libusb_get_port_numbers()])])
1062 ], [
1063 use_libusb1=no
1064 AC_MSG_WARN([libusb-1.x not found, trying legacy libusb-0.1 as a fallback; consider installing libusb-1.x instead])
1065 ])
1066
1067 PKG_CHECK_MODULES([LIBUSB0], [libusb], [use_libusb0=yes], [use_libusb0=no])
1068
1069 for hidapi_lib in hidapi hidapi-hidraw hidapi-libusb; do
1070 PKG_CHECK_MODULES([HIDAPI],[$hidapi_lib],[
1071 use_hidapi=yes
1072 break
1073 ],[
1074 use_hidapi=no
1075 ])
1076 done
1077
1078 PKG_CHECK_MODULES([libjaylink], [libjaylink >= 0.1],
1079 [HAVE_LIBJAYLINK=yes], [HAVE_LIBJAYLINK=no])
1080
1081 m4_define([PROCESS_ADAPTERS], [
1082 m4_foreach([adapter], [$1], [
1083 if test $2; then
1084 if test $ADAPTER_VAR([adapter]) != no; then
1085 AC_DEFINE([BUILD_]ADAPTER_SYM([adapter]), [1], [1 if you want the ]ADAPTER_DESC([adapter]).)
1086 else
1087 AC_DEFINE([BUILD_]ADAPTER_SYM([adapter]), [0], [0 if you do not want the ]ADAPTER_DESC([adapter]).)
1088 fi
1089 else
1090 if test $ADAPTER_VAR([adapter]) = yes; then
1091 AC_MSG_ERROR([$3 is required for the ADAPTER_DESC([adapter])])
1092 fi
1093 ADAPTER_VAR([adapter])=no
1094 fi
1095 AM_CONDITIONAL(ADAPTER_SYM([adapter]), [test $ADAPTER_VAR([adapter]) != no])
1096 ])
1097 ])
1098
1099 PROCESS_ADAPTERS([USB1_ADAPTERS], [$use_libusb1 = yes], [libusb-1.x])
1100 PROCESS_ADAPTERS([USB_ADAPTERS], [$use_libusb1 = yes -o $use_libusb0 = yes], [libusb-1.x or libusb-0.1])
1101 PROCESS_ADAPTERS([USB0_ADAPTERS], [$use_libusb0 = yes], [libusb-0.1])
1102 PROCESS_ADAPTERS([HIDAPI_ADAPTERS], [$use_hidapi = yes], [hidapi])
1103 PROCESS_ADAPTERS([LIBJAYLINK_ADAPTERS], [$use_libusb1 = yes -a $use_internal_libjaylink = yes -o $HAVE_LIBJAYLINK = yes], [libusb-1.x or libjaylink-0.1])
1104
1105 if test $enable_stlink != no -o $enable_ti_icdi != no; then
1106 AC_DEFINE([BUILD_HLADAPTER], [1], [1 if you want the High Level JTAG driver.])
1107 else
1108 AC_DEFINE([BUILD_HLADAPTER], [0], [0 if you want the High Level JTAG driver.])
1109 fi
1110 AM_CONDITIONAL([HLADAPTER], [test $enable_stlink != no -o $enable_ti_icdi != no])
1111
1112 if test $enable_jlink != no; then
1113 if test $use_internal_libjaylink = yes; then
1114 if test -f "$srcdir/src/jtag/drivers/libjaylink/configure.ac"; then
1115 AX_CONFIG_SUBDIR_OPTION([src/jtag/drivers/libjaylink],
1116 [--enable-subproject-build])
1117 else
1118 AC_MSG_ERROR([Internal libjaylink not found, run either 'git submodule init' and 'git submodule update' or disable internal libjaylink with --disable-internal-libjaylink.])
1119 fi
1120 fi
1121 fi
1122
1123 AM_CONDITIONAL([RELEASE], [test $build_release = yes])
1124 AM_CONDITIONAL([PARPORT], [test $build_parport = yes])
1125 AM_CONDITIONAL([DUMMY], [test $build_dummy = yes])
1126 AM_CONDITIONAL([GIVEIO], [test x$parport_use_giveio = xyes])
1127 AM_CONDITIONAL([EP93XX], [test $build_ep93xx = yes])
1128 AM_CONDITIONAL([ZY1000], [test $build_zy1000 = yes])
1129 AM_CONDITIONAL([ZY1000_MASTER], [test $build_zy1000_master = yes])
1130 AM_CONDITIONAL([IOUTIL], [test $build_ioutil = yes])
1131 AM_CONDITIONAL([AT91RM9200], [test $build_at91rm9200 = yes])
1132 AM_CONDITIONAL([BCM2835GPIO], [test $build_bcm2835gpio = yes])
1133 AM_CONDITIONAL([BITBANG], [test $build_bitbang = yes])
1134 AM_CONDITIONAL([USB_BLASTER_LIBFTDI], [test $build_usb_blaster_libftdi = yes])
1135 AM_CONDITIONAL([USB_BLASTER_FTD2XX], [test $build_usb_blaster_ftd2xx = yes])
1136 AM_CONDITIONAL([JTAG_VPI], [test $build_jtag_vpi = yes -o $build_jtag_vpi = yes])
1137 AM_CONDITIONAL([USB_BLASTER_DRIVER], [test $build_usb_blaster_ftd2xx = yes -o $build_usb_blaster_libftdi = yes -o $enable_usb_blaster_2 != no])
1138 AM_CONDITIONAL([AMTJTAGACCEL], [test $build_amtjtagaccel = yes])
1139 AM_CONDITIONAL([GW16012], [test $build_gw16012 = yes])
1140 AM_CONDITIONAL([PRESTO_LIBFTDI], [test $build_presto_libftdi = yes])
1141 AM_CONDITIONAL([PRESTO_DRIVER], [test $build_presto_ftd2xx = yes -o $build_presto_libftdi = yes])
1142 AM_CONDITIONAL([OPENJTAG], [test $build_openjtag_ftd2xx = yes -o $build_openjtag_ftdi = yes])
1143 AM_CONDITIONAL([OOCD_TRACE], [test $build_oocd_trace = yes])
1144 AM_CONDITIONAL([REMOTE_BITBANG], [test $build_remote_bitbang = yes])
1145 AM_CONDITIONAL([BUSPIRATE], [test $build_buspirate = yes])
1146 AM_CONDITIONAL([SYSFSGPIO], [test $build_sysfsgpio = yes])
1147 AM_CONDITIONAL([USE_LIBUSB0], [test $use_libusb0 = yes])
1148 AM_CONDITIONAL([USE_LIBUSB1], [test $use_libusb1 = yes])
1149 AM_CONDITIONAL([IS_CYGWIN], [test $is_cygwin = yes])
1150 AM_CONDITIONAL([IS_MINGW], [test $is_mingw = yes])
1151 AM_CONDITIONAL([IS_WIN32], [test $is_win32 = yes])
1152 AM_CONDITIONAL([IS_DARWIN], [test $is_darwin = yes])
1153 AM_CONDITIONAL([BITQ], [test $build_bitq = yes])
1154 AM_CONDITIONAL([CMSIS_DAP], [test $use_hidapi = yes])
1155
1156 AM_CONDITIONAL([MINIDRIVER], [test $build_minidriver = yes])
1157 AM_CONDITIONAL([MINIDRIVER_DUMMY], [test $build_minidriver_dummy = yes])
1158
1159 AM_CONDITIONAL([INTERNAL_JIMTCL], [test $use_internal_jimtcl = yes])
1160 AM_CONDITIONAL([INTERNAL_LIBJAYLINK], [test $use_internal_libjaylink = yes])
1161
1162 # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h?
1163 AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
1164 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1165 #define _GNU_SOURCE
1166 #include <unistd.h>
1167 #include <stdlib.h>
1168 ]], [[char **ep = environ;]]
1169 )], [
1170 AC_MSG_RESULT([yes])
1171 has_environ=yes
1172 ], [
1173 AC_MSG_RESULT([no])
1174
1175 # Possibility #2: can environ be found in an available library?
1176 AC_MSG_CHECKING([for extern environ])
1177 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1178 extern char **environ;
1179 ]], [[char **ep = environ;]]
1180 )], [
1181 AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
1182 has_environ=yes
1183 ], [
1184 has_environ=no
1185 ])
1186 AC_MSG_RESULT([${has_environ}])
1187 ])
1188
1189 if test "${has_environ}" != "yes" ; then
1190 AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
1191 fi
1192
1193 AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
1194
1195 # set default gcc warnings
1196 GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security -Wshadow"
1197 if test "${gcc_wextra}" = yes; then
1198 GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
1199 GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
1200 GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
1201 GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
1202 fi
1203 if test "${gcc_werror}" = yes; then
1204 GCC_WARNINGS="${GCC_WARNINGS} -Werror"
1205 fi
1206
1207 # overide default gcc cflags
1208 if test $gcc_warnings = yes; then
1209 CFLAGS="$CFLAGS $GCC_WARNINGS"
1210 fi
1211
1212 AC_CONFIG_FILES([
1213 Makefile
1214 src/Makefile
1215 src/helper/Makefile
1216 src/jtag/Makefile
1217 src/jtag/drivers/Makefile
1218 src/jtag/drivers/usb_blaster/Makefile
1219 src/jtag/hla/Makefile
1220 src/jtag/aice/Makefile
1221 src/transport/Makefile
1222 src/target/openrisc/Makefile
1223 src/xsvf/Makefile
1224 src/svf/Makefile
1225 src/target/Makefile
1226 src/rtos/Makefile
1227 src/server/Makefile
1228 src/flash/Makefile
1229 src/flash/nor/Makefile
1230 src/flash/nand/Makefile
1231 src/pld/Makefile
1232 doc/Makefile
1233 ])
1234 AC_OUTPUT
1235
1236 echo
1237 echo
1238 echo OpenOCD configuration summary
1239 echo --------------------------------------------------
1240 m4_foreach([adapter], [USB1_ADAPTERS, USB_ADAPTERS, USB0_ADAPTERS,
1241 HIDAPI_ADAPTERS, LIBJAYLINK_ADAPTERS],
1242 [s=m4_format(["%-40s"], ADAPTER_DESC([adapter]))
1243 case $ADAPTER_VAR([adapter]) in
1244 auto)
1245 echo "$s"yes '(auto)'
1246 ;;
1247 yes)
1248 echo "$s"yes
1249 ;;
1250 no)
1251 echo "$s"no
1252 ;;
1253 esac
1254 ])
1255 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)