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