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