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

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)