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