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