48e7d64bad698494e4670fe4ed8081cc418f7e95
[openocd.git] / configure.ac
1 AC_PREREQ(2.60)
2 AC_INIT([openocd], [0.6.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 AM_CONFIG_HEADER([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 on default static]),
258 [
259 case "$withval" in
260 static)
261 with_ftd2xx_lib=$withval
262 ;;
263 shared)
264 with_ftd2xx_lib=$withval
265 ;;
266 *)
267 AC_MSG_ERROR([Option: --with-ftd2xx-lib=static or --with-ftd2xx-lib=shared not, $withval])
268 ;;
269 esac
270 ], [
271 # Default is static - it is simpler :-(
272 with_ftd2xx_lib=static
273 ])
274
275 AC_ARG_ENABLE([doxygen-html],
276 AS_HELP_STRING([--disable-doxygen-html],
277 [Disable building Doxygen manual as HTML.]),
278 [doxygen_as_html=$enableval], [doxygen_as_html=yes])
279 AC_SUBST([doxygen_as_html])
280 AC_MSG_CHECKING([whether to build Doxygen as HTML])
281 AC_MSG_RESULT([$doxygen_as_html])
282
283 AC_ARG_ENABLE([doxygen-pdf],
284 AS_HELP_STRING([--enable-doxygen-pdf],
285 [Enable building Doxygen manual as PDF.]),
286 [doxygen_as_pdf=$enableval], [doxygen_as_pdf=no])
287 AC_SUBST([doxygen_as_pdf])
288 AC_MSG_CHECKING([whether to build Doxygen as PDF])
289 AC_MSG_RESULT([$doxygen_as_pdf])
290
291 AC_ARG_ENABLE([gccwarnings],
292 AS_HELP_STRING([--disable-gccwarnings], [Disable compiler warnings]),
293 [gcc_warnings=$enableval], [gcc_warnings=yes])
294
295 AC_ARG_ENABLE([wextra],
296 AS_HELP_STRING([--disable-wextra], [Disable extra compiler warnings]),
297 [gcc_wextra=$enableval], [gcc_wextra=$gcc_warnings])
298
299 AC_ARG_ENABLE([werror],
300 AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
301 [gcc_werror=$enableval], [gcc_werror=$gcc_warnings])
302
303 # set default verbose options, overridden by following options
304 debug_jtag_io=no
305 debug_usb_io=no
306 debug_usb_comms=no
307
308 AC_ARG_ENABLE([verbose],
309 AS_HELP_STRING([--enable-verbose],
310 [Enable verbose JTAG I/O messages (for debugging).]),
311 [
312 debug_jtag_io=$enableval
313 debug_usb_io=$enableval
314 debug_usb_comms=$enableval
315 ], [])
316
317 AC_ARG_ENABLE([verbose_jtag_io],
318 AS_HELP_STRING([--enable-verbose-jtag-io],
319 [Enable verbose JTAG I/O messages (for debugging).]),
320 [debug_jtag_io=$enableval], [])
321
322 AC_ARG_ENABLE([verbose_usb_io],
323 AS_HELP_STRING([--enable-verbose-usb-io],
324 [Enable verbose USB I/O messages (for debugging)]),
325 [debug_usb_io=$enableval], [])
326
327 AC_ARG_ENABLE([verbose_usb_comms],
328 AS_HELP_STRING([--enable-verbose-usb-comms],
329 [Enable verbose USB communication messages (for debugging)]),
330 [debug_usb_comms=$enableval], [])
331
332 AC_MSG_CHECKING([whether to enable verbose JTAG I/O messages]);
333 AC_MSG_RESULT([$debug_jtag_io])
334 if test $debug_jtag_io = yes; then
335 AC_DEFINE([_DEBUG_JTAG_IO_],[1], [Print verbose JTAG I/O messages])
336 fi
337
338 AC_MSG_CHECKING([whether to enable verbose USB I/O messages]);
339 AC_MSG_RESULT([$debug_usb_io])
340 if test $debug_usb_io = yes; then
341 AC_DEFINE([_DEBUG_USB_IO_],[1], [Print verbose USB I/O messages])
342 fi
343
344 AC_MSG_CHECKING([whether to enable verbose USB communication messages]);
345 AC_MSG_RESULT([$debug_usb_comms])
346 if test $debug_usb_comms = yes; then
347 AC_DEFINE([_DEBUG_USB_COMMS_],[1], [Print verbose USB communication messages])
348 fi
349
350 debug_malloc=no
351 AC_ARG_ENABLE([malloc_logging],
352 AS_HELP_STRING([--enable-malloc-logging],
353 [Include free space in logging messages (requires malloc.h).]),
354 [debug_malloc=$enableval], [])
355
356 AC_MSG_CHECKING([whether to enable malloc free space logging]);
357 AC_MSG_RESULT([$debug_malloc])
358 if test $debug_malloc = yes; then
359 AC_DEFINE([_DEBUG_FREE_SPACE_],[1], [Include malloc free space in logging])
360 fi
361
362 AC_ARG_ENABLE([dummy],
363 AS_HELP_STRING([--enable-dummy], [Enable building the dummy port driver]),
364 [build_dummy=$enableval], [build_dummy=no])
365
366 AC_ARG_ENABLE([parport],
367 AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
368 [build_parport=$enableval], [build_parport=no])
369
370 AC_ARG_ENABLE([parport_ppdev],
371 AS_HELP_STRING([--disable-parport-ppdev],
372 [Disable use of ppdev (/dev/parportN) for parport (for x86 only)]),
373 [parport_use_ppdev=$enableval], [parport_use_ppdev=yes])
374
375 AC_ARG_ENABLE([parport_giveio],
376 AS_HELP_STRING([--enable-parport-giveio],
377 [Enable use of giveio for parport (for CygWin only)]),
378 [parport_use_giveio=$enableval], [parport_use_giveio=])
379
380 AC_ARG_ENABLE([ft2232_libftdi],
381 AS_HELP_STRING([--enable-ft2232_libftdi], [Enable building support for FT2232 based devices using the libftdi driver, opensource alternate of FTD2XX]),
382 [build_ft2232_libftdi=$enableval], [build_ft2232_libftdi=no])
383
384 AC_ARG_ENABLE([ft2232_ftd2xx],
385 AS_HELP_STRING([--enable-ft2232_ftd2xx], [Enable building support for FT2232 based devices using the FTD2XX driver from ftdichip.com]),
386 [build_ft2232_ftd2xx=$enableval], [build_ft2232_ftd2xx=no])
387
388 AC_ARG_ENABLE([ftdi],
389 AS_HELP_STRING([--enable-ftdi], [Enable building support for the MPSSE mode of FTDI based devices, using libusb-1.0 in asynchronous mode]),
390 [build_ftdi=$enableval], [build_ftdi=no])
391
392 AC_ARG_ENABLE([usb_blaster_libftdi],
393 AS_HELP_STRING([--enable-usb_blaster_libftdi], [Enable building support for the Altera USB-Blaster using the libftdi driver, opensource alternate of FTD2XX]),
394 [build_usb_blaster_libftdi=$enableval], [build_usb_blaster_libftdi=no])
395
396 AC_ARG_ENABLE([usb_blaster_ftd2xx],
397 AS_HELP_STRING([--enable-usb_blaster_ftd2xx], [Enable building support for the Altera USB-Blaster using the FTD2XX driver from ftdichip.com]),
398 [build_usb_blaster_ftd2xx=$enableval], [build_usb_blaster_ftd2xx=no])
399
400 AC_ARG_ENABLE([amtjtagaccel],
401 AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
402 [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
403
404 AC_ARG_ENABLE([zy1000_master],
405 AS_HELP_STRING([--enable-zy1000-master], [Use ZY1000 JTAG master registers]),
406 [build_zy1000_master=$enableval], [build_zy1000_master=no])
407
408 AC_ARG_ENABLE([zy1000],
409 AS_HELP_STRING([--enable-zy1000], [Enable ZY1000 interface]),
410 [build_zy1000=$enableval], [build_zy1000=no])
411
412 AC_ARG_ENABLE([ioutil],
413 AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]),
414 [build_ioutil=$enableval], [build_ioutil=no])
415
416 case "${host_cpu}" in
417 arm*)
418 AC_ARG_ENABLE([ep93xx],
419 AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]),
420 [build_ep93xx=$enableval], [build_ep93xx=no])
421
422 AC_ARG_ENABLE([at91rm9200],
423 AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
424 [build_at91rm9200=$enableval], [build_at91rm9200=no])
425 ;;
426
427 *)
428 build_ep93xx=no
429 build_at91rm9200=no
430 ;;
431 esac
432
433 AC_ARG_ENABLE([gw16012],
434 AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
435 [build_gw16012=$enableval], [build_gw16012=no])
436
437 AC_ARG_ENABLE([presto_libftdi],
438 AS_HELP_STRING([--enable-presto_libftdi], [Enable building support for ASIX Presto Programmer using the libftdi driver]),
439 [build_presto_libftdi=$enableval], [build_presto_libftdi=no])
440
441 AC_ARG_ENABLE([presto_ftd2xx],
442 AS_HELP_STRING([--enable-presto_ftd2xx], [Enable building support for ASIX Presto Programmer using the FTD2XX driver]),
443 [build_presto_ftd2xx=$enableval], [build_presto_ftd2xx=no])
444
445 AC_ARG_ENABLE([usbprog],
446 AS_HELP_STRING([--enable-usbprog], [Enable building support for the usbprog JTAG Programmer]),
447 [build_usbprog=$enableval], [build_usbprog=no])
448
449 AC_ARG_ENABLE([oocd_trace],
450 AS_HELP_STRING([--enable-oocd_trace],
451 [Enable building support for some prototype OpenOCD+trace ETM capture hardware]),
452 [build_oocd_trace=$enableval], [build_oocd_trace=no])
453
454 AC_ARG_ENABLE([jlink],
455 AS_HELP_STRING([--enable-jlink], [Enable building support for the Segger J-Link JTAG Programmer]),
456 [build_jlink=$enableval], [build_jlink=no])
457
458 AC_ARG_ENABLE([vsllink],
459 AS_HELP_STRING([--enable-vsllink], [Enable building support for the Versaloon-Link JTAG Programmer]),
460 [build_vsllink=$enableval], [build_vsllink=no])
461
462 AC_ARG_ENABLE([rlink],
463 AS_HELP_STRING([--enable-rlink], [Enable building support for the Raisonance RLink JTAG Programmer]),
464 [build_rlink=$enableval], [build_rlink=no])
465
466 AC_ARG_ENABLE([ulink],
467 AS_HELP_STRING([--enable-ulink], [Enable building support for the Keil ULINK JTAG Programmer]),
468 [build_ulink=$enableval], [build_ulink=no])
469
470 AC_ARG_ENABLE([arm-jtag-ew],
471 AS_HELP_STRING([--enable-arm-jtag-ew], [Enable building support for the Olimex ARM-JTAG-EW Programmer]),
472 [build_armjtagew=$enableval], [build_armjtagew=no])
473
474 AC_ARG_ENABLE([buspirate],
475 AS_HELP_STRING([--enable-buspirate], [Enable building support for the Buspirate]),
476 [build_buspirate=$enableval], [build_buspirate=no])
477
478 AC_ARG_ENABLE([stlink],
479 AS_HELP_STRING([--enable-stlink], [Enable building support for the ST-Link JTAG Programmer]),
480 [build_stlink=$enableval], [build_stlink=no])
481
482 AC_ARG_ENABLE([osbdm],
483 AS_HELP_STRING([--enable-osbdm], [Enable building support for the OSBDM (JTAG only) Programmer]),
484 [build_osbdm=$enableval], [build_osbdm=no])
485
486 AC_ARG_ENABLE([opendous],
487 AS_HELP_STRING([--enable-opendous], [Enable building support for the estick/opendous JTAG Programmer]),
488 [build_opendous=$enableval], [build_opendous=no])
489
490 AC_ARG_ENABLE([minidriver_dummy],
491 AS_HELP_STRING([--enable-minidriver-dummy], [Enable the dummy minidriver.]),
492 [build_minidriver_dummy=$enableval], [build_minidriver_dummy=no])
493
494 AC_ARG_ENABLE([internal-jimtcl],
495 AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
496 [use_internal_jimtcl=$enableval], [use_internal_jimtcl=yes])
497
498 AC_ARG_ENABLE([libusb0],
499 AS_HELP_STRING([--enable-libusb0], [Use libusb-0.1 library for USB JTAG devices]),
500 [check_libusb0=$enableval], [check_libusb0=no])
501
502 build_minidriver=no
503 AC_MSG_CHECKING([whether to enable ZY1000 minidriver])
504 if test $build_zy1000 = yes; then
505 if test $build_minidriver = yes; then
506 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
507 fi
508 AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
509 [Define to 1 if you have the <jtag_minidriver.h> header file.])
510 build_minidriver=yes
511 fi
512 AC_MSG_RESULT([$build_zy1000])
513
514 AC_ARG_ENABLE([remote-bitbang],
515 AS_HELP_STRING([--enable-remote-bitbang], [Enable building support for the Remote Bitbang jtag driver]),
516 [build_remote_bitbang=$enableval], [build_remote_bitbang=no])
517
518 AC_MSG_CHECKING([whether to enable dummy minidriver])
519 if test $build_minidriver_dummy = yes; then
520 if test $build_minidriver = yes; then
521 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
522 fi
523 build_minidriver=yes
524 AC_DEFINE([BUILD_MINIDRIVER_DUMMY], [1], [Use the dummy minidriver.])
525 AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
526 [Define to 1 if you have the <jtag_minidriver.h> header file.])
527 fi
528 AC_MSG_RESULT([$build_minidriver_dummy])
529
530 AC_MSG_CHECKING([whether standard drivers can be built])
531 if test "$build_minidriver" = yes; then
532 AC_MSG_RESULT([no])
533 AC_MSG_WARN([Using the minidriver disables all other drivers.])
534 sleep 2
535 else
536 AC_MSG_RESULT([yes])
537 fi
538
539 case "${host_cpu}" in
540 i?86|x86*)
541 ;;
542 *)
543 if test x$parport_use_ppdev = xno; then
544 AC_MSG_WARN([--disable-parport-ppdev is not supported by the host CPU])
545 fi
546 parport_use_ppdev=yes
547 ;;
548 esac
549
550 case $host in
551 *-cygwin*)
552 is_win32=yes
553 parport_use_ppdev=no
554
555 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[return __MINGW32__;]])],
556 [is_mingw=yes],[is_mingw=no])
557 if test $is_mingw = yes; then
558 AC_DEFINE([IS_MINGW], [1], [1 if building for MinGW.])
559 if test x$parport_use_giveio = xno; then
560 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
561 fi
562 parport_use_giveio=yes
563 is_cygwin=no
564 else
565 is_cygwin=yes
566 AC_DEFINE([IS_CYGWIN], [1], [1 if building for Cygwin.])
567 # sys/io.h needed under cygwin for parport access
568 if test $build_parport = yes; then
569 AC_CHECK_HEADERS([sys/io.h],[],AC_MSG_ERROR([Please install the cygwin ioperm package]))
570 fi
571 fi
572
573 AC_DEFINE([IS_WIN32], [1], [1 if building for Win32.])
574 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
575 ;;
576 *-mingw*)
577 is_mingw=yes
578 is_win32=yes
579 parport_use_ppdev=no
580
581 if test x$parport_use_giveio = xno; then
582 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
583 fi
584 parport_use_giveio=yes
585
586 if test x$build_buspirate = xyes; then
587 AC_MSG_ERROR([buspirate currently not supported by MinGW32 hosts])
588 fi
589
590 CFLAGS="$CFLAGS -D__USE_MINGW_ANSI_STDIO"
591
592 AC_DEFINE([IS_MINGW], [1], [1 if building for MinGW.])
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 *darwin*)
597 is_darwin=yes
598
599 if test x$parport_use_giveio = xyes; then
600 AC_MSG_WARN([--enable-parport-giveio cannot be used by Darwin hosts])
601 fi
602 parport_use_giveio=no
603
604 AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
605 AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
606 AC_DEFINE([IS_DARWIN], [1], [1 if building for Darwin.])
607 ;;
608 *)
609 if test x$parport_use_giveio = xyes; then
610 AC_MSG_WARN([--enable-parport-giveio cannot be used by ]$host[ hosts])
611 fi
612 parport_use_giveio=no
613 AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
614 AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
615 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
616 ;;
617 esac
618
619 if test $build_parport = yes; then
620 build_bitbang=yes
621 AC_DEFINE([BUILD_PARPORT], [1], [1 if you want parport.])
622 else
623 AC_DEFINE([BUILD_PARPORT], [0], [0 if you don't want parport.])
624 fi
625
626 if test $build_dummy = yes; then
627 build_bitbang=yes
628 AC_DEFINE([BUILD_DUMMY], [1], [1 if you want dummy driver.])
629 else
630 AC_DEFINE([BUILD_DUMMY], [0], [0 if you don't want dummy driver.])
631 fi
632
633 if test $build_ep93xx = yes; then
634 build_bitbang=yes
635 AC_DEFINE([BUILD_EP93XX], [1], [1 if you want ep93xx.])
636 else
637 AC_DEFINE([BUILD_EP93XX], [0], [0 if you don't want ep93xx.])
638 fi
639
640 if test $build_zy1000 = yes; then
641 AC_DEFINE([BUILD_ZY1000], [1], [1 if you want ZY1000.])
642 else
643 AC_DEFINE([BUILD_ZY1000], [0], [0 if you don't want ZY1000.])
644 fi
645
646 if test $build_zy1000_master = yes; then
647 AC_DEFINE([BUILD_ZY1000_MASTER], [1], [1 if you want ZY1000 JTAG master registers.])
648 else
649 AC_DEFINE([BUILD_ZY1000_MASTER], [0], [0 if you don't want ZY1000 JTAG master registers.])
650 fi
651
652 if test $build_at91rm9200 = yes; then
653 build_bitbang=yes
654 AC_DEFINE([BUILD_AT91RM9200], [1], [1 if you want at91rm9200.])
655 else
656 AC_DEFINE([BUILD_AT91RM9200], [0], [0 if you don't want at91rm9200.])
657 fi
658
659 if test x$parport_use_ppdev = xyes; then
660 AC_DEFINE([PARPORT_USE_PPDEV], [1], [1 if you want parport to use ppdev.])
661 else
662 AC_DEFINE([PARPORT_USE_PPDEV], [0], [0 if you don't want parport to use ppdev.])
663 fi
664
665 if test x$parport_use_giveio = xyes; then
666 AC_DEFINE([PARPORT_USE_GIVEIO], [1], [1 if you want parport to use giveio.])
667 else
668 AC_DEFINE([PARPORT_USE_GIVEIO], [0], [0 if you don't want parport to use giveio.])
669 fi
670
671 if test $build_bitbang = yes; then
672 AC_DEFINE([BUILD_BITBANG], [1], [1 if you want a bitbang interface.])
673 else
674 AC_DEFINE([BUILD_BITBANG], [0], [0 if you don't want a bitbang interface.])
675 fi
676
677 if test $build_ft2232_libftdi = yes; then
678 AC_DEFINE([BUILD_FT2232_LIBFTDI], [1], [1 if you want libftdi ft2232.])
679 else
680 AC_DEFINE([BUILD_FT2232_LIBFTDI], [0], [0 if you don't want libftdi ft2232.])
681 fi
682
683 if test $build_ft2232_ftd2xx = yes; then
684 AC_DEFINE([BUILD_FT2232_FTD2XX], [1], [1 if you want ftd2xx ft2232.])
685 else
686 AC_DEFINE([BUILD_FT2232_FTD2XX], [0], [0 if you don't want ftd2xx ft2232.])
687 fi
688
689 if test $build_ftdi = yes; then
690 AC_DEFINE([BUILD_FTDI], [1], [1 if you want ftdi.])
691 else
692 AC_DEFINE([BUILD_FTDI], [0], [0 if you don't want ftdi.])
693 fi
694
695 if test $build_usb_blaster_libftdi = yes; then
696 build_bitbang=yes
697 AC_DEFINE([BUILD_USB_BLASTER_LIBFTDI], [1], [1 if you want libftdi usb_blaster.])
698 else
699 AC_DEFINE([BUILD_USB_BLASTER_LIBFTDI], [0], [0 if you don't want libftdi usb_blaster.])
700 fi
701
702 if test $build_usb_blaster_ftd2xx = yes; then
703 build_bitbang=yes
704 AC_DEFINE([BUILD_USB_BLASTER_FTD2XX], [1], [1 if you want ftd2xx usb_blaster.])
705 else
706 AC_DEFINE([BUILD_USB_BLASTER_FTD2XX], [0], [0 if you don't want ftd2xx usb_blaster.])
707 fi
708
709 if test $build_amtjtagaccel = yes; then
710 AC_DEFINE([BUILD_AMTJTAGACCEL], [1], [1 if you want the Amontec JTAG-Accelerator driver.])
711 else
712 AC_DEFINE([BUILD_AMTJTAGACCEL], [0], [0 if you don't want the Amontec JTAG-Accelerator driver.])
713 fi
714
715 if test $build_gw16012 = yes; then
716 AC_DEFINE([BUILD_GW16012], [1], [1 if you want the Gateworks GW16012 driver.])
717 else
718 AC_DEFINE([BUILD_GW16012], [0], [0 if you don't want the Gateworks GW16012 driver.])
719 fi
720
721 if test $build_presto_libftdi = yes; then
722 build_bitq=yes
723 AC_DEFINE([BUILD_PRESTO_LIBFTDI], [1], [1 if you want the ASIX PRESTO driver using libftdi.])
724 else
725 AC_DEFINE([BUILD_PRESTO_LIBFTDI], [0], [0 if you don't want the ASIX PRESTO driver using libftdi.])
726 fi
727
728 if test $build_presto_ftd2xx = yes; then
729 build_bitq=yes
730 AC_DEFINE([BUILD_PRESTO_FTD2XX], [1], [1 if you want the ASIX PRESTO driver using FTD2XX.])
731 else
732 AC_DEFINE([BUILD_PRESTO_FTD2XX], [0], [0 if you don't want the ASIX PRESTO driver using FTD2XX.])
733 fi
734
735 if test $build_bitq = yes; then
736 AC_DEFINE([BUILD_BITQ], [1], [1 if you want a bitq interface.])
737 else
738 AC_DEFINE([BUILD_BITQ], [0], [0 if you don't want a bitq interface.])
739 fi
740
741 if test $build_usbprog = yes; then
742 AC_DEFINE([BUILD_USBPROG], [1], [1 if you want the usbprog JTAG driver.])
743 else
744 AC_DEFINE([BUILD_USBPROG], [0], [0 if you don't want the usbprog JTAG driver.])
745 fi
746
747 if test $build_oocd_trace = yes; then
748 AC_DEFINE([BUILD_OOCD_TRACE], [1], [1 if you want the OpenOCD+trace ETM capture driver.])
749 else
750 AC_DEFINE([BUILD_OOCD_TRACE], [0], [0 if you don't want the OpenOCD+trace ETM capture driver.])
751 fi
752
753 if test $build_jlink = yes; then
754 AC_DEFINE([BUILD_JLINK], [1], [1 if you want the J-Link JTAG driver.])
755 else
756 AC_DEFINE([BUILD_JLINK], [0], [0 if you don't want the J-Link JTAG driver.])
757 fi
758
759 if test $build_vsllink = yes; then
760 AC_DEFINE([BUILD_VSLLINK], [1], [1 if you want the Versaloon-Link JTAG driver.])
761 else
762 AC_DEFINE([BUILD_VSLLINK], [0], [0 if you don't want the Versaloon-Link JTAG driver.])
763 fi
764
765 if test $build_rlink = yes; then
766 AC_DEFINE([BUILD_RLINK], [1], [1 if you want the RLink JTAG driver.])
767 else
768 AC_DEFINE([BUILD_RLINK], [0], [0 if you don't want the RLink JTAG driver.])
769 fi
770
771 if test $build_ulink = yes; then
772 AC_DEFINE([BUILD_ULINK], [1], [1 if you want the ULINK JTAG driver.])
773 else
774 AC_DEFINE([BUILD_ULINK], [0], [0 if you don't want the ULINK JTAG driver.])
775 fi
776
777 if test $build_armjtagew = yes; then
778 AC_DEFINE([BUILD_ARMJTAGEW], [1], [1 if you want the ARM-JTAG-EW JTAG driver.])
779 else
780 AC_DEFINE([BUILD_ARMJTAGEW], [0], [0 if you don't want the ARM-JTAG-EW JTAG driver.])
781 fi
782
783 if test $build_buspirate = yes; then
784 AC_DEFINE([BUILD_BUSPIRATE], [1], [1 if you want the Buspirate JTAG driver.])
785 else
786 AC_DEFINE([BUILD_BUSPIRATE], [0], [0 if you don't want the Buspirate JTAG driver.])
787 fi
788
789 if test $build_stlink = yes; then
790 AC_DEFINE([BUILD_STLINK], [1], [1 if you want the ST-Link JTAG driver.])
791 else
792 AC_DEFINE([BUILD_STLINK], [0], [0 if you don't want the ST-Link JTAG driver.])
793 fi
794
795 if test $build_osbdm = yes; then
796 AC_DEFINE([BUILD_OSBDM], [1], [1 if you want the OSBDM driver.])
797 else
798 AC_DEFINE([BUILD_OSBDM], [0], [0 if you don't want the OSBDM driver.])
799 fi
800
801 if test $build_opendous = yes; then
802 AC_DEFINE([BUILD_OPENDOUS], [1], [1 if you want the estick/opendous JTAG driver.])
803 else
804 AC_DEFINE([BUILD_OPENDOUS], [0], [0 if you don't want the estick/opendous JTAG driver.])
805 fi
806
807 if test "$use_internal_jimtcl" = yes; then
808 if test -f "$srcdir/jimtcl/configure.ac"; then
809 AX_CONFIG_SUBDIR_OPTION([jimtcl], [--disable-install-jim])
810 else
811 AC_MSG_ERROR([jimtcl not found, run git submodule init and git submodule update.])
812 fi
813 fi
814
815 if test $build_remote_bitbang = yes; then
816 build_bitbang=yes
817 AC_DEFINE([BUILD_REMOTE_BITBANG], [1], [1 if you want the Remote Bitbang JTAG driver.])
818 else
819 AC_DEFINE([BUILD_REMOTE_BITBNAG], [0], [0 if you don't want the Remote Bitbang JTAG driver.])
820 fi
821
822 #-- Deal with MingW/Cygwin FTD2XX issues
823
824 if test $is_win32 = yes; then
825 if test "${with_ftd2xx_linux_tardir+set}" = set
826 then
827 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
828 fi
829
830 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
831 AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
832
833 # if we are given a zipdir...
834 if test "${with_ftd2xx_win32_zipdir+set}" = set
835 then
836 # Set the CFLAGS for "ftd2xx.h"
837 f=$with_ftd2xx_win32_zipdir/ftd2xx.h
838 if test ! -f $f ; then
839 AC_MSG_ERROR([File: $f cannot be found])
840 fi
841 CFLAGS="$CFLAGS -I$with_ftd2xx_win32_zipdir"
842
843 # And calculate the LDFLAGS for the machine
844 case "$host_cpu" in
845 i?86|x86_32)
846 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/i386"
847 LIBS="$LIBS -lftd2xx"
848 f=$with_ftd2xx_win32_zipdir/i386/ftd2xx.lib
849 ;;
850 amd64|x86_64)
851 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/amd64"
852 LIBS="$LIBS -lftd2xx"
853 f=$with_ftd2xx_win32_zipdir/amd64/ftd2xx.lib
854 ;;
855 *)
856 AC_MSG_ERROR([Unknown Win32 host cpu: $host_cpu])
857 ;;
858 esac
859 if test ! -f $f ; then
860 AC_MSG_ERROR([Library: $f not found])
861 fi
862 else
863 LIBS="$LIBS -lftd2xx"
864 AC_MSG_WARN([ASSUMPTION: The (win32) FTDICHIP.COM files: ftd2xx.h and ftd2xx.lib are in a proper place])
865 fi
866 fi
867 fi # win32
868
869 if test $is_darwin = yes ; then
870 if test "${with_ftd2xx_win32_zipdir+set}" = set
871 then
872 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
873 fi
874 if test "${with_ftd2xx_linux_tardir+set}" = set
875 then
876 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
877 fi
878
879 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
880 AC_MSG_CHECKING([for libftd2xx.a (darwin)])
881
882 if test ! -f /usr/local/include/ftd2xx.h ; then
883 AC_MSG_ERROR([ftd2xx library from FTDICHIP.com seems to be missing, cannot find: /usr/local/include/ftd2xx.h])
884 fi
885
886 CFLAGS="$CFLAGS -I/usr/local/include"
887 LDFLAGS="$LDFLAGS -L/usr/local/lib"
888 LIBS="$LIBS -lftd2xx"
889 AC_MSG_RESULT([-L/usr/local/lib -lftd2xx])
890 fi
891 fi # darwin
892
893 if test $is_win32 = no && test $is_darwin = no ; then
894
895 if test "${with_ftd2xx_win32_zipdir+set}" = set
896 then
897 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
898 fi
899
900 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
901 # Must be linux
902 if test $host_os != linux-gnu && test $host_os != linux ; then
903 AC_MSG_ERROR([The (linux) ftd2xx library from FTDICHIP.com is linux only. Try --enable-ft2232-libftdi instead])
904 fi
905 # Are we given a TAR directory?
906 if test "${with_ftd2xx_linux_tardir+set}" = set
907 then
908 AC_MSG_CHECKING([uninstalled ftd2xx distribution])
909 # The .H file is simple..
910 FTD2XX_H=$with_ftd2xx_linux_tardir/ftd2xx.h
911 if test ! -f "${FTD2XX_H}"; then
912 AC_MSG_ERROR([Option: --with-ftd2xx-linux-tardir appears wrong, cannot find: ${FTD2XX_H}])
913 fi
914 CFLAGS="$CFLAGS -I$with_ftd2xx_linux_tardir"
915 if test $with_ftd2xx_lib = shared; then
916 FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir"
917 FTD2XX_LIB="-lftd2xx"
918 else
919 # Test #1 - v1.0.x
920 case "$host_cpu" in
921 i?86|x86_32)
922 dir=build/i386;;
923 amd64|x86_64)
924 dir=build/x86_64;;
925 *)
926 dir=none;;
927 esac
928 if test -f "$with_ftd2xx_linux_tardir/$dir/libftd2xx.a"; then
929 FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir/$dir"
930 # Also needs -lrt
931 FTD2XX_LIB="-lftd2xx -lrt"
932 else
933 # Test Number2.
934 # Grr.. perhaps it exists as a version number?
935 FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a.*.*.*"
936 count=`ls ${FTD2XX_LIB} | wc -l`
937 if test $count -gt 1 ; then
938 AC_MSG_ERROR([Multiple libftd2xx.a files found in: $with_ftd2xx_linux_tardir/static_lib sorry cannot handle this yet])
939 fi
940 if test $count -ne 1 ; then
941 AC_MSG_ERROR([Not found: $f, option: --with-ftd2xx-linux-tardir appears to be wrong])
942 fi
943 # Because the "-l" rules do not understand version numbers...
944 # we will just stuff the absolute path onto the LIBS variable
945 FTD2XX_LIB="`ls ${FTD2XX_LIB}` -lpthread"
946 FTD2XX_LDFLAGS=""
947 fi
948 fi
949 LDFLAGS="${LDFLAGS} ${FTD2XX_LDFLAGS}"
950 LIBS="${LIBS} ${FTD2XX_LIB}"
951 AC_MSG_RESULT([${FTD2XX_LDFLAGS} ${FTD2XX_LIB}])
952 else
953 AC_CHECK_HEADER([ftd2xx.h],[],[
954 AC_MSG_ERROR([You seem to be missing the FTD2xx driver header file.])
955 ])
956 AC_SEARCH_LIBS([FT_GetLibraryVersion],[ftd2xx],,[
957 AC_MSG_ERROR([You appear to be missing the FTD2xx driver library.])
958 ],[])
959 fi
960 fi
961 fi # linux
962
963 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes; then
964
965 # Before we go any further - make sure we can *BUILD* and *RUN*
966 # a simple app with the "ftd2xx.lib" file - in what ever form we where given
967 # We should be able to compile, link and run this test program now
968 AC_MSG_CHECKING([whether ftd2xx library works])
969
970 #
971 # Save the LDFLAGS for later..
972 LDFLAGS_SAVE=$LDFLAGS
973 CFLAGS_SAVE=$CFLAGS
974 _LDFLAGS=`eval echo $LDFLAGS`
975 _CFLAGS=`eval echo $CFLAGS`
976 LDFLAGS=$_LDFLAGS
977 CFLAGS=$_CFLAGS
978
979 AC_RUN_IFELSE([AC_LANG_PROGRAM([[
980 #include "confdefs.h"
981 #if IS_WIN32
982 #include "windows.h"
983 #endif
984 #include <stdio.h>
985 #include <ftd2xx.h>
986 ]], [[
987 DWORD x;
988 FT_GetLibraryVersion( &x );
989 ]])], [
990 AC_MSG_RESULT([Success!])
991 ], [
992 AC_MSG_ERROR([Cannot build & run test program using ftd2xx.lib])
993 ], [
994 AC_MSG_RESULT([Skipping as we are cross-compiling])
995 ])
996
997 AC_MSG_CHECKING([for ftd2xx highspeed device support])
998 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
999 #include "confdefs.h"
1000 #if IS_WIN32
1001 #include "windows.h"
1002 #endif
1003 #include <stdio.h>
1004 #include <ftd2xx.h>
1005
1006 DWORD x = FT_DEVICE_4232H;
1007 ]], [])], [
1008 AC_DEFINE([BUILD_FT2232_HIGHSPEED], [1],
1009 [Support FT2232H/FT4232HS with FTD2XX or libftdi.])
1010 build_ft2232_highspeed=yes
1011 ], [
1012 build_ft2232_highspeed=no
1013 ])
1014 AC_MSG_RESULT([$build_ft2232_highspeed])
1015
1016 if test $build_ft2232_highspeed = no; then
1017 AC_MSG_WARN([You need a newer FTD2XX driver (version 2.04.16 or later).])
1018 fi
1019
1020 LDFLAGS=$LDFLAGS_SAVE
1021 CFLAGS=$CFLAGS_SAVE
1022 fi
1023
1024 if test $build_ft2232_libftdi = yes ; then
1025 # We assume: the package is preinstalled in the proper place
1026 # these present as 2 libraries..
1027 LIBS="$LIBS -lftdi -lusb"
1028 #
1029 # Try to build a small program.
1030 AC_MSG_CHECKING([Build & Link with libftdi...])
1031
1032 LDFLAGS_SAVE=$LDFLAGS
1033 CFLAGS_SAVE=$CFLAGS
1034 _LDFLAGS=`eval echo $LDFLAGS`
1035 _CFLAGS=`eval echo $CFLAGS`
1036 LDFLAGS=$_LDFLAGS
1037 CFLAGS=$_CFLAGS
1038
1039 AC_RUN_IFELSE([AC_LANG_PROGRAM([[
1040 #include <stdio.h>
1041 #include <ftdi.h>
1042 ]], [[
1043 struct ftdi_context *p;
1044 p = ftdi_new();
1045 if( p != NULL ){
1046 return 0;
1047 } else {
1048 fprintf( stderr, "calling ftdi_new() failed\n");
1049 return 1;
1050 }
1051 ]])], [
1052 AC_MSG_RESULT([Success])
1053 ], [
1054 AC_MSG_ERROR([Cannot build & run test program using libftdi])
1055 ], [
1056 AC_MSG_RESULT([Skipping as we are cross-compiling])
1057 ])
1058
1059 AC_MSG_CHECKING([for libftdi highspeed device support])
1060 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1061 #include <stdio.h>
1062 #include <ftdi.h>
1063 ]], [[
1064 enum ftdi_chip_type x = TYPE_2232H;
1065 ]])], [
1066 AC_DEFINE([BUILD_FT2232_HIGHSPEED], [1],
1067 [Support FT2232H/FT4232HS with FTD2XX or libftdi.])
1068 build_ft2232_highspeed=yes
1069 ], [
1070 build_ft2232_highspeed=no
1071 ])
1072 AC_MSG_RESULT([$build_ft2232_highspeed])
1073
1074 if test $build_ft2232_highspeed = no; then
1075 AC_MSG_WARN([You need a newer libftdi version (0.16 or later).])
1076 fi
1077
1078 # Restore the 'unexpanded ldflags'
1079 LDFLAGS=$LDFLAGS_SAVE
1080 CFLAGS=$CFLAGS_SAVE
1081 fi
1082
1083 # check for usb.h when a driver will require it
1084 build_usb=no
1085 if test $build_vsllink = yes -o $build_usbprog = yes -o \
1086 $build_rlink = yes -o $build_ulink = yes -o $build_armjtagew = yes
1087 then
1088 build_usb=yes
1089 fi
1090
1091 # Check for libusb1 ported drivers.
1092 build_usb_ng=no
1093 if test $build_jlink = yes -o $build_stlink = yes -o $build_osbdm = yes -o \
1094 $build_opendous = yes -o $build_ftdi = yes
1095 then
1096 build_usb_ng=yes
1097 fi
1098
1099 # check for libusb library if necessary
1100 use_libusb0=no
1101 use_libusb1=no
1102 if test $build_usb = yes -o $build_usb_ng = yes; then
1103 if test $check_libusb0 = no -a $build_usb_ng = yes; then
1104 AC_CHECK_HEADER([libusb-1.0/libusb.h],
1105 [AC_DEFINE(HAVE_LIBUSB1, 1, [Define if you have libusb-1.0]) check_libusb0=no use_libusb1=yes ],
1106 [ check_libusb0=yes use_libusb1=no ])
1107 fi
1108
1109 if test $check_libusb0 = yes -o $build_usb = yes; then
1110 AC_CHECK_HEADERS([usb.h], [use_libusb0=yes],
1111 [AC_MSG_ERROR([libusb or libusb-1.0 are required to build some OpenOCD driver(s)])])
1112 fi
1113 fi
1114
1115 AM_CONDITIONAL([RELEASE], [test $build_release = yes])
1116 AM_CONDITIONAL([PARPORT], [test $build_parport = yes])
1117 AM_CONDITIONAL([DUMMY], [test $build_dummy = yes])
1118 AM_CONDITIONAL([GIVEIO], [test x$parport_use_giveio = xyes])
1119 AM_CONDITIONAL([EP93XX], [test $build_ep93xx = yes])
1120 AM_CONDITIONAL([ZY1000], [test $build_zy1000 = yes])
1121 AM_CONDITIONAL([ZY1000_MASTER], [test $build_zy1000_master = yes])
1122 AM_CONDITIONAL([IOUTIL], [test $build_ioutil = yes])
1123 AM_CONDITIONAL([AT91RM9200], [test $build_at91rm9200 = yes])
1124 AM_CONDITIONAL([BITBANG], [test $build_bitbang = yes])
1125 AM_CONDITIONAL([FT2232_LIBFTDI], [test $build_ft2232_libftdi = yes])
1126 AM_CONDITIONAL([FT2232_DRIVER], [test $build_ft2232_ftd2xx = yes -o $build_ft2232_libftdi = yes])
1127 AM_CONDITIONAL([FTDI_DRIVER], [test $build_ftdi = yes])
1128 AM_CONDITIONAL([USB_BLASTER_LIBFTDI], [test $build_usb_blaster_libftdi = yes])
1129 AM_CONDITIONAL([USB_BLASTER_DRIVER], [test $build_usb_blaster_ftd2xx = yes -o $build_usb_blaster_libftdi = yes])
1130 AM_CONDITIONAL([AMTJTAGACCEL], [test $build_amtjtagaccel = yes])
1131 AM_CONDITIONAL([GW16012], [test $build_gw16012 = yes])
1132 AM_CONDITIONAL([PRESTO_LIBFTDI], [test $build_presto_libftdi = yes])
1133 AM_CONDITIONAL([PRESTO_DRIVER], [test $build_presto_ftd2xx = yes -o $build_presto_libftdi = yes])
1134 AM_CONDITIONAL([USBPROG], [test $build_usbprog = yes])
1135 AM_CONDITIONAL([OOCD_TRACE], [test $build_oocd_trace = yes])
1136 AM_CONDITIONAL([JLINK], [test $build_jlink = yes])
1137 AM_CONDITIONAL([VSLLINK], [test $build_vsllink = yes])
1138 AM_CONDITIONAL([RLINK], [test $build_rlink = yes])
1139 AM_CONDITIONAL([ULINK], [test $build_ulink = yes])
1140 AM_CONDITIONAL([ARMJTAGEW], [test $build_armjtagew = yes])
1141 AM_CONDITIONAL([REMOTE_BITBANG], [test $build_remote_bitbang = yes])
1142 AM_CONDITIONAL([BUSPIRATE], [test $build_buspirate = yes])
1143 AM_CONDITIONAL([STLINK], [test $build_stlink = yes])
1144 AM_CONDITIONAL([OSBDM], [test $build_osbdm = yes])
1145 AM_CONDITIONAL([OPENDOUS], [test $build_opendous = yes])
1146 AM_CONDITIONAL([USB], [test $build_usb = yes])
1147 AM_CONDITIONAL([USB_NG], [test $build_usb_ng = yes])
1148 AM_CONDITIONAL([USE_LIBUSB0], [test $use_libusb0 = yes])
1149 AM_CONDITIONAL([USE_LIBUSB1], [test $use_libusb1 = yes])
1150 AM_CONDITIONAL([IS_CYGWIN], [test $is_cygwin = yes])
1151 AM_CONDITIONAL([IS_MINGW], [test $is_mingw = ye]s)
1152 AM_CONDITIONAL([IS_WIN32], [test $is_win32 = ye]s)
1153 AM_CONDITIONAL([IS_DARWIN], [test $is_darwin = ye]s)
1154 AM_CONDITIONAL([BITQ], [test $build_bitq = yes])
1155
1156 AM_CONDITIONAL([MINIDRIVER], [test $build_minidriver = ye]s)
1157 AM_CONDITIONAL([MINIDRIVER_DUMMY], [test $build_minidriver_dummy = yes])
1158
1159 AM_CONDITIONAL([INTERNAL_JIMTCL], [test $use_internal_jimtcl = yes])
1160
1161 # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h?
1162 AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
1163 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1164 #define _GNU_SOURCE
1165 #include <unistd.h>
1166 #include <stdlib.h>
1167 ]], [[char **ep = environ;]]
1168 )], [
1169 AC_MSG_RESULT([yes])
1170 has_environ=yes
1171 ], [
1172 AC_MSG_RESULT([no])
1173
1174 # Possibility #2: can environ be found in an available library?
1175 AC_MSG_CHECKING([for extern environ])
1176 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1177 extern char **environ;
1178 ]], [[char **ep = environ;]]
1179 )], [
1180 AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
1181 has_environ=yes
1182 ], [
1183 has_environ=no
1184 ])
1185 AC_MSG_RESULT([${has_environ}])
1186 ])
1187
1188 if test "${has_environ}" != "yes" ; then
1189 AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
1190 fi
1191
1192 AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
1193
1194 # set default gcc warnings
1195 GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security -Wshadow"
1196 if test "${gcc_wextra}" = yes; then
1197 GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
1198 GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
1199 GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
1200 GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
1201 fi
1202 if test "${gcc_werror}" = yes; then
1203 GCC_WARNINGS="${GCC_WARNINGS} -Werror"
1204 fi
1205
1206 # overide default gcc cflags
1207 if test $gcc_warnings = yes; then
1208 CFLAGS="$CFLAGS $GCC_WARNINGS"
1209 fi
1210
1211 # Setup for compiling build tools
1212 AC_MSG_CHECKING([for a C compiler for build tools])
1213 if test $cross_compiling = yes; then
1214 AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
1215 CFLAGS_FOR_BUILD="-g -O2 $GCC_WARNINGS"
1216 else
1217 CC_FOR_BUILD=$CC
1218 CFLAGS_FOR_BUILD=$CFLAGS
1219 fi
1220
1221 AC_MSG_RESULT([$CC_FOR_BUILD])
1222 AC_SUBST([CC_FOR_BUILD])
1223 AC_SUBST([CFLAGS_FOR_BUILD])
1224
1225 AC_MSG_CHECKING([for suffix of executable build tools])
1226 if test $cross_compiling = yes; then
1227 cat >conftest.c <<\_______EOF
1228 int main ()
1229 {
1230 exit (0);
1231 }
1232 _______EOF
1233 for i in .exe ""; do
1234 compile="$CC_FOR_BUILD conftest.c -o conftest$i"
1235 if AC_TRY_EVAL(compile); then
1236 if (./conftest) 2>&AC_FD_CC; then
1237 EXEEXT_FOR_BUILD=$i
1238 break
1239 fi
1240 fi
1241 done
1242 rm -f conftest*
1243 if test "${EXEEXT_FOR_BUILD+set}" != set; then
1244 AC_MSG_ERROR([Cannot determine suffix of executable build tools])
1245 fi
1246 else
1247 EXEEXT_FOR_BUILD=$EXEEXT
1248 fi
1249 AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
1250 AC_SUBST([EXEEXT_FOR_BUILD])
1251
1252 AC_CONFIG_FILES([
1253 Makefile
1254 src/Makefile
1255 src/helper/Makefile
1256 src/jtag/Makefile
1257 src/jtag/drivers/Makefile
1258 src/jtag/stlink/Makefile
1259 src/transport/Makefile
1260 src/xsvf/Makefile
1261 src/svf/Makefile
1262 src/target/Makefile
1263 src/rtos/Makefile
1264 src/server/Makefile
1265 src/flash/Makefile
1266 src/flash/nor/Makefile
1267 src/flash/nand/Makefile
1268 src/pld/Makefile
1269 doc/Makefile
1270 ])
1271 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)