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