Zach Welch wrote a fix for configure problems under Cygwin.
[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 # check for that project's header file in the current header search path
404 AC_CHECK_HEADERS(jtag_minidriver.h, [build_minidriver=yes],
405 AC_MSG_WARN([The --enable-ecosboard option needs the out-of-tree 'jtag_minidriver.h'])
406 AC_MSG_ERROR([The out-of-tree jtag_minidriver.h cannot be found.])
407 )
408 build_minidriver=yes
409 AC_DEFINE(BUILD_MINIDRIVER_DUMMY, 1, [Use the dummy minidriver.])
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_FTD2XX, test $build_ft2232_ftd2xx = 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_FTD2XX, test $build_presto_ftd2xx = 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)