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