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

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)