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