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