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