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