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