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