Improve use of automake conditionals for FTDI-based JTAG drivers:
[openocd.git] / configure.in
1 AC_PREREQ(2.60)
2 AC_INIT([openocd], [0.2.0-in-development],
3 [OpenOCD Mailing List <openocd-development@lists.berlios.de>])
4 AC_CONFIG_SRCDIR([src/openocd.c])
5
6 AM_INIT_AUTOMAKE([-Wall -Wno-portability])
7 AM_MAINTAINER_MODE
8
9 AM_CONFIG_HEADER(config.h)
10 AH_BOTTOM([
11 #include "system.h"
12 #include "replacements.h"
13 ])
14
15 AC_LANG_C
16 AC_PROG_CC
17 AC_PROG_CC_C99
18 AM_PROG_CC_C_O
19 AC_PROG_RANLIB
20
21 dnl disable checks for C++, Fortran and GNU Java Compiler
22 m4_defun([_LT_AC_LANG_CXX_CONFIG], [:])
23 m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
24 m4_defun([_LT_AC_LANG_GCJ_CONFIG], [:])
25 AC_DISABLE_SHARED
26 AC_PROG_LIBTOOL
27 AC_SUBST(LIBTOOL_DEPS)
28
29
30 dnl configure checks required for Jim files (these are obsolete w/ C99)
31 AC_C_CONST
32 AC_TYPE_LONG_LONG_INT
33
34
35 AC_SEARCH_LIBS([ioperm], [ioperm])
36 AC_SEARCH_LIBS([dlopen], [dl])
37
38 AC_CHECK_HEADERS(arpa/inet.h)
39 AC_CHECK_HEADERS(elf.h)
40 AC_CHECK_HEADERS(dirent.h)
41 AC_CHECK_HEADERS(fcntl.h)
42 AC_CHECK_HEADERS(ifaddrs.h)
43 AC_CHECK_HEADERS(malloc.h)
44 AC_CHECK_HEADERS(netdb.h)
45 AC_CHECK_HEADERS(netinet/in.h)
46 AC_CHECK_HEADERS(netinet/tcp.h)
47 AC_CHECK_HEADERS(pthread.h)
48 AC_CHECK_HEADERS(strings.h)
49 AC_CHECK_HEADERS(sys/ioctl.h)
50 AC_CHECK_HEADERS(sys/param.h)
51 AC_CHECK_HEADERS(sys/poll.h)
52 AC_CHECK_HEADERS(sys/select.h)
53 AC_CHECK_HEADERS(sys/socket.h)
54 AC_CHECK_HEADERS(sys/stat.h)
55 AC_CHECK_HEADERS(sys/time.h)
56 AC_CHECK_HEADERS(sys/types.h)
57 AC_CHECK_HEADERS(unistd.h)
58
59 AC_CHECK_HEADERS([net/if.h], [], [], [dnl
60 #include <stdio.h>
61 #ifdef STDC_HEADERS
62 # include <stdlib.h>
63 # include <stddef.h>
64 #else
65 # ifdef HAVE_STDLIB_H
66 # include <stdlib.h>
67 # endif
68 #endif
69 #ifdef HAVE_SYS_SOCKET_H
70 # include <sys/socket.h>
71 #endif
72 ])
73
74 AC_HEADER_ASSERT
75 AC_HEADER_STDBOOL
76 AC_HEADER_TIME
77
78 AC_C_BIGENDIAN
79
80 AC_CHECK_FUNCS(strndup)
81 AC_CHECK_FUNCS(strnlen)
82 AC_CHECK_FUNCS(gettimeofday)
83 AC_CHECK_FUNCS(usleep)
84 AC_CHECK_FUNCS(vasprintf)
85
86 build_bitbang=no
87 build_bitq=no
88 is_cygwin=no
89 is_mingw=no
90 is_win32=no
91 is_darwin=no
92 build_release=yes
93
94 AC_ARG_ENABLE(release,
95 AS_HELP_STRING([--enable-release], [Enable Release Build, default no]),
96 [build_release=$enableval], [build_release=no])
97
98 if test $cross_compiling = no; then
99 if test $build_release = no; then
100 # check we can find guess-rev.sh
101 AC_CHECK_FILE("$srcdir/guess-rev.sh", build_release=no, build_release=yes)
102 fi
103 fi
104
105 # We are not *ALWAYS* being installed in the standard place.
106 # We may be installed in a "tool-build" specific location.
107 # Normally with other packages - as part of a tool distro.
108 # Thus - we should search that 'libdir' also.
109 #
110 # And - if we are being installed there - the odds are
111 # The libraries unique to what we are are there too.
112 #
113
114 # Expand nd deal with NONE - just like configure will do later
115 OCDprefix=$prefix
116 OCDxprefix=$exec_prefix
117 test x"$OCDprefix" = xNONE && OCDprefix=$ac_default_prefix
118 # Let make expand exec_prefix.
119 test x"$OCDxprefix" = xNONE && OCDxprefix="$OCDprefix"
120
121 # what matters is the "exec-prefix"
122 if test "$OCDxprefix" != "$ac_default_prefix"
123 then
124 # We are installing in a non-standard place
125 # Nonstandard --prefix and/or --exec-prefix
126 # We have an override of some sort.
127 # use build specific install library dir
128
129 LDFLAGS="$LDFLAGS -L$OCDxprefix/lib"
130 # RPATH becomes an issue on Linux only
131 if test $host_os = linux-gnu || test $host_os = linux ; then
132 LDFLAGS="$LDFLAGS -Wl,-rpath,$OCDxprefix/lib"
133 fi
134 # The "INCDIR" is also usable
135 CFLAGS="$CFLAGS -I$includedir"
136 fi
137
138 AC_ARG_WITH(ftd2xx,
139 AS_HELP_STRING([--with-ftd2xx=<PATH>],[This option has been removed.]),
140 [
141 # Option Given.
142 cat << __EOF__
143
144 The option: --with-ftd2xx=<PATH> has been removed.
145 On Linux, the new option is:
146
147 --with-ftd2xx-linux-tardir=/path/to/files
148
149 Where <path> is the path the the directory where the "tar.gz" file
150 from FTDICHIP.COM was unpacked, for example:
151
152 --with-ftd2xx-linux-tardir=${HOME}/libftd2xx0.4.16
153
154 On Cygwin/MingW32, the new option is:
155
156 --with-ftd2xx-win32-zipdir=/path/to/files
157
158 Where <path> is the path to the directory where the "zip" file from
159 FTDICHIP.COM was unpacked, for example:
160
161 --with-ftd2xx-win32-zipdir=${HOME}/ftd2xx.cdm.files
162
163 __EOF__
164
165 AC_MSG_ERROR([Sorry Cannot continue])
166 ], [true])
167
168 #========================================
169 # FTD2XXX support comes in 4 forms.
170 # (1) win32 - via a zip file
171 # (2) linux - via a tar file
172 # (3) linux/cygwin/mingw - via libftdi
173 # (4) darwin - installed under /usr/local
174 #
175 # In case (1) and (2) we need to know where the package was unpacked.
176
177 AC_ARG_WITH(ftd2xx-win32-zipdir,
178 AS_HELP_STRING([--with-ftd2xx-win32-zipdir],[Where (CYGWIN/MINGW) the zip file from ftdichip.com was unpacked <default=search>]),
179 [
180 # option present
181 if test -d $with_ftd2xx_win32_zipdir
182 then
183 with_ftd2xx_win32_zipdir=`cd $with_ftd2xx_win32_zipdir && pwd`
184 AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_win32_zipdir])
185 else
186 AC_MSG_ERROR([Parameter to --with-ftd2xx-win32-zipdir is not a dir: $with_ftd2xx_win32_zipdir])
187 fi
188 ], [true])
189
190 AC_ARG_WITH(ftd2xx-linux-tardir,
191 AS_HELP_STRING([--with-ftd2xx-linux-tardir], [Where (Linux/Unix) the tar file from ftdichip.com was unpacked <default=search>]),
192 [
193 # Option present
194 if test $is_win32 = yes ; then
195 AC_MSG_ERROR([The option: --with-ftd2xx-linux-tardir is only usable on linux])
196 fi
197 if test -d $with_ftd2xx_linux_tardir
198 then
199 with_ftd2xx_linux_tardir=`cd $with_ftd2xx_linux_tardir && pwd`
200 AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_linux_tardir])
201 else
202 AC_MSG_ERROR([Parameter to --with-ftd2xx-linux-tardir is not a dir: $with_ftd2xx_linux_tardir])
203 fi
204 ], [true])
205
206 AC_ARG_WITH(ftd2xx-lib,
207 AS_HELP_STRING([--with-ftd2xx-lib],
208 [Use static or shared ftd2xx libs on default static]),
209 [
210 case "$withval" in
211 static)
212 with_ftd2xx_lib=$withval
213 ;;
214 shared)
215 with_ftd2xx_lib=$withval
216 ;;
217 *)
218 AC_MSG_ERROR([Option: --with-ftd2xx-lib=static or --with-ftd2xx-lib=shared not, $withval])
219 ;;
220 esac
221 ], [
222 # Default is static - it is simpler :-(
223 with_ftd2xx_lib=static
224 ])
225
226 AC_ARG_ENABLE(gccwarnings,
227 AS_HELP_STRING([--disable-gccwarnings], [Disable compiler warnings]),
228 [gcc_warnings=$enableval], [gcc_warnings=yes])
229
230 AC_ARG_ENABLE(wextra,
231 AS_HELP_STRING([--disable-wextra], [Disable extra compiler warnings]),
232 [gcc_wextra=$enableval], [gcc_wextra=$gcc_warnings])
233
234 AC_ARG_ENABLE(werror,
235 AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
236 [gcc_werror=$enableval], [gcc_werror=$gcc_warnings])
237
238 # set default verbose options, overridden by following options
239 debug_jtag_io=no
240 debug_usb_io=no
241 debug_usb_comms=no
242
243 AC_ARG_ENABLE(verbose,
244 AS_HELP_STRING([--enable-verbose],
245 [Enable verbose JTAG I/O messages (for debugging).]),
246 [
247 debug_jtag_io=$enableval
248 debug_usb_io=$enableval
249 debug_usb_comms=$enableval
250 ], [])
251
252 AC_ARG_ENABLE(verbose_jtag_io,
253 AS_HELP_STRING([--enable-verbose-jtag-io],
254 [Enable verbose JTAG I/O messages (for debugging).]),
255 [debug_jtag_io=$enableval], [])
256 AC_ARG_ENABLE(verbose_usb_io,
257 AS_HELP_STRING([--enable-verbose-usb-io],
258 [Enable verbose USB I/O messages (for debugging)]),
259 [debug_usb_io=$enableval], [])
260 AC_ARG_ENABLE(verbose_usb_comms,
261 AS_HELP_STRING([--enable-verbose-usb-comms],
262 [Enable verbose USB communication messages (for debugging)]),
263 [debug_usb_comms=$enableval], [])
264
265 AC_MSG_CHECKING([whether to enable verbose JTAG I/O messages]);
266 AC_MSG_RESULT($debug_jtag_io)
267 if test $debug_jtag_io = yes; then
268 AC_DEFINE([_DEBUG_JTAG_IO_],[1], [Print verbose JTAG I/O messages])
269 fi
270
271 AC_MSG_CHECKING([whether to enable verbose USB I/O messages]);
272 AC_MSG_RESULT($debug_usb_io)
273 if test $debug_usb_io = yes; then
274 AC_DEFINE([_DEBUG_USB_IO_],[1], [Print verbose USB I/O messages])
275 fi
276
277 AC_MSG_CHECKING([whether to enable verbose USB communication messages]);
278 AC_MSG_RESULT($debug_usb_comms)
279 if test $debug_usb_comms = yes; then
280 AC_DEFINE([_DEBUG_USB_COMMS_],[1], [Print verbose USB communication messages])
281 fi
282
283
284 debug_malloc=no
285 AC_ARG_ENABLE(malloc_logging,
286 AS_HELP_STRING([--enable-malloc-logging],
287 [Include free space in logging messages (requires malloc.h).]),
288 [debug_malloc=$enableval], [])
289
290 AC_MSG_CHECKING([whether to enable malloc free space logging]);
291 AC_MSG_RESULT($debug_malloc)
292 if test $debug_malloc = yes; then
293 AC_DEFINE([_DEBUG_FREE_SPACE_],[1], [Include malloc free space in logging])
294 fi
295
296
297 AC_ARG_ENABLE(dummy,
298 AS_HELP_STRING([--enable-dummy], [Enable building the dummy port driver]),
299 [build_dummy=$enableval], [build_dummy=no])
300
301 AC_ARG_ENABLE(parport,
302 AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
303 [build_parport=$enableval], [build_parport=no])
304
305 AC_ARG_ENABLE(parport_ppdev,
306 AS_HELP_STRING([--disable-parport-ppdev],
307 [Disable use of ppdev (/dev/parportN) for parport (for x86 only)]),
308 [parport_use_ppdev=$enableval], [parport_use_ppdev=])
309
310 AC_ARG_ENABLE(parport_giveio,
311 AS_HELP_STRING([--enable-parport-giveio],
312 [Enable use of giveio for parport (for CygWin only)]),
313 [parport_use_giveio=$enableval], [parport_use_giveio=])
314
315 AC_ARG_ENABLE(ft2232_libftdi,
316 AS_HELP_STRING([--enable-ft2232_libftdi], [Enable building support for FT2232 based devices using the libftdi driver, opensource alternate of FTD2XX]),
317 [build_ft2232_libftdi=$enableval], [build_ft2232_libftdi=no])
318
319 AC_ARG_ENABLE(ft2232_ftd2xx,
320 AS_HELP_STRING([--enable-ft2232_ftd2xx], [Enable building support for FT2232 based devices using the FTD2XX driver from ftdichip.com]),
321 [build_ft2232_ftd2xx=$enableval], [build_ft2232_ftd2xx=no])
322
323 AC_ARG_ENABLE(ftd2xx_highspeed,
324 AS_HELP_STRING([--enable-ftd2xx-highspeed], [Enable building support for FT2232H and FT4232H-based devices (requires >=libftd2xx-0.4.16)]),
325 [want_ftd2xx_highspeed=$enableval], [want_ftd2xx_highspeed=maybe])
326
327 AC_ARG_ENABLE(amtjtagaccel,
328 AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
329 [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
330
331 AC_ARG_ENABLE(ecosboard,
332 AS_HELP_STRING([--enable-ecosboard], [Enable building support for eCosBoard based JTAG debugger]),
333 [build_ecosboard=$enableval], [build_ecosboard=no])
334
335 AC_ARG_ENABLE(ioutil,
336 AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]),
337 [build_ioutil=$enableval], [build_ioutil=no])
338
339 AC_ARG_ENABLE(httpd,
340 AS_HELP_STRING([--enable-httpd], [Enable builtin httpd server - useful for standalone OpenOCD implementations]),
341 [build_httpd=$enableval], [build_httpd=no])
342
343 case "${host_cpu}" in
344 arm*)
345 AC_ARG_ENABLE(ep93xx,
346 AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]),
347 [build_ep93xx=$enableval], [build_ep93xx=no])
348
349 AC_ARG_ENABLE(at91rm9200,
350 AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
351 [build_at91rm9200=$enableval], [build_at91rm9200=no])
352 ;;
353
354 *)
355 build_ep93xx=no
356 build_at91rm9200=no
357 ;;
358 esac
359
360 AC_ARG_ENABLE(gw16012,
361 AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
362 [build_gw16012=$enableval], [build_gw16012=no])
363
364 AC_ARG_ENABLE(presto_libftdi,
365 AS_HELP_STRING([--enable-presto_libftdi], [Enable building support for ASIX Presto Programmer using the libftdi driver]),
366 [build_presto_libftdi=$enableval], [build_presto_libftdi=no])
367
368 AC_ARG_ENABLE(presto_ftd2xx,
369 AS_HELP_STRING([--enable-presto_ftd2xx], [Enable building support for ASIX Presto Programmer using the FTD2XX driver]),
370 [build_presto_ftd2xx=$enableval], [build_presto_ftd2xx=no])
371
372 AC_ARG_ENABLE(usbprog,
373 AS_HELP_STRING([--enable-usbprog], [Enable building support for the usbprog JTAG Programmer]),
374 [build_usbprog=$enableval], [build_usbprog=no])
375
376 AC_ARG_ENABLE(oocd_trace,
377 AS_HELP_STRING([--enable-oocd_trace], [Enable building support for the OpenOCD+trace ETM capture device]),
378 [build_oocd_trace=$enableval], [build_oocd_trace=no])
379
380 AC_ARG_ENABLE(jlink,
381 AS_HELP_STRING([--enable-jlink], [Enable building support for the Segger J-Link JTAG Programmer]),
382 [build_jlink=$enableval], [build_jlink=no])
383
384 AC_ARG_ENABLE(vsllink,
385 AS_HELP_STRING([--enable-vsllink], [Enable building support for the Versaloon-Link JTAG Programmer]),
386 [build_vsllink=$enableval], [build_vsllink=no])
387
388 AC_ARG_ENABLE(rlink,
389 AS_HELP_STRING([--enable-rlink], [Enable building support for the Raisonance RLink JTAG Programmer]),
390 [build_rlink=$enableval], [build_rlink=no])
391
392 AC_ARG_ENABLE(arm-jtag-ew,
393 AS_HELP_STRING([--enable-arm-jtag-ew], [Enable building support for the Olimex ARM-JTAG-EW Programmer]),
394 [build_armjtagew=$enableval], [build_armjtagew=no])
395
396 AC_ARG_ENABLE(minidriver_dummy,
397 AS_HELP_STRING([--enable-minidriver-dummy], [Enable the dummy minidriver.]),
398 [build_minidriver_dummy=$enableval], [build_minidriver_dummy=no])
399
400
401 build_minidriver=no
402 AC_MSG_CHECKING([whether to enable ZY1000 minidriver])
403 if test $build_ecosboard = yes; then
404 if test $build_minidriver = yes; then
405 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
406 fi
407 AC_DEFINE(HAVE_JTAG_MINIDRIVER_H, 1,
408 [Define to 1 if you have the <jtag_minidriver.h> header file.])
409 build_minidriver=yes
410 fi
411 AC_MSG_RESULT($build_ecosboard)
412
413
414 AC_MSG_CHECKING([whether to enable dummy minidriver])
415 if test $build_minidriver_dummy = yes; then
416 if test $build_minidriver = yes; then
417 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
418 fi
419 build_minidriver=yes
420 AC_DEFINE(BUILD_MINIDRIVER_DUMMY, 1, [Use the dummy minidriver.])
421 AC_DEFINE(HAVE_JTAG_MINIDRIVER_H, 1,
422 [Define to 1 if you have the <jtag_minidriver.h> header file.])
423 fi
424 AC_MSG_RESULT($build_minidriver_dummy)
425
426 AC_MSG_CHECKING([whether standard drivers can be built])
427 if test "$build_minidriver" = yes; then
428 AC_MSG_RESULT([no])
429 AC_MSG_WARN([Using the minidriver disables all other drivers.])
430 sleep 2
431 else
432 AC_MSG_RESULT([yes])
433 fi
434
435 case "${host_cpu}" in
436 i?86|x86*)
437 ;;
438 *)
439 if test x$parport_use_ppdev = xno; then
440 AC_MSG_WARN([--disable-parport-ppdev is not supported by the host CPU])
441 fi
442 parport_use_ppdev=yes
443 ;;
444 esac
445
446 case $host in
447 *-cygwin*)
448 is_win32=yes
449
450 AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[return __MINGW32__;]),
451 [is_mingw=yes],[is_mingw=no])
452 if test $is_mingw = yes; then
453 AC_DEFINE(IS_MINGW, 1, [1 if building for MinGW.])
454 if test x$parport_use_giveio = xno; then
455 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
456 fi
457 parport_use_giveio=yes
458 is_cygwin=no
459 else
460 is_cygwin=yes
461 AC_DEFINE(IS_CYGWIN, 1, [1 if building for Cygwin.])
462 fi
463
464 AC_DEFINE(IS_WIN32, 1, [1 if building for Win32.])
465 AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
466 ;;
467 *-mingw*)
468 is_mingw=yes
469 is_win32=yes
470
471 if test x$parport_use_giveio = xno; then
472 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
473 fi
474 parport_use_giveio=yes
475
476 AC_DEFINE(IS_MINGW, 1, [1 if building for MinGW.])
477 AC_DEFINE(IS_WIN32, 1, [1 if building for Win32.])
478 AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
479 ;;
480 *darwin*)
481 is_darwin=yes
482
483 if test x$parport_use_giveio = xyes; then
484 AC_MSG_WARN([--enable-parport-giveio cannot be used by Darwin hosts])
485 fi
486 parport_use_giveio=no
487
488 AC_DEFINE(IS_CYGWIN, 0, [0 if not building for Cygwin.])
489 AC_DEFINE(IS_WIN32, 0, [0 if not building for Win32.])
490 AC_DEFINE(IS_DARWIN, 1, [1 if building for Darwin.])
491 ;;
492 *)
493 if test x$parport_use_giveio = xyes; then
494 AC_MSG_WARN([--enable-parport-giveio cannot be used by ]$host[ hosts])
495 fi
496 parport_use_giveio=no
497 AC_DEFINE(IS_CYGWIN, 0, [0 if not building for Cygwin.])
498 AC_DEFINE(IS_WIN32, 0, [0 if not building for Win32.])
499 AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
500 ;;
501 esac
502
503 if test $build_parport = yes; then
504 build_bitbang=yes
505 AC_DEFINE(BUILD_PARPORT, 1, [1 if you want parport.])
506 else
507 AC_DEFINE(BUILD_PARPORT, 0, [0 if you don't want parport.])
508 fi
509
510 if test $build_dummy = yes; then
511 build_bitbang=yes
512 AC_DEFINE(BUILD_DUMMY, 1, [1 if you want dummy driver.])
513 else
514 AC_DEFINE(BUILD_DUMMY, 0, [0 if you don't want dummy driver.])
515 fi
516
517 if test $build_ep93xx = yes; then
518 build_bitbang=yes
519 AC_DEFINE(BUILD_EP93XX, 1, [1 if you want ep93xx.])
520 else
521 AC_DEFINE(BUILD_EP93XX, 0, [0 if you don't want ep93xx.])
522 fi
523
524 if test $build_ecosboard = yes; then
525 AC_DEFINE(BUILD_ECOSBOARD, 1, [1 if you want eCosBoard.])
526 else
527 AC_DEFINE(BUILD_ECOSBOARD, 0, [0 if you don't want eCosBoard.])
528 fi
529
530 if test $build_ioutil = yes; then
531 AC_DEFINE(BUILD_IOUTIL, 1, [1 if you want ioutils.])
532 else
533 AC_DEFINE(BUILD_IOUTIL, 0, [0 if you don't want ioutils.])
534 fi
535
536 if test $build_httpd = yes; then
537 AC_DEFINE(BUILD_HTTPD, 1, [1 if you want httpd.])
538 else
539 AC_DEFINE(BUILD_HTTPD, 0, [0 if you don't want httpd.])
540 fi
541
542 if test $build_at91rm9200 = yes; then
543 build_bitbang=yes
544 AC_DEFINE(BUILD_AT91RM9200, 1, [1 if you want at91rm9200.])
545 else
546 AC_DEFINE(BUILD_AT91RM9200, 0, [0 if you don't want at91rm9200.])
547 fi
548
549 if test x$parport_use_ppdev = xyes; then
550 AC_DEFINE(PARPORT_USE_PPDEV, 1, [1 if you want parport to use ppdev.])
551 else
552 AC_DEFINE(PARPORT_USE_PPDEV, 0, [0 if you don't want parport to use ppdev.])
553 fi
554
555 if test x$parport_use_giveio = xyes; then
556 AC_DEFINE(PARPORT_USE_GIVEIO, 1, [1 if you want parport to use giveio.])
557 else
558 AC_DEFINE(PARPORT_USE_GIVEIO, 0, [0 if you don't want parport to use giveio.])
559 fi
560
561 if test $build_bitbang = yes; then
562 AC_DEFINE(BUILD_BITBANG, 1, [1 if you want a bitbang interface.])
563 else
564 AC_DEFINE(BUILD_BITBANG, 0, [0 if you don't want a bitbang interface.])
565 fi
566
567 if test $build_ft2232_libftdi = yes; then
568 AC_DEFINE(BUILD_FT2232_LIBFTDI, 1, [1 if you want libftdi ft2232.])
569 else
570 AC_DEFINE(BUILD_FT2232_LIBFTDI, 0, [0 if you don't want libftdi ft2232.])
571 fi
572
573 if test $build_ft2232_ftd2xx = yes; then
574 AC_DEFINE(BUILD_FT2232_FTD2XX, 1, [1 if you want ftd2xx ft2232.])
575 else
576 AC_DEFINE(BUILD_FT2232_FTD2XX, 0, [0 if you don't want ftd2xx ft2232.])
577 fi
578
579 if test $build_amtjtagaccel = yes; then
580 AC_DEFINE(BUILD_AMTJTAGACCEL, 1, [1 if you want the Amontec JTAG-Accelerator driver.])
581 else
582 AC_DEFINE(BUILD_AMTJTAGACCEL, 0, [0 if you don't want the Amontec JTAG-Accelerator driver.])
583 fi
584
585 if test $build_gw16012 = yes; then
586 AC_DEFINE(BUILD_GW16012, 1, [1 if you want the Gateworks GW16012 driver.])
587 else
588 AC_DEFINE(BUILD_GW16012, 0, [0 if you don't want the Gateworks GW16012 driver.])
589 fi
590
591 if test $build_presto_libftdi = yes; then
592 build_bitq=yes
593 AC_DEFINE(BUILD_PRESTO_LIBFTDI, 1, [1 if you want the ASIX PRESTO driver using libftdi.])
594 else
595 AC_DEFINE(BUILD_PRESTO_LIBFTDI, 0, [0 if you don't want the ASIX PRESTO driver using libftdi.])
596 fi
597
598 if test $build_presto_ftd2xx = yes; then
599 build_bitq=yes
600 AC_DEFINE(BUILD_PRESTO_FTD2XX, 1, [1 if you want the ASIX PRESTO driver using FTD2XX.])
601 else
602 AC_DEFINE(BUILD_PRESTO_FTD2XX, 0, [0 if you don't want the ASIX PRESTO driver using FTD2XX.])
603 fi
604
605 if test $build_bitq = yes; then
606 AC_DEFINE(BUILD_BITQ, 1, [1 if you want a bitq interface.])
607 else
608 AC_DEFINE(BUILD_BITQ, 0, [0 if you don't want a bitq interface.])
609 fi
610
611 if test $build_usbprog = yes; then
612 AC_DEFINE(BUILD_USBPROG, 1, [1 if you want the usbprog JTAG driver.])
613 else
614 AC_DEFINE(BUILD_USBPROG, 0, [0 if you don't want the usbprog JTAG driver.])
615 fi
616
617 if test $build_oocd_trace = yes; then
618 AC_DEFINE(BUILD_OOCD_TRACE, 1, [1 if you want the OpenOCD+trace ETM capture driver.])
619 else
620 AC_DEFINE(BUILD_OOCD_TRACE, 0, [0 if you don't want the OpenOCD+trace ETM capture driver.])
621 fi
622
623 if test $build_jlink = yes; then
624 AC_DEFINE(BUILD_JLINK, 1, [1 if you want the J-Link JTAG driver.])
625 else
626 AC_DEFINE(BUILD_JLINK, 0, [0 if you don't want the J-Link JTAG driver.])
627 fi
628
629 if test $build_vsllink = yes; then
630 AC_DEFINE(BUILD_VSLLINK, 1, [1 if you want the Versaloon-Link JTAG driver.])
631 else
632 AC_DEFINE(BUILD_VSLLINK, 0, [0 if you don't want the Versaloon-Link JTAG driver.])
633 fi
634
635 if test $build_rlink = yes; then
636 AC_DEFINE(BUILD_RLINK, 1, [1 if you want the RLink JTAG driver.])
637 else
638 AC_DEFINE(BUILD_RLINK, 0, [0 if you don't want the RLink JTAG driver.])
639 fi
640
641 if test $build_armjtagew = yes; then
642 AC_DEFINE(BUILD_ARMJTAGEW, 1, [1 if you want the ARM-JTAG-EW JTAG driver.])
643 else
644 AC_DEFINE(BUILD_ARMJTAGEW, 0, [0 if you don't want the ARM-JTAG-EW JTAG driver.])
645 fi
646
647 #-- Deal with MingW/Cygwin FTD2XX issues
648
649 if test $is_win32 = yes; then
650 if test "${with_ftd2xx_linux_tardir+set}" = set
651 then
652 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
653 fi
654
655 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
656 AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
657
658 # if we are given a zipdir...
659 if test "${with_ftd2xx_win32_zipdir+set}" = set
660 then
661 # Set the CFLAGS for "ftd2xx.h"
662 f=$with_ftd2xx_win32_zipdir/ftd2xx.h
663 if test ! -f $f ; then
664 AC_MSG_ERROR([File: $f cannot be found])
665 fi
666 CFLAGS="$CFLAGS -I$with_ftd2xx_win32_zipdir"
667
668 # And calculate the LDFLAGS for the machine
669 case "$host_cpu" in
670 i?86|x86_*)
671 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/i386"
672 LIBS="$LIBS -lftd2xx"
673 f=$with_ftd2xx_win32_zipdir/i386/ftd2xx.lib
674 ;;
675 amd64)
676 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/amd64"
677 LIBS="$LIBS -lftd2xx"
678 f=$with_ftd2xx_win32_zipdir/amd64/ftd2xx.lib
679 ;;
680 *)
681 AC_MSG_ERROR([Unknown Win32 host cpu: $host_cpu])
682 ;;
683 esac
684 if test ! -f $f ; then
685 AC_MSG_ERROR([Library: $f not found])
686 fi
687 else
688 LIBS="$LIBS -lftd2xx"
689 AC_MSG_WARN([ASSUMPTION: The (win32) FTDICHIP.COM files: ftd2xx.h and ftd2xx.lib are in a proper place])
690 fi
691 fi
692 fi # win32
693
694 if test $is_darwin = yes ; then
695 if test "${with_ftd2xx_win32_zipdir+set}" = set
696 then
697 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
698 fi
699 if test "${with_ftd2xx_linux_tardir+set}" = set
700 then
701 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
702 fi
703
704 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
705 AC_MSG_CHECKING([for libftd2xx.a (darwin)])
706
707 if test ! -f /usr/local/include/ftd2xx.h ; then
708 AC_MSG_ERROR([ftd2xx library from FTDICHIP.com seems to be missing, cannot find: /usr/local/include/ftd2xx.h])
709 fi
710
711 CFLAGS="$CFLAGS -I/usr/local/include"
712 LDFLAGS="$LDFLAGS -L/usr/local/lib"
713 LIBS="$LIBS -lftd2xx"
714 AC_MSG_RESULT([-L/usr/local/lib -lftd2xx])
715 fi
716 fi # darwin
717
718 if test $is_win32 = no && test $is_darwin = no ; then
719
720 if test "${with_ftd2xx_win32_zipdir+set}" = set
721 then
722 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
723 fi
724
725 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
726 # Must be linux
727 if test $host_os != linux-gnu && test $host_os != linux ; then
728 AC_MSG_ERROR([The (linux) ftd2xx library from FTDICHIP.com is linux only. Try --enable-ft2232-libftdi instead])
729 fi
730 # Are we given a TAR directory?
731 if test "${with_ftd2xx_linux_tardir+set}" = set
732 then
733 AC_MSG_CHECKING([uninstalled ftd2xx distribution])
734 # The .H file is simple..
735 FTD2XX_H=$with_ftd2xx_linux_tardir/ftd2xx.h
736 if test ! -f "${FTD2XX_H}"; then
737 AC_MSG_ERROR([Option: --with-ftd2xx-linux-tardir appears wrong, cannot find: ${FTD2XX_H}])
738 fi
739 CFLAGS="$CFLAGS -I$with_ftd2xx_linux_tardir"
740 FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir"
741 FTD2XX_LIB="-lftd2xx"
742 if test $with_ftd2xx_lib != shared; then
743 # Test #1 - Future proof - if/when ftdichip fixes their distro.
744 # Try it with the simple ".a" suffix.
745 FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a"
746 if test -f "${FTD2XX_LIB}"; then
747 FTD2XX_LDFLAGS="${FTD2XX_LDFLAGS}/static_lib"
748 else
749 # Test Number2.
750 # Grr.. perhaps it exists as a version number?
751 FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a.*.*.*"
752 count=`ls ${FTD2XX_LIB} | wc -l`
753 if test $count -gt 1 ; then
754 AC_MSG_ERROR([Multiple libftd2xx.a files found in: $with_ftd2xx_linux_tardir/static_lib sorry cannot handle this yet])
755 fi
756 if test $count -ne 1 ; then
757 AC_MSG_ERROR([Not found: $f, option: --with-ftd2xx-linux-tardir appears to be wrong])
758 fi
759 # Because the "-l" rules do not understand version numbers...
760 # we will just stuff the absolute path onto the LIBS variable
761 FTD2XX_LIB="`ls ${FTD2XX_LIB}` -lpthread"
762 FTD2XX_LDFLAGS=""
763 fi
764 fi
765 LDFLAGS="${LDFLAGS} ${FTD2XX_LDFLAGS}"
766 LIBS="${LIBS} ${FTD2XX_LIB}"
767 AC_MSG_RESULT([${FTD2XX_LDFLAGS} ${FTD2XX_LIB}])
768 else
769 AC_CHECK_HEADER([ftd2xx.h],[],[
770 AC_MSG_ERROR([You seem to be missing the FTD2xx driver header file.])
771 ])
772 AC_SEARCH_LIBS([FT_GetLibraryVersion],[ftd2xx],,[
773 AC_MSG_ERROR([You appear to be missing the FTD2xx driver library.])
774 ],[])
775 fi
776 fi
777 fi # linux
778
779 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes; then
780
781 # Before we go any further - make sure we can *BUILD* and *RUN*
782 # a simple app with the "ftd2xx.lib" file - in what ever form we where given
783 # We should be able to compile, link and run this test program now
784 AC_MSG_CHECKING([whether ftd2xx library works])
785
786 #
787 # Save the LDFLAGS for later..
788 LDFLAGS_SAVE=$LDFLAGS
789 CFLAGS_SAVE=$CFLAGS
790 _LDFLAGS=`eval echo $LDFLAGS`
791 _CFLAGS=`eval echo $CFLAGS`
792 LDFLAGS=$_LDFLAGS
793 CFLAGS=$_CFLAGS
794
795 AC_RUN_IFELSE([
796 #include "confdefs.h"
797 #if IS_WIN32
798 #include "windows.h"
799 #endif
800 #include <stdio.h>
801 #include <ftd2xx.h>
802
803 int
804 main( int argc, char **argv )
805 {
806 DWORD x;
807 FT_GetLibraryVersion( &x );
808 return 0;
809 }
810 ], [
811 AC_MSG_RESULT([Success!])
812 ], [
813 AC_MSG_ERROR([Cannot build & run test program using ftd2xx.lib])
814 ] )
815
816 AC_MSG_CHECKING([whether to build ftd2xx device support])
817 AC_MSG_RESULT([$want_ftd2xx_highspeed])
818 if test $want_ftd2xx_highspeed != no; then
819 AC_MSG_CHECKING([for ftd2xx highspeed device support])
820 AC_COMPILE_IFELSE([
821 #include "confdefs.h"
822 #if IS_WIN32
823 #include "windows.h"
824 #endif
825 #include <stdio.h>
826 #include <ftd2xx.h>
827 DWORD x = FT_DEVICE_4232H;
828 ], [
829 AC_DEFINE(BUILD_FTD2XX_HIGHSPEED, [1],
830 [Support FT2232H/FT4232HS with FTD2XX.])
831 build_ftd2xx_highspeed=yes
832 ], [
833 build_ftd2xx_highspeed=no
834 ])
835 AC_MSG_RESULT([$build_ftd2xx_highspeed])
836
837 if test $want_ftd2xx_highspeed = yes -a $build_ftd2xx_highspeed = no; then
838 AC_MSG_ERROR([You need a newer FTD2XX driver (version 0.4.16 or later).])
839 fi
840 fi
841
842 LDFLAGS=$LDFLAGS_SAVE
843 CFLAGS=$CFLAGS_SAVE
844 fi
845
846 if test $build_ft2232_libftdi = yes ; then
847 # We assume: the package is preinstalled in the proper place
848 # these present as 2 libraries..
849 LIBS="$LIBS -lftdi -lusb"
850 #
851 # Try to build a small program.
852 AC_MSG_CHECKING([Build & Link with libftdi...])
853
854 LDFLAGS_SAVE=$LDFLAGS
855 CFLAGS_SAVE=$CFLAGS
856 _LDFLAGS=`eval echo $LDFLAGS`
857 _CFLAGS=`eval echo $CFLAGS`
858 LDFLAGS=$_LDFLAGS
859 CFLAGS=$_CFLAGS
860
861 AC_RUN_IFELSE([
862 #include <stdio.h>
863 #include <ftdi.h>
864
865 int
866 main( int argc, char **argv )
867 {
868 struct ftdi_context *p;
869 p = ftdi_new();
870 if( p != NULL ){
871 return 0;
872 } else {
873 fprintf( stderr, "calling ftdi_new() failed\n");
874 return 1;
875 }
876 }
877 ], [
878 AC_MSG_RESULT([Success])
879 ], [
880 AC_MSG_ERROR([Cannot build & run test program using libftdi])
881 ])
882 # Restore the 'unexpanded ldflags'
883 LDFLAGS=$LDFLAGS_SAVE
884 CFLAGS=$CFLAGS_SAVE
885 fi
886
887 # check for usb.h when a driver will require it
888 if test $build_jlink = yes -o $build_vsllink = yes -o $build_usbprog = yes -o \
889 $build_rlink = yes -o $build_armjtagew = yes
890 then
891 AC_CHECK_HEADERS([usb.h],[],
892 [AC_MSG_ERROR([usb.h is required to build some OpenOCD driver(s)])])
893 fi
894
895 AM_CONDITIONAL(RELEASE, test $build_release = yes)
896 AM_CONDITIONAL(PARPORT, test $build_parport = yes)
897 AM_CONDITIONAL(DUMMY, test $build_dummy = yes)
898 AM_CONDITIONAL(GIVEIO, test x$parport_use_giveio = xyes)
899 AM_CONDITIONAL(EP93XX, test $build_ep93xx = yes)
900 AM_CONDITIONAL(ECOSBOARD, test $build_ecosboard = yes)
901 AM_CONDITIONAL(IOUTIL, test $build_ioutil = yes)
902 AM_CONDITIONAL(HTTPD, test $build_httpd = yes)
903 AM_CONDITIONAL(AT91RM9200, test $build_at91rm9200 = yes)
904 AM_CONDITIONAL(BITBANG, test $build_bitbang = yes)
905 AM_CONDITIONAL(FT2232_LIBFTDI, test $build_ft2232_libftdi = yes)
906 AM_CONDITIONAL(FT2232_DRIVER, test $build_ft2232_ftd2xx = yes -o $build_ft2232_libftdi = yes)
907 AM_CONDITIONAL(AMTJTAGACCEL, test $build_amtjtagaccel = yes)
908 AM_CONDITIONAL(GW16012, test $build_gw16012 = yes)
909 AM_CONDITIONAL(PRESTO_LIBFTDI, test $build_presto_libftdi = yes)
910 AM_CONDITIONAL(PRESTO_DRIVER, test $build_presto_ftd2xx = yes -o $build_presto_libftdi = yes)
911 AM_CONDITIONAL(USBPROG, test $build_usbprog = yes)
912 AM_CONDITIONAL(OOCD_TRACE, test $build_oocd_trace = yes)
913 AM_CONDITIONAL(JLINK, test $build_jlink = yes)
914 AM_CONDITIONAL(VSLLINK, test $build_vsllink = yes)
915 AM_CONDITIONAL(RLINK, test $build_rlink = yes)
916 AM_CONDITIONAL(ARMJTAGEW, test $build_armjtagew = yes)
917 AM_CONDITIONAL(IS_CYGWIN, test $is_cygwin = yes)
918 AM_CONDITIONAL(IS_MINGW, test $is_mingw = yes)
919 AM_CONDITIONAL(IS_WIN32, test $is_win32 = yes)
920 AM_CONDITIONAL(IS_DARWIN, test $is_darwin = yes)
921 AM_CONDITIONAL(BITQ, test $build_bitq = yes)
922
923 AM_CONDITIONAL(MINIDRIVER, test $build_minidriver = yes)
924 AM_CONDITIONAL(MINIDRIVER_DUMMY, test $build_minidriver_dummy = yes)
925
926 # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h?
927 AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
928 AC_COMPILE_IFELSE([
929 #define _GNU_SOURCE
930 #include <unistd.h>
931 #include <stdlib.h>
932 int main(int argc, char **argv) { char **ep = environ; }
933 ], [
934 AC_MSG_RESULT([yes])
935 has_environ=yes
936 ], [
937 AC_MSG_RESULT([no])
938
939 # Possibility #2: can environ be found in an available library?
940 AC_MSG_CHECKING([for extern environ])
941 AC_LINK_IFELSE([
942 extern char **environ;
943 int main(int argc, char **argv) { char **ep = environ; }
944 ], [
945 AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
946 has_environ=yes
947 ], [
948 has_environ=no
949 ])
950 AC_MSG_RESULT([${has_environ}])
951 ])
952
953 if test "${has_environ}" != "yes" ; then
954 AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
955 fi
956
957 AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
958
959 # set default gcc warnings
960 GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security"
961 if test "${gcc_wextra}" = yes; then
962 GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
963 GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
964 GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
965 GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
966 fi
967 if test "${gcc_werror}" = yes; then
968 GCC_WARNINGS="${GCC_WARNINGS} -Werror"
969 fi
970
971 # overide default gcc cflags
972 if test $gcc_warnings = yes; then
973 CFLAGS="$CFLAGS $GCC_WARNINGS"
974 fi
975
976 # Setup for compiling build tools
977 AC_MSG_CHECKING([for a C compiler for build tools])
978 if test $cross_compiling = yes; then
979 AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
980 CFLAGS_FOR_BUILD="-g -O2 $GCC_WARNINGS"
981 else
982 CC_FOR_BUILD=$CC
983 CFLAGS_FOR_BUILD=$CFLAGS
984 fi
985
986 AC_MSG_RESULT([$CC_FOR_BUILD])
987 AC_SUBST(CC_FOR_BUILD)
988 AC_SUBST(CFLAGS_FOR_BUILD)
989
990 AC_MSG_CHECKING([for suffix of executable build tools])
991 if test $cross_compiling = yes; then
992 cat >conftest.c <<\_______EOF
993 int main ()
994 {
995 exit (0);
996 }
997 _______EOF
998 for i in .exe ""; do
999 compile="$CC_FOR_BUILD conftest.c -o conftest$i"
1000 if AC_TRY_EVAL(compile); then
1001 if (./conftest) 2>&AC_FD_CC; then
1002 EXEEXT_FOR_BUILD=$i
1003 break
1004 fi
1005 fi
1006 done
1007 rm -f conftest*
1008 if test "${EXEEXT_FOR_BUILD+set}" != set; then
1009 AC_MSG_ERROR([Cannot determine suffix of executable build tools])
1010 fi
1011 else
1012 EXEEXT_FOR_BUILD=$EXEEXT
1013 fi
1014 AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
1015 AC_SUBST(EXEEXT_FOR_BUILD)
1016
1017 AC_OUTPUT(dnl
1018 Makefile dnl
1019 src/Makefile dnl
1020 src/helper/Makefile dnl
1021 src/jtag/Makefile dnl
1022 src/xsvf/Makefile dnl
1023 src/svf/Makefile dnl
1024 src/target/Makefile dnl
1025 src/server/Makefile dnl
1026 src/flash/Makefile dnl
1027 src/pld/Makefile dnl
1028 doc/Makefile dnl
1029 )

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)