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

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)