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