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