aice: add Andes AICE support
[openocd.git] / configure.ac
1 AC_PREREQ(2.60)
2 AC_INIT([openocd], [0.8.0-dev],
3 [OpenOCD Mailing List <openocd-devel@lists.sourceforge.net>])
4 AC_CONFIG_SRCDIR([src/openocd.c])
5
6 m4_include([config_subdir.m4])dnl
7
8 AM_INIT_AUTOMAKE([-Wall -Wno-portability dist-bzip2 dist-zip])
9 AM_MAINTAINER_MODE
10
11 AC_CONFIG_HEADERS([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_hladapter_stlink=$enableval], [build_hladapter_stlink=no])
481
482 AC_ARG_ENABLE([ti-icdi],
483 AS_HELP_STRING([--enable-ti-icdi], [Enable building support for the TI ICDI JTAG Programmer]),
484 [build_hladapter_icdi=$enableval], [build_hladapter_icdi=no])
485
486 AC_ARG_ENABLE([osbdm],
487 AS_HELP_STRING([--enable-osbdm], [Enable building support for the OSBDM (JTAG only) Programmer]),
488 [build_osbdm=$enableval], [build_osbdm=no])
489
490 AC_ARG_ENABLE([opendous],
491 AS_HELP_STRING([--enable-opendous], [Enable building support for the estick/opendous JTAG Programmer]),
492 [build_opendous=$enableval], [build_opendous=no])
493
494 AC_ARG_ENABLE([sysfsgpio],
495 AS_HELP_STRING([--enable-sysfsgpio], [Enable building support for programming driven via sysfs gpios.]),
496 [build_sysfsgpio=$enableval], [build_sysfsgpio=no])
497
498 AC_ARG_ENABLE([minidriver_dummy],
499 AS_HELP_STRING([--enable-minidriver-dummy], [Enable the dummy minidriver.]),
500 [build_minidriver_dummy=$enableval], [build_minidriver_dummy=no])
501
502 AC_ARG_ENABLE([internal-jimtcl],
503 AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
504 [use_internal_jimtcl=$enableval], [use_internal_jimtcl=yes])
505
506 AC_ARG_ENABLE([libusb0],
507 AS_HELP_STRING([--enable-libusb0], [Use libusb-0.1 library for USB JTAG devices]),
508 [check_libusb0=$enableval], [check_libusb0=no])
509
510 AC_ARG_ENABLE([aice],
511 AS_HELP_STRING([--enable-aice], [Enable building support for the Andes JTAG Programmer]),
512 [build_aice=$enableval], [build_aice=no])
513
514 build_minidriver=no
515 AC_MSG_CHECKING([whether to enable ZY1000 minidriver])
516 if test $build_zy1000 = yes; then
517 if test $build_minidriver = yes; then
518 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
519 fi
520 AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
521 [Define to 1 if you have the <jtag_minidriver.h> header file.])
522 build_minidriver=yes
523 fi
524 AC_MSG_RESULT([$build_zy1000])
525
526 AC_ARG_ENABLE([remote-bitbang],
527 AS_HELP_STRING([--enable-remote-bitbang], [Enable building support for the Remote Bitbang jtag driver]),
528 [build_remote_bitbang=$enableval], [build_remote_bitbang=no])
529
530 AC_MSG_CHECKING([whether to enable dummy minidriver])
531 if test $build_minidriver_dummy = yes; then
532 if test $build_minidriver = yes; then
533 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
534 fi
535 build_minidriver=yes
536 AC_DEFINE([BUILD_MINIDRIVER_DUMMY], [1], [Use the dummy minidriver.])
537 AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
538 [Define to 1 if you have the <jtag_minidriver.h> header file.])
539 fi
540 AC_MSG_RESULT([$build_minidriver_dummy])
541
542 AC_MSG_CHECKING([whether standard drivers can be built])
543 if test "$build_minidriver" = yes; then
544 AC_MSG_RESULT([no])
545 AC_MSG_WARN([Using the minidriver disables all other drivers.])
546 sleep 2
547 else
548 AC_MSG_RESULT([yes])
549 fi
550
551 case "${host_cpu}" in
552 i?86|x86*)
553 ;;
554 *)
555 if test x$parport_use_ppdev = xno; then
556 AC_MSG_WARN([--disable-parport-ppdev is not supported by the host CPU])
557 fi
558 parport_use_ppdev=yes
559 ;;
560 esac
561
562 case $host in
563 *-cygwin*)
564 is_win32=yes
565 parport_use_ppdev=no
566
567 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[return __MINGW32__;]])],
568 [is_mingw=yes],[is_mingw=no])
569 if test $is_mingw = yes; then
570 AC_DEFINE([IS_MINGW], [1], [1 if building for MinGW.])
571 if test x$parport_use_giveio = xno; then
572 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
573 fi
574 parport_use_giveio=yes
575 is_cygwin=no
576 else
577 is_cygwin=yes
578 AC_DEFINE([IS_CYGWIN], [1], [1 if building for Cygwin.])
579 # sys/io.h needed under cygwin for parport access
580 if test $build_parport = yes; then
581 AC_CHECK_HEADERS([sys/io.h],[],AC_MSG_ERROR([Please install the cygwin ioperm package]))
582 fi
583 fi
584
585 AC_DEFINE([IS_WIN32], [1], [1 if building for Win32.])
586 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
587 ;;
588 *-mingw*)
589 is_mingw=yes
590 is_win32=yes
591 parport_use_ppdev=no
592
593 if test x$parport_use_giveio = xno; then
594 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
595 fi
596 parport_use_giveio=yes
597
598 if test x$build_buspirate = xyes; then
599 AC_MSG_ERROR([buspirate currently not supported by MinGW32 hosts])
600 fi
601
602 CFLAGS="$CFLAGS -D__USE_MINGW_ANSI_STDIO"
603
604 AC_DEFINE([IS_MINGW], [1], [1 if building for MinGW.])
605 AC_DEFINE([IS_WIN32], [1], [1 if building for Win32.])
606 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
607 ;;
608 *darwin*)
609 is_darwin=yes
610
611 if test x$parport_use_giveio = xyes; then
612 AC_MSG_WARN([--enable-parport-giveio cannot be used by Darwin hosts])
613 fi
614 parport_use_giveio=no
615
616 AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
617 AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
618 AC_DEFINE([IS_DARWIN], [1], [1 if building for Darwin.])
619 ;;
620 *)
621 if test x$parport_use_giveio = xyes; then
622 AC_MSG_WARN([--enable-parport-giveio cannot be used by ]$host[ hosts])
623 fi
624 parport_use_giveio=no
625 AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
626 AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
627 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
628 ;;
629 esac
630
631 if test $build_parport = yes; then
632 build_bitbang=yes
633 AC_DEFINE([BUILD_PARPORT], [1], [1 if you want parport.])
634 else
635 AC_DEFINE([BUILD_PARPORT], [0], [0 if you don't want parport.])
636 fi
637
638 if test $build_dummy = yes; then
639 build_bitbang=yes
640 AC_DEFINE([BUILD_DUMMY], [1], [1 if you want dummy driver.])
641 else
642 AC_DEFINE([BUILD_DUMMY], [0], [0 if you don't want dummy driver.])
643 fi
644
645 if test $build_ep93xx = yes; then
646 build_bitbang=yes
647 AC_DEFINE([BUILD_EP93XX], [1], [1 if you want ep93xx.])
648 else
649 AC_DEFINE([BUILD_EP93XX], [0], [0 if you don't want ep93xx.])
650 fi
651
652 if test $build_zy1000 = yes; then
653 AC_DEFINE([BUILD_ZY1000], [1], [1 if you want ZY1000.])
654 else
655 AC_DEFINE([BUILD_ZY1000], [0], [0 if you don't want ZY1000.])
656 fi
657
658 if test $build_zy1000_master = yes; then
659 AC_DEFINE([BUILD_ZY1000_MASTER], [1], [1 if you want ZY1000 JTAG master registers.])
660 else
661 AC_DEFINE([BUILD_ZY1000_MASTER], [0], [0 if you don't want ZY1000 JTAG master registers.])
662 fi
663
664 if test $build_at91rm9200 = yes; then
665 build_bitbang=yes
666 AC_DEFINE([BUILD_AT91RM9200], [1], [1 if you want at91rm9200.])
667 else
668 AC_DEFINE([BUILD_AT91RM9200], [0], [0 if you don't want at91rm9200.])
669 fi
670
671 if test x$parport_use_ppdev = xyes; then
672 AC_DEFINE([PARPORT_USE_PPDEV], [1], [1 if you want parport to use ppdev.])
673 else
674 AC_DEFINE([PARPORT_USE_PPDEV], [0], [0 if you don't want parport to use ppdev.])
675 fi
676
677 if test x$parport_use_giveio = xyes; then
678 AC_DEFINE([PARPORT_USE_GIVEIO], [1], [1 if you want parport to use giveio.])
679 else
680 AC_DEFINE([PARPORT_USE_GIVEIO], [0], [0 if you don't want parport to use giveio.])
681 fi
682
683 if test $build_bitbang = yes; then
684 AC_DEFINE([BUILD_BITBANG], [1], [1 if you want a bitbang interface.])
685 else
686 AC_DEFINE([BUILD_BITBANG], [0], [0 if you don't want a bitbang interface.])
687 fi
688
689 if test $build_ft2232_libftdi = yes; then
690 AC_DEFINE([BUILD_FT2232_LIBFTDI], [1], [1 if you want libftdi ft2232.])
691 else
692 AC_DEFINE([BUILD_FT2232_LIBFTDI], [0], [0 if you don't want libftdi ft2232.])
693 fi
694
695 if test $build_ft2232_ftd2xx = yes; then
696 AC_DEFINE([BUILD_FT2232_FTD2XX], [1], [1 if you want ftd2xx ft2232.])
697 else
698 AC_DEFINE([BUILD_FT2232_FTD2XX], [0], [0 if you don't want ftd2xx ft2232.])
699 fi
700
701 if test $build_ftdi = yes; then
702 AC_DEFINE([BUILD_FTDI], [1], [1 if you want ftdi.])
703 else
704 AC_DEFINE([BUILD_FTDI], [0], [0 if you don't want ftdi.])
705 fi
706
707 if test $build_usb_blaster_libftdi = yes; then
708 AC_DEFINE([BUILD_USB_BLASTER_LIBFTDI], [1], [1 if you want libftdi usb_blaster.])
709 else
710 AC_DEFINE([BUILD_USB_BLASTER_LIBFTDI], [0], [0 if you don't want libftdi usb_blaster.])
711 fi
712
713 if test $build_usb_blaster_ftd2xx = yes; then
714 AC_DEFINE([BUILD_USB_BLASTER_FTD2XX], [1], [1 if you want ftd2xx usb_blaster.])
715 else
716 AC_DEFINE([BUILD_USB_BLASTER_FTD2XX], [0], [0 if you don't want ftd2xx usb_blaster.])
717 fi
718
719 if test $build_amtjtagaccel = yes; then
720 AC_DEFINE([BUILD_AMTJTAGACCEL], [1], [1 if you want the Amontec JTAG-Accelerator driver.])
721 else
722 AC_DEFINE([BUILD_AMTJTAGACCEL], [0], [0 if you don't want the Amontec JTAG-Accelerator driver.])
723 fi
724
725 if test $build_gw16012 = yes; then
726 AC_DEFINE([BUILD_GW16012], [1], [1 if you want the Gateworks GW16012 driver.])
727 else
728 AC_DEFINE([BUILD_GW16012], [0], [0 if you don't want the Gateworks GW16012 driver.])
729 fi
730
731 if test $build_presto_libftdi = yes; then
732 build_bitq=yes
733 AC_DEFINE([BUILD_PRESTO_LIBFTDI], [1], [1 if you want the ASIX PRESTO driver using libftdi.])
734 else
735 AC_DEFINE([BUILD_PRESTO_LIBFTDI], [0], [0 if you don't want the ASIX PRESTO driver using libftdi.])
736 fi
737
738 if test $build_presto_ftd2xx = yes; then
739 build_bitq=yes
740 AC_DEFINE([BUILD_PRESTO_FTD2XX], [1], [1 if you want the ASIX PRESTO driver using FTD2XX.])
741 else
742 AC_DEFINE([BUILD_PRESTO_FTD2XX], [0], [0 if you don't want the ASIX PRESTO driver using FTD2XX.])
743 fi
744
745 if test $build_bitq = yes; then
746 AC_DEFINE([BUILD_BITQ], [1], [1 if you want a bitq interface.])
747 else
748 AC_DEFINE([BUILD_BITQ], [0], [0 if you don't want a bitq interface.])
749 fi
750
751 if test $build_usbprog = yes; then
752 AC_DEFINE([BUILD_USBPROG], [1], [1 if you want the usbprog JTAG driver.])
753 else
754 AC_DEFINE([BUILD_USBPROG], [0], [0 if you don't want the usbprog JTAG driver.])
755 fi
756
757 if test $build_oocd_trace = yes; then
758 AC_DEFINE([BUILD_OOCD_TRACE], [1], [1 if you want the OpenOCD+trace ETM capture driver.])
759 else
760 AC_DEFINE([BUILD_OOCD_TRACE], [0], [0 if you don't want the OpenOCD+trace ETM capture driver.])
761 fi
762
763 if test $build_jlink = yes; then
764 AC_DEFINE([BUILD_JLINK], [1], [1 if you want the J-Link JTAG driver.])
765 else
766 AC_DEFINE([BUILD_JLINK], [0], [0 if you don't want the J-Link JTAG driver.])
767 fi
768
769 if test $build_aice = yes; then
770 AC_DEFINE([BUILD_AICE], [1], [1 if you want the AICE JTAG driver.])
771 else
772 AC_DEFINE([BUILD_AICE], [0], [0 if you don't want the AICE JTAG driver.])
773 fi
774
775 if test $build_vsllink = yes; then
776 AC_DEFINE([BUILD_VSLLINK], [1], [1 if you want the Versaloon-Link JTAG driver.])
777 else
778 AC_DEFINE([BUILD_VSLLINK], [0], [0 if you don't want the Versaloon-Link JTAG driver.])
779 fi
780
781 if test $build_rlink = yes; then
782 AC_DEFINE([BUILD_RLINK], [1], [1 if you want the RLink JTAG driver.])
783 else
784 AC_DEFINE([BUILD_RLINK], [0], [0 if you don't want the RLink JTAG driver.])
785 fi
786
787 if test $build_ulink = yes; then
788 AC_DEFINE([BUILD_ULINK], [1], [1 if you want the ULINK JTAG driver.])
789 else
790 AC_DEFINE([BUILD_ULINK], [0], [0 if you don't want the ULINK JTAG driver.])
791 fi
792
793 if test $build_armjtagew = yes; then
794 AC_DEFINE([BUILD_ARMJTAGEW], [1], [1 if you want the ARM-JTAG-EW JTAG driver.])
795 else
796 AC_DEFINE([BUILD_ARMJTAGEW], [0], [0 if you don't want the ARM-JTAG-EW JTAG driver.])
797 fi
798
799 if test $build_buspirate = yes; then
800 AC_DEFINE([BUILD_BUSPIRATE], [1], [1 if you want the Buspirate JTAG driver.])
801 else
802 AC_DEFINE([BUILD_BUSPIRATE], [0], [0 if you don't want the Buspirate JTAG driver.])
803 fi
804
805 if test $build_hladapter_stlink = yes -o $build_hladapter_icdi = yes; then
806 AC_DEFINE([BUILD_HLADAPTER], [1], [1 if you want the High Level JTAG driver.])
807 else
808 AC_DEFINE([BUILD_HLADAPTER], [0], [0 if you don't want the High Level JTAG driver.])
809 fi
810
811 if test $build_osbdm = yes; then
812 AC_DEFINE([BUILD_OSBDM], [1], [1 if you want the OSBDM driver.])
813 else
814 AC_DEFINE([BUILD_OSBDM], [0], [0 if you don't want the OSBDM driver.])
815 fi
816
817 if test $build_opendous = yes; then
818 AC_DEFINE([BUILD_OPENDOUS], [1], [1 if you want the estick/opendous JTAG driver.])
819 else
820 AC_DEFINE([BUILD_OPENDOUS], [0], [0 if you don't want the estick/opendous JTAG driver.])
821 fi
822
823 if test "$use_internal_jimtcl" = yes; then
824 if test -f "$srcdir/jimtcl/configure.ac"; then
825 AX_CONFIG_SUBDIR_OPTION([jimtcl], [--disable-install-jim])
826 else
827 AC_MSG_ERROR([jimtcl not found, run git submodule init and git submodule update.])
828 fi
829 fi
830
831 if test $build_remote_bitbang = yes; then
832 build_bitbang=yes
833 AC_DEFINE([BUILD_REMOTE_BITBANG], [1], [1 if you want the Remote Bitbang JTAG driver.])
834 else
835 AC_DEFINE([BUILD_REMOTE_BITBANG], [0], [0 if you don't want the Remote Bitbang JTAG driver.])
836 fi
837
838 if test $build_sysfsgpio = yes; then
839 build_bitbang=yes
840 AC_DEFINE([BUILD_SYSFSGPIO], [1], [1 if you want the SysfsGPIO driver.])
841 else
842 AC_DEFINE([BUILD_SYSFSGPIO], [0], [0 if you don't want SysfsGPIO driver.])
843 fi
844 #-- Deal with MingW/Cygwin FTD2XX issues
845
846 if test $is_win32 = yes; then
847 if test "${with_ftd2xx_linux_tardir+set}" = set
848 then
849 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
850 fi
851
852 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
853 AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
854
855 # if we are given a zipdir...
856 if test "${with_ftd2xx_win32_zipdir+set}" = set
857 then
858 # Set the CFLAGS for "ftd2xx.h"
859 f=$with_ftd2xx_win32_zipdir/ftd2xx.h
860 if test ! -f $f ; then
861 AC_MSG_ERROR([File: $f cannot be found])
862 fi
863 CFLAGS="$CFLAGS -I$with_ftd2xx_win32_zipdir"
864
865 # And calculate the LDFLAGS for the machine
866 case "$host_cpu" in
867 i?86|x86_32)
868 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/i386"
869 LIBS="$LIBS -lftd2xx"
870 f=$with_ftd2xx_win32_zipdir/i386/ftd2xx.lib
871 ;;
872 amd64|x86_64)
873 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/amd64"
874 LIBS="$LIBS -lftd2xx"
875 f=$with_ftd2xx_win32_zipdir/amd64/ftd2xx.lib
876 ;;
877 *)
878 AC_MSG_ERROR([Unknown Win32 host cpu: $host_cpu])
879 ;;
880 esac
881 if test ! -f $f ; then
882 AC_MSG_ERROR([Library: $f not found])
883 fi
884 else
885 LIBS="$LIBS -lftd2xx"
886 AC_MSG_WARN([ASSUMPTION: The (win32) FTDICHIP.COM files: ftd2xx.h and ftd2xx.lib are in a proper place])
887 fi
888 fi
889 fi # win32
890
891 if test $is_darwin = yes ; then
892 if test "${with_ftd2xx_win32_zipdir+set}" = set
893 then
894 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
895 fi
896 if test "${with_ftd2xx_linux_tardir+set}" = set
897 then
898 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
899 fi
900
901 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
902 AC_MSG_CHECKING([for libftd2xx.a (darwin)])
903
904 if test ! -f /usr/local/include/ftd2xx.h ; then
905 AC_MSG_ERROR([ftd2xx library from FTDICHIP.com seems to be missing, cannot find: /usr/local/include/ftd2xx.h])
906 fi
907
908 CFLAGS="$CFLAGS -I/usr/local/include"
909 LDFLAGS="$LDFLAGS -L/usr/local/lib"
910 LIBS="$LIBS -lftd2xx"
911 AC_MSG_RESULT([-L/usr/local/lib -lftd2xx])
912 fi
913 fi # darwin
914
915 if test $is_win32 = no && test $is_darwin = no ; then
916
917 if test "${with_ftd2xx_win32_zipdir+set}" = set
918 then
919 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
920 fi
921
922 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
923 # Must be linux
924 if test $host_os != linux-gnu && test $host_os != linux ; then
925 AC_MSG_ERROR([The (linux) ftd2xx library from FTDICHIP.com is linux only. Try --enable-ft2232-libftdi instead])
926 fi
927 # Are we given a TAR directory?
928 if test "${with_ftd2xx_linux_tardir+set}" = set
929 then
930 AC_MSG_CHECKING([uninstalled ftd2xx distribution])
931 # The .H file is simple..
932 FTD2XX_H=$with_ftd2xx_linux_tardir/ftd2xx.h
933 if test ! -f "${FTD2XX_H}"; then
934 AC_MSG_ERROR([Option: --with-ftd2xx-linux-tardir appears wrong, cannot find: ${FTD2XX_H}])
935 fi
936 CFLAGS="$CFLAGS -I$with_ftd2xx_linux_tardir"
937 if test $with_ftd2xx_lib = shared; then
938 FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir"
939 FTD2XX_LIB="-lftd2xx"
940 else
941 # Test #1 - v1.0.x
942 case "$host_cpu" in
943 i?86|x86_32)
944 dir=build/i386;;
945 amd64|x86_64)
946 dir=build/x86_64;;
947 *)
948 dir=none;;
949 esac
950 if test -f "$with_ftd2xx_linux_tardir/$dir/libftd2xx.a"; then
951 FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir/$dir"
952 # Also needs -lrt
953 FTD2XX_LIB="-lftd2xx -lrt"
954 else
955 # Test Number2.
956 # Grr.. perhaps it exists as a version number?
957 FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a.*.*.*"
958 count=`ls ${FTD2XX_LIB} | wc -l`
959 if test $count -gt 1 ; then
960 AC_MSG_ERROR([Multiple libftd2xx.a files found in: $with_ftd2xx_linux_tardir/static_lib sorry cannot handle this yet])
961 fi
962 if test $count -ne 1 ; then
963 AC_MSG_ERROR([Not found: $f, option: --with-ftd2xx-linux-tardir appears to be wrong])
964 fi
965 # Because the "-l" rules do not understand version numbers...
966 # we will just stuff the absolute path onto the LIBS variable
967 FTD2XX_LIB="`ls ${FTD2XX_LIB}` -lpthread"
968 FTD2XX_LDFLAGS=""
969 fi
970 fi
971 LDFLAGS="${LDFLAGS} ${FTD2XX_LDFLAGS}"
972 LIBS="${FTD2XX_LIB} ${LIBS}"
973 AC_MSG_RESULT([${FTD2XX_LDFLAGS} ${FTD2XX_LIB}])
974 else
975 AC_CHECK_HEADER([ftd2xx.h],[],[
976 AC_MSG_ERROR([You seem to be missing the FTD2xx driver header file.])
977 ])
978 AC_SEARCH_LIBS([FT_GetLibraryVersion],[ftd2xx],,[
979 AC_MSG_ERROR([You appear to be missing the FTD2xx driver library.])
980 ],[])
981 fi
982 fi
983 fi # linux
984
985 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
986
987 # Before we go any further - make sure we can *BUILD* and *RUN*
988 # a simple app with the "ftd2xx.lib" file - in what ever form we where given
989 # We should be able to compile, link and run this test program now
990 AC_MSG_CHECKING([whether ftd2xx library works])
991
992 #
993 # Save the LDFLAGS for later..
994 LDFLAGS_SAVE=$LDFLAGS
995 CFLAGS_SAVE=$CFLAGS
996 _LDFLAGS=`eval echo $LDFLAGS`
997 _CFLAGS=`eval echo $CFLAGS`
998 LDFLAGS=$_LDFLAGS
999 CFLAGS=$_CFLAGS
1000
1001 AC_RUN_IFELSE([AC_LANG_PROGRAM([[
1002 #include "confdefs.h"
1003 #if IS_WIN32
1004 #include "windows.h"
1005 #endif
1006 #include <stdio.h>
1007 #include <ftd2xx.h>
1008 ]], [[
1009 DWORD x;
1010 FT_GetLibraryVersion( &x );
1011 ]])], [
1012 AC_MSG_RESULT([Success!])
1013 ], [
1014 AC_MSG_ERROR([Cannot build & run test program using ftd2xx.lib])
1015 ], [
1016 AC_MSG_RESULT([Skipping as we are cross-compiling])
1017 ])
1018
1019 AC_MSG_CHECKING([for ftd2xx highspeed device support])
1020 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1021 #include "confdefs.h"
1022 #if IS_WIN32
1023 #include "windows.h"
1024 #endif
1025 #include <stdio.h>
1026 #include <ftd2xx.h>
1027
1028 DWORD x = FT_DEVICE_4232H;
1029 ]], [])], [
1030 AC_DEFINE([BUILD_FT2232_HIGHSPEED], [1],
1031 [Support FT2232H/FT4232HS with FTD2XX or libftdi.])
1032 build_ft2232_highspeed=yes
1033 ], [
1034 build_ft2232_highspeed=no
1035 ])
1036 AC_MSG_RESULT([$build_ft2232_highspeed])
1037
1038 if test $build_ft2232_highspeed = no; then
1039 AC_MSG_WARN([You need a newer FTD2XX driver (version 2.04.16 or later).])
1040 fi
1041
1042 AC_MSG_CHECKING([for ftd2xx FT232H device support])
1043 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1044 #include "confdefs.h"
1045 #if IS_WIN32
1046 #include "windows.h"
1047 #endif
1048 #include <stdio.h>
1049 #include <ftd2xx.h>
1050
1051 DWORD x = FT_DEVICE_232H;
1052 ]], [])], [
1053 AC_DEFINE([HAS_ENUM_FT232H], [1],
1054 [Support FT232H with FTD2XX or libftdi.])
1055 has_enum_ft232h=yes
1056 ], [
1057 has_enum_ft232h=no
1058 ])
1059 AC_MSG_RESULT([$has_enum_ft232h])
1060
1061 if test $has_enum_ft232h = no; then
1062 AC_MSG_WARN([You need a newer FTD2XX driver (version 2.08.12 or later).])
1063 fi
1064
1065 LDFLAGS=$LDFLAGS_SAVE
1066 CFLAGS=$CFLAGS_SAVE
1067 fi
1068
1069 if test $build_ft2232_libftdi = yes -o $build_usb_blaster_libftdi = yes; then
1070 # We assume: the package is preinstalled in the proper place
1071 # these present as 2 libraries..
1072 LIBS="$LIBS -lftdi -lusb"
1073 #
1074 # Try to build a small program.
1075 AC_MSG_CHECKING([Build & Link with libftdi...])
1076
1077 LDFLAGS_SAVE=$LDFLAGS
1078 CFLAGS_SAVE=$CFLAGS
1079 _LDFLAGS=`eval echo $LDFLAGS`
1080 _CFLAGS=`eval echo $CFLAGS`
1081 LDFLAGS=$_LDFLAGS
1082 CFLAGS=$_CFLAGS
1083
1084 AC_RUN_IFELSE([AC_LANG_PROGRAM([[
1085 #include <stdio.h>
1086 #include <ftdi.h>
1087 ]], [[
1088 struct ftdi_context *p;
1089 p = ftdi_new();
1090 if( p != NULL ){
1091 return 0;
1092 } else {
1093 fprintf( stderr, "calling ftdi_new() failed\n");
1094 return 1;
1095 }
1096 ]])], [
1097 AC_MSG_RESULT([Success])
1098 ], [
1099 AC_MSG_ERROR([Cannot build & run test program using libftdi])
1100 ], [
1101 AC_MSG_RESULT([Skipping as we are cross-compiling])
1102 ])
1103
1104 AC_MSG_CHECKING([for libftdi highspeed device support])
1105 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1106 #include <stdio.h>
1107 #include <ftdi.h>
1108 ]], [[
1109 enum ftdi_chip_type x = TYPE_2232H;
1110 ]])], [
1111 AC_DEFINE([BUILD_FT2232_HIGHSPEED], [1],
1112 [Support FT2232H/FT4232HS with FTD2XX or libftdi.])
1113 build_ft2232_highspeed=yes
1114 ], [
1115 build_ft2232_highspeed=no
1116 ])
1117 AC_MSG_RESULT([$build_ft2232_highspeed])
1118
1119 if test $build_ft2232_highspeed = no; then
1120 AC_MSG_WARN([You need a newer libftdi version (0.16 or later).])
1121 fi
1122
1123 AC_MSG_CHECKING([for libftdi FT232H device support])
1124 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1125 #include <stdio.h>
1126 #include <ftdi.h>
1127 ]], [[
1128 enum ftdi_chip_type x = TYPE_232H;
1129 ]])], [
1130 AC_DEFINE([HAS_ENUM_FT232H], [1],
1131 [Support FT232H with FTD2XX or libftdi.])
1132 has_enum_ft232h=yes
1133 ], [
1134 has_enum_ft232h=no
1135 ])
1136 AC_MSG_RESULT([$has_enum_ft232h])
1137
1138 if test $has_enum_ft232h = no; then
1139 AC_MSG_WARN([You need a newer libftdi version (0.20 or later).])
1140 fi
1141
1142 # Restore the 'unexpanded ldflags'
1143 LDFLAGS=$LDFLAGS_SAVE
1144 CFLAGS=$CFLAGS_SAVE
1145 fi
1146
1147 # check for usb.h when a driver will require it
1148 build_usb=no
1149 if test $build_vsllink = yes -o $build_usbprog = yes -o \
1150 $build_rlink = yes -o $build_ulink = yes -o $build_armjtagew = yes -o \
1151 $build_aice = yes
1152 then
1153 build_usb=yes
1154 fi
1155
1156 # Check for libusb1 ported drivers.
1157 build_usb_ng=no
1158 if test $build_jlink = yes -o $build_hladapter_stlink = yes -o $build_osbdm = yes -o \
1159 $build_opendous = yes -o $build_ftdi = yes -o $build_hladapter_icdi = yes
1160 then
1161 build_usb_ng=yes
1162 fi
1163
1164 # check for libusb library if necessary
1165 use_libusb0=no
1166 use_libusb1=no
1167 if test $build_usb = yes -o $build_usb_ng = yes; then
1168 if test $check_libusb0 = no -a $build_usb_ng = yes; then
1169 AC_CHECK_HEADER([libusb-1.0/libusb.h],
1170 [AC_DEFINE(HAVE_LIBUSB1, 1, [Define if you have libusb-1.0]) check_libusb0=no use_libusb1=yes ],
1171 [ check_libusb0=yes use_libusb1=no ])
1172 fi
1173
1174 if test $check_libusb0 = yes -o $build_usb = yes; then
1175 AC_CHECK_HEADERS([usb.h], [use_libusb0=yes],
1176 [AC_MSG_ERROR([libusb or libusb-1.0 are required to build some OpenOCD driver(s)])])
1177 fi
1178 fi
1179
1180 AM_CONDITIONAL([RELEASE], [test $build_release = yes])
1181 AM_CONDITIONAL([PARPORT], [test $build_parport = yes])
1182 AM_CONDITIONAL([DUMMY], [test $build_dummy = yes])
1183 AM_CONDITIONAL([GIVEIO], [test x$parport_use_giveio = xyes])
1184 AM_CONDITIONAL([EP93XX], [test $build_ep93xx = yes])
1185 AM_CONDITIONAL([ZY1000], [test $build_zy1000 = yes])
1186 AM_CONDITIONAL([ZY1000_MASTER], [test $build_zy1000_master = yes])
1187 AM_CONDITIONAL([IOUTIL], [test $build_ioutil = yes])
1188 AM_CONDITIONAL([AT91RM9200], [test $build_at91rm9200 = yes])
1189 AM_CONDITIONAL([BITBANG], [test $build_bitbang = yes])
1190 AM_CONDITIONAL([FT2232_LIBFTDI], [test $build_ft2232_libftdi = yes])
1191 AM_CONDITIONAL([FT2232_DRIVER], [test $build_ft2232_ftd2xx = yes -o $build_ft2232_libftdi = yes])
1192 AM_CONDITIONAL([FTDI_DRIVER], [test $build_ftdi = yes])
1193 AM_CONDITIONAL([USB_BLASTER_LIBFTDI], [test $build_usb_blaster_libftdi = yes])
1194 AM_CONDITIONAL([USB_BLASTER_FTD2XX], [test $build_usb_blaster_ftd2xx = yes])
1195 AM_CONDITIONAL([USB_BLASTER_DRIVER], [test $build_usb_blaster_ftd2xx = yes -o $build_usb_blaster_libftdi = yes])
1196 AM_CONDITIONAL([AMTJTAGACCEL], [test $build_amtjtagaccel = yes])
1197 AM_CONDITIONAL([GW16012], [test $build_gw16012 = yes])
1198 AM_CONDITIONAL([PRESTO_LIBFTDI], [test $build_presto_libftdi = yes])
1199 AM_CONDITIONAL([PRESTO_DRIVER], [test $build_presto_ftd2xx = yes -o $build_presto_libftdi = yes])
1200 AM_CONDITIONAL([USBPROG], [test $build_usbprog = yes])
1201 AM_CONDITIONAL([OOCD_TRACE], [test $build_oocd_trace = yes])
1202 AM_CONDITIONAL([JLINK], [test $build_jlink = yes])
1203 AM_CONDITIONAL([AICE], [test $build_aice = yes])
1204 AM_CONDITIONAL([VSLLINK], [test $build_vsllink = yes])
1205 AM_CONDITIONAL([RLINK], [test $build_rlink = yes])
1206 AM_CONDITIONAL([ULINK], [test $build_ulink = yes])
1207 AM_CONDITIONAL([ARMJTAGEW], [test $build_armjtagew = yes])
1208 AM_CONDITIONAL([REMOTE_BITBANG], [test $build_remote_bitbang = yes])
1209 AM_CONDITIONAL([BUSPIRATE], [test $build_buspirate = yes])
1210 AM_CONDITIONAL([HLADAPTER], [test $build_hladapter_stlink = yes -o $build_hladapter_icdi = yes])
1211 AM_CONDITIONAL([OSBDM], [test $build_osbdm = yes])
1212 AM_CONDITIONAL([OPENDOUS], [test $build_opendous = yes])
1213 AM_CONDITIONAL([SYSFSGPIO], [test $build_sysfsgpio = yes])
1214 AM_CONDITIONAL([USB], [test $build_usb = yes])
1215 AM_CONDITIONAL([USB_NG], [test $build_usb_ng = yes])
1216 AM_CONDITIONAL([USE_LIBUSB0], [test $use_libusb0 = yes])
1217 AM_CONDITIONAL([USE_LIBUSB1], [test $use_libusb1 = yes])
1218 AM_CONDITIONAL([IS_CYGWIN], [test $is_cygwin = yes])
1219 AM_CONDITIONAL([IS_MINGW], [test $is_mingw = ye]s)
1220 AM_CONDITIONAL([IS_WIN32], [test $is_win32 = ye]s)
1221 AM_CONDITIONAL([IS_DARWIN], [test $is_darwin = ye]s)
1222 AM_CONDITIONAL([BITQ], [test $build_bitq = yes])
1223
1224 AM_CONDITIONAL([MINIDRIVER], [test $build_minidriver = ye]s)
1225 AM_CONDITIONAL([MINIDRIVER_DUMMY], [test $build_minidriver_dummy = yes])
1226
1227 AM_CONDITIONAL([INTERNAL_JIMTCL], [test $use_internal_jimtcl = yes])
1228
1229 # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h?
1230 AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
1231 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1232 #define _GNU_SOURCE
1233 #include <unistd.h>
1234 #include <stdlib.h>
1235 ]], [[char **ep = environ;]]
1236 )], [
1237 AC_MSG_RESULT([yes])
1238 has_environ=yes
1239 ], [
1240 AC_MSG_RESULT([no])
1241
1242 # Possibility #2: can environ be found in an available library?
1243 AC_MSG_CHECKING([for extern environ])
1244 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1245 extern char **environ;
1246 ]], [[char **ep = environ;]]
1247 )], [
1248 AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
1249 has_environ=yes
1250 ], [
1251 has_environ=no
1252 ])
1253 AC_MSG_RESULT([${has_environ}])
1254 ])
1255
1256 if test "${has_environ}" != "yes" ; then
1257 AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
1258 fi
1259
1260 AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
1261
1262 # set default gcc warnings
1263 GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security -Wshadow"
1264 if test "${gcc_wextra}" = yes; then
1265 GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
1266 GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
1267 GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
1268 GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
1269 fi
1270 if test "${gcc_werror}" = yes; then
1271 GCC_WARNINGS="${GCC_WARNINGS} -Werror"
1272 fi
1273
1274 # overide default gcc cflags
1275 if test $gcc_warnings = yes; then
1276 CFLAGS="$CFLAGS $GCC_WARNINGS"
1277 fi
1278
1279 # Setup for compiling build tools
1280 AC_MSG_CHECKING([for a C compiler for build tools])
1281 if test $cross_compiling = yes; then
1282 AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
1283 CFLAGS_FOR_BUILD="-g -O2 $GCC_WARNINGS"
1284 else
1285 CC_FOR_BUILD=$CC
1286 CFLAGS_FOR_BUILD=$CFLAGS
1287 fi
1288
1289 AC_MSG_RESULT([$CC_FOR_BUILD])
1290 AC_SUBST([CC_FOR_BUILD])
1291 AC_SUBST([CFLAGS_FOR_BUILD])
1292
1293 AC_MSG_CHECKING([for suffix of executable build tools])
1294 if test $cross_compiling = yes; then
1295 cat >conftest.c <<\_______EOF
1296 int main ()
1297 {
1298 exit (0);
1299 }
1300 _______EOF
1301 for i in .exe ""; do
1302 compile="$CC_FOR_BUILD conftest.c -o conftest$i"
1303 if AC_TRY_EVAL(compile); then
1304 if (./conftest) 2>&AC_FD_CC; then
1305 EXEEXT_FOR_BUILD=$i
1306 break
1307 fi
1308 fi
1309 done
1310 rm -f conftest*
1311 if test "${EXEEXT_FOR_BUILD+set}" != set; then
1312 AC_MSG_ERROR([Cannot determine suffix of executable build tools])
1313 fi
1314 else
1315 EXEEXT_FOR_BUILD=$EXEEXT
1316 fi
1317 AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
1318 AC_SUBST([EXEEXT_FOR_BUILD])
1319
1320 AC_CONFIG_FILES([
1321 Makefile
1322 src/Makefile
1323 src/helper/Makefile
1324 src/jtag/Makefile
1325 src/jtag/drivers/Makefile
1326 src/jtag/drivers/usb_blaster/Makefile
1327 src/jtag/hla/Makefile
1328 src/jtag/aice/Makefile
1329 src/transport/Makefile
1330 src/xsvf/Makefile
1331 src/svf/Makefile
1332 src/target/Makefile
1333 src/rtos/Makefile
1334 src/server/Makefile
1335 src/flash/Makefile
1336 src/flash/nor/Makefile
1337 src/flash/nand/Makefile
1338 src/pld/Makefile
1339 doc/Makefile
1340 ])
1341 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)