Add --enable-malloc-logging configure option and update log.c to match.
[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 debug_malloc=no
254 AC_ARG_ENABLE(malloc_logging,
255 AS_HELP_STRING([--enable-malloc-logging],
256 [Include free space in logging messages (requires malloc.h).]),
257 [debug_malloc=$enableval], [])
258
259 AC_MSG_CHECKING([whether to enable malloc free space logging]);
260 AC_MSG_RESULT($debug_malloc)
261 if test $debug_malloc = yes; then
262 AC_DEFINE([_DEBUG_FREE_SPACE_],[1], [Include malloc free space in logging])
263 fi
264
265
266 AC_ARG_ENABLE(parport,
267 AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
268 [build_parport=$enableval], [build_parport=no])
269
270 AC_ARG_ENABLE(dummy,
271 AS_HELP_STRING([--enable-dummy], [Enable building the dummy port driver]),
272 [build_dummy=$enableval], [build_dummy=no])
273
274 case "${host_cpu}" in
275 i?86|x86*)
276 AC_ARG_ENABLE(parport_ppdev,
277 AS_HELP_STRING([--enable-parport_ppdev], [Enable use of ppdev (/dev/parportN) for parport]),
278 [parport_use_ppdev=$enableval], [parport_use_ppdev=no])
279 ;;
280 *)
281 parport_use_ppdev=yes
282 ;;
283 esac
284
285 AC_ARG_ENABLE(ft2232_libftdi,
286 AS_HELP_STRING([--enable-ft2232_libftdi], [Enable building support for FT2232 based devices using the libftdi driver, opensource alternate of FTD2XX]),
287 [build_ft2232_libftdi=$enableval], [build_ft2232_libftdi=no])
288
289 AC_ARG_ENABLE(ft2232_ftd2xx,
290 AS_HELP_STRING([--enable-ft2232_ftd2xx], [Enable building support for FT2232 based devices using the FTD2XX driver from ftdichip.com]),
291 [build_ft2232_ftd2xx=$enableval], [build_ft2232_ftd2xx=no])
292
293 AC_ARG_ENABLE(amtjtagaccel,
294 AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
295 [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
296
297 AC_ARG_ENABLE(ecosboard,
298 AS_HELP_STRING([--enable-ecosboard], [Enable building support for eCosBoard based JTAG debugger]),
299 [build_ecosboard=$enableval], [build_ecosboard=no])
300
301 AC_ARG_ENABLE(ioutil,
302 AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]),
303 [build_ioutil=$enableval], [build_ioutil=no])
304
305 AC_ARG_ENABLE(httpd,
306 AS_HELP_STRING([--enable-httpd], [Enable builtin httpd server - useful for standalone OpenOCD implementations]),
307 [build_httpd=$enableval], [build_httpd=no])
308
309 case "${host_cpu}" in
310 arm*)
311 AC_ARG_ENABLE(ep93xx,
312 AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]),
313 [build_ep93xx=$enableval], [build_ep93xx=no])
314
315 AC_ARG_ENABLE(at91rm9200,
316 AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
317 [build_at91rm9200=$enableval], [build_at91rm9200=no])
318 ;;
319
320 *)
321 build_ep93xx=no
322 build_at91rm9200=no
323 ;;
324 esac
325
326 AC_ARG_ENABLE(gw16012,
327 AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
328 [build_gw16012=$enableval], [build_gw16012=no])
329
330 AC_ARG_ENABLE(presto_libftdi,
331 AS_HELP_STRING([--enable-presto_libftdi], [Enable building support for ASIX Presto Programmer using the libftdi driver]),
332 [build_presto_libftdi=$enableval], [build_presto_libftdi=no])
333
334 AC_ARG_ENABLE(presto_ftd2xx,
335 AS_HELP_STRING([--enable-presto_ftd2xx], [Enable building support for ASIX Presto Programmer using the FTD2XX driver]),
336 [build_presto_ftd2xx=$enableval], [build_presto_ftd2xx=no])
337
338 AC_ARG_ENABLE(usbprog,
339 AS_HELP_STRING([--enable-usbprog], [Enable building support for the usbprog JTAG Programmer]),
340 [build_usbprog=$enableval], [build_usbprog=no])
341
342 AC_ARG_ENABLE(oocd_trace,
343 AS_HELP_STRING([--enable-oocd_trace], [Enable building support for the OpenOCD+trace ETM capture device]),
344 [build_oocd_trace=$enableval], [build_oocd_trace=no])
345
346 AC_ARG_ENABLE(jlink,
347 AS_HELP_STRING([--enable-jlink], [Enable building support for the Segger J-Link JTAG Programmer]),
348 [build_jlink=$enableval], [build_jlink=no])
349
350 AC_ARG_ENABLE(vsllink,
351 AS_HELP_STRING([--enable-vsllink], [Enable building support for the Versaloon-Link JTAG Programmer]),
352 [build_vsllink=$enableval], [build_vsllink=no])
353
354 AC_ARG_ENABLE(rlink,
355 AS_HELP_STRING([--enable-rlink], [Enable building support for the Raisonance RLink JTAG Programmer]),
356 [build_rlink=$enableval], [build_rlink=no])
357
358 AC_ARG_ENABLE(arm-jtag-ew,
359 AS_HELP_STRING([--enable-arm-jtag-ew], [Enable building support for the Olimex ARM-JTAG-EW Programmer]),
360 [build_armjtagew=$enableval], [build_armjtagew=no])
361
362 case $host in
363 *-cygwin*)
364 is_win32=yes
365
366 AC_ARG_ENABLE(parport_giveio,
367 AS_HELP_STRING([--enable-parport_giveio], [Enable use of giveio for parport instead of ioperm]),
368 [parport_use_giveio=$enableval], [parport_use_giveio=no])
369
370 AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[return __MINGW32__;]),[is_mingw=yes],[is_mingw=no])
371 if test $is_mingw = yes; then
372 AC_DEFINE(IS_MINGW, 1, [1 if building for MinGW.])
373 parport_use_giveio=yes
374 is_cygwin=no
375 else
376 is_cygwin=yes
377 AC_DEFINE(IS_CYGWIN, 1, [1 if building for Cygwin.])
378 fi
379
380 AC_DEFINE(IS_WIN32, 1, [1 if building for Win32.])
381 AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
382 ;;
383 *-mingw*)
384 is_mingw=yes
385 is_win32=yes
386
387 parport_use_giveio=yes
388
389 AC_DEFINE(IS_MINGW, 1, [1 if building for MinGW.])
390 AC_DEFINE(IS_WIN32, 1, [1 if building for Win32.])
391 AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
392 ;;
393 *darwin*)
394 is_darwin=yes
395
396 parport_use_giveio=no
397
398 AC_DEFINE(IS_CYGWIN, 0, [0 if not building for Cygwin.])
399 AC_DEFINE(IS_WIN32, 0, [0 if not building for Win32.])
400 AC_DEFINE(IS_DARWIN, 1, [1 if building for Darwin.])
401 ;;
402 *)
403 parport_use_giveio=no
404 AC_DEFINE(IS_CYGWIN, 0, [0 if not building for Cygwin.])
405 AC_DEFINE(IS_WIN32, 0, [0 if not building for Win32.])
406 AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
407 ;;
408 esac
409
410 if test $build_parport = yes; then
411 build_bitbang=yes
412 AC_DEFINE(BUILD_PARPORT, 1, [1 if you want parport.])
413 else
414 AC_DEFINE(BUILD_PARPORT, 0, [0 if you don't want parport.])
415 fi
416
417 if test $build_dummy = yes; then
418 build_bitbang=yes
419 AC_DEFINE(BUILD_DUMMY, 1, [1 if you want dummy driver.])
420 else
421 AC_DEFINE(BUILD_DUMMY, 0, [0 if you don't want dummy driver.])
422 fi
423
424 if test $build_ep93xx = yes; then
425 build_bitbang=yes
426 AC_DEFINE(BUILD_EP93XX, 1, [1 if you want ep93xx.])
427 else
428 AC_DEFINE(BUILD_EP93XX, 0, [0 if you don't want ep93xx.])
429 fi
430
431 if test $build_ecosboard = yes; then
432 build_bitbang=yes
433 AC_DEFINE(BUILD_ECOSBOARD, 1, [1 if you want eCosBoard.])
434 else
435 AC_DEFINE(BUILD_ECOSBOARD, 0, [0 if you don't want eCosBoard.])
436 fi
437
438 if test $build_ioutil = yes; then
439 AC_DEFINE(BUILD_IOUTIL, 1, [1 if you want ioutils.])
440 else
441 AC_DEFINE(BUILD_IOUTIL, 0, [0 if you don't want ioutils.])
442 fi
443
444 if test $build_httpd = yes; then
445 AC_DEFINE(BUILD_HTTPD, 1, [1 if you want httpd.])
446 else
447 AC_DEFINE(BUILD_HTTPD, 0, [0 if you don't want httpd.])
448 fi
449
450 if test $build_at91rm9200 = yes; then
451 build_bitbang=yes
452 AC_DEFINE(BUILD_AT91RM9200, 1, [1 if you want at91rm9200.])
453 else
454 AC_DEFINE(BUILD_AT91RM9200, 0, [0 if you don't want at91rm9200.])
455 fi
456
457 if test $parport_use_ppdev = yes; then
458 AC_DEFINE(PARPORT_USE_PPDEV, 1, [1 if you want parport to use ppdev.])
459 else
460 AC_DEFINE(PARPORT_USE_PPDEV, 0, [0 if you don't want parport to use ppdev.])
461 fi
462
463 if test $parport_use_giveio = yes; then
464 AC_DEFINE(PARPORT_USE_GIVEIO, 1, [1 if you want parport to use giveio.])
465 else
466 AC_DEFINE(PARPORT_USE_GIVEIO, 0, [0 if you don't want parport to use giveio.])
467 fi
468
469 if test $build_bitbang = yes; then
470 AC_DEFINE(BUILD_BITBANG, 1, [1 if you want a bitbang interface.])
471 else
472 AC_DEFINE(BUILD_BITBANG, 0, [0 if you don't want a bitbang interface.])
473 fi
474
475 if test $build_ft2232_libftdi = yes; then
476 AC_DEFINE(BUILD_FT2232_LIBFTDI, 1, [1 if you want libftdi ft2232.])
477 else
478 AC_DEFINE(BUILD_FT2232_LIBFTDI, 0, [0 if you don't want libftdi ft2232.])
479 fi
480
481 if test $build_ft2232_ftd2xx = yes; then
482 AC_DEFINE(BUILD_FT2232_FTD2XX, 1, [1 if you want ftd2xx ft2232.])
483 else
484 AC_DEFINE(BUILD_FT2232_FTD2XX, 0, [0 if you don't want ftd2xx ft2232.])
485 fi
486
487 if test $build_amtjtagaccel = yes; then
488 AC_DEFINE(BUILD_AMTJTAGACCEL, 1, [1 if you want the Amontec JTAG-Accelerator driver.])
489 else
490 AC_DEFINE(BUILD_AMTJTAGACCEL, 0, [0 if you don't want the Amontec JTAG-Accelerator driver.])
491 fi
492
493 if test $build_gw16012 = yes; then
494 AC_DEFINE(BUILD_GW16012, 1, [1 if you want the Gateworks GW16012 driver.])
495 else
496 AC_DEFINE(BUILD_GW16012, 0, [0 if you don't want the Gateworks GW16012 driver.])
497 fi
498
499 if test $build_presto_libftdi = yes; then
500 build_bitq=yes
501 AC_DEFINE(BUILD_PRESTO_LIBFTDI, 1, [1 if you want the ASIX PRESTO driver using libftdi.])
502 else
503 AC_DEFINE(BUILD_PRESTO_LIBFTDI, 0, [0 if you don't want the ASIX PRESTO driver using libftdi.])
504 fi
505
506 if test $build_presto_ftd2xx = yes; then
507 build_bitq=yes
508 AC_DEFINE(BUILD_PRESTO_FTD2XX, 1, [1 if you want the ASIX PRESTO driver using FTD2XX.])
509 else
510 AC_DEFINE(BUILD_PRESTO_FTD2XX, 0, [0 if you don't want the ASIX PRESTO driver using FTD2XX.])
511 fi
512
513 if test $build_bitq = yes; then
514 AC_DEFINE(BUILD_BITQ, 1, [1 if you want a bitq interface.])
515 else
516 AC_DEFINE(BUILD_BITQ, 0, [0 if you don't want a bitq interface.])
517 fi
518
519 if test $build_usbprog = yes; then
520 AC_DEFINE(BUILD_USBPROG, 1, [1 if you want the usbprog JTAG driver.])
521 else
522 AC_DEFINE(BUILD_USBPROG, 0, [0 if you don't want the usbprog JTAG driver.])
523 fi
524
525 if test $build_oocd_trace = yes; then
526 AC_DEFINE(BUILD_OOCD_TRACE, 1, [1 if you want the OpenOCD+trace ETM capture driver.])
527 else
528 AC_DEFINE(BUILD_OOCD_TRACE, 0, [0 if you don't want the OpenOCD+trace ETM capture driver.])
529 fi
530
531 if test $build_jlink = yes; then
532 AC_DEFINE(BUILD_JLINK, 1, [1 if you want the J-Link JTAG driver.])
533 else
534 AC_DEFINE(BUILD_JLINK, 0, [0 if you don't want the J-Link JTAG driver.])
535 fi
536
537 if test $build_vsllink = yes; then
538 AC_DEFINE(BUILD_VSLLINK, 1, [1 if you want the Versaloon-Link JTAG driver.])
539 else
540 AC_DEFINE(BUILD_VSLLINK, 0, [0 if you don't want the Versaloon-Link JTAG driver.])
541 fi
542
543 if test $build_rlink = yes; then
544 AC_DEFINE(BUILD_RLINK, 1, [1 if you want the RLink JTAG driver.])
545 else
546 AC_DEFINE(BUILD_RLINK, 0, [0 if you don't want the RLink JTAG driver.])
547 fi
548
549 if test $build_armjtagew = yes; then
550 AC_DEFINE(BUILD_ARMJTAGEW, 1, [1 if you want the ARM-JTAG-EW JTAG driver.])
551 else
552 AC_DEFINE(BUILD_ARMJTAGEW, 0, [0 if you don't want the ARM-JTAG-EW JTAG driver.])
553 fi
554
555 #-- Deal with MingW/Cygwin FTD2XX issues
556
557 if test $is_win32 = yes; then
558 if test "${with_ftd2xx_linux_tardir+set}" = set
559 then
560 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
561 fi
562
563 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
564 AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
565
566 # if we are given a zipdir...
567 if test "${with_ftd2xx_win32_zipdir+set}" = set
568 then
569 # Set the CFLAGS for "ftd2xx.h"
570 f=$with_ftd2xx_win32_zipdir/ftd2xx.h
571 if test ! -f $f ; then
572 AC_MSG_ERROR([File: $f cannot be found])
573 fi
574 CFLAGS="$CFLAGS -I$with_ftd2xx_win32_zipdir"
575
576 # And calculate the LDFLAGS for the machine
577 case "$host_cpu" in
578 i?86|x86_*)
579 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/i386"
580 LIBS="$LIBS -lftd2xx"
581 f=$with_ftd2xx_win32_zipdir/i386/ftd2xx.lib
582 ;;
583 amd64)
584 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/amd64"
585 LIBS="$LIBS -lftd2xx"
586 f=$with_ftd2xx_win32_zipdir/amd64/ftd2xx.lib
587 ;;
588 *)
589 AC_MSG_ERROR([Unknown Win32 host cpu: $host_cpu])
590 ;;
591 esac
592 if test ! -f $f ; then
593 AC_MSG_ERROR([Library: $f not found])
594 fi
595 else
596 LIBS="$LIBS -lftd2xx"
597 AC_MSG_WARN([ASSUMPTION: The (win32) FTDICHIP.COM files: ftd2xx.h and ftd2xx.lib are in a proper place])
598 fi
599 fi
600 fi
601
602 if test $is_darwin = yes ; then
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 if test "${with_ftd2xx_linux_tardir+set}" = set
608 then
609 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
610 fi
611
612 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
613 AC_MSG_CHECKING([for libftd2xx.a (darwin)])
614
615 if test ! -f /usr/local/include/ftd2xx.h ; then
616 AC_MSG_ERROR([ftd2xx library from FTDICHIP.com seems to be missing, cannot find: /usr/local/include/ftd2xx.h])
617 fi
618
619 CFLAGS="$CFLAGS -I/usr/local/include"
620 LDFLAGS="$LDFLAGS -L/usr/local/lib"
621 LIBS="$LIBS -lftd2xx"
622 AC_MSG_RESULT([-L/usr/local/lib -lftd2xx])
623 fi
624 fi
625
626 if test $is_win32 = no && test $is_darwin = no ; then
627
628 if test "${with_ftd2xx_win32_zipdir+set}" = set
629 then
630 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
631 fi
632
633 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
634 # Must be linux
635 if test $host_os != linux-gnu && test $host_os != linux ; then
636 AC_MSG_ERROR([The (linux) ftd2xx library from FTDICHIP.com is linux only. Try --enable-ft2232-libftdi instead])
637 fi
638 # Are we given a TAR directory?
639 if test "${with_ftd2xx_linux_tardir+set}" = set
640 then
641 AC_MSG_CHECKING([uninstalled ftd2xx distribution])
642 # The .H file is simple..
643 FTD2XX_H=$with_ftd2xx_linux_tardir/ftd2xx.h
644 if test ! -f "${FTD2XX_H}"; then
645 AC_MSG_ERROR([Option: --with-ftd2xx-linux-tardir appears wrong, cannot find: ${FTD2XX_H}])
646 fi
647 CFLAGS="$CFLAGS -I$with_ftd2xx_linux_tardir"
648 FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir"
649 FTD2XX_LIB="-lftd2xx"
650 if test $with_ftd2xx_lib != shared; then
651 # Test #1 - Future proof - if/when ftdichip fixes their distro.
652 # Try it with the simple ".a" suffix.
653 FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a"
654 if test -f "${FTD2XX_LIB}"; then
655 FTD2XX_LDFLAGS="${FTD2XX_LDFLAGS}/static_lib"
656 else
657 # Test Number2.
658 # Grr.. perhaps it exists as a version number?
659 FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a.*.*.*"
660 count=`ls ${FTD2XX_LIB} | wc -l`
661 if test $count -gt 1 ; then
662 AC_MSG_ERROR([Multiple libftd2xx.a files found in: $with_ftd2xx_linux_tardir/static_lib sorry cannot handle this yet])
663 fi
664 if test $count -ne 1 ; then
665 AC_MSG_ERROR([Not found: $f, option: --with-ftd2xx-linux-tardir appears to be wrong])
666 fi
667 # Because the "-l" rules do not understand version numbers...
668 # we will just stuff the absolute path onto the LIBS variable
669 FTD2XX_LIB="`ls ${FTD2XX_LIB}` -lpthread"
670 FTD2XX_LDFLAGS=""
671 fi
672 fi
673 LDFLAGS="${LDFLAGS} ${FTD2XX_LDFLAGS}"
674 LIBS="${LIBS} ${FTD2XX_LIB}"
675 AC_MSG_RESULT([${FTD2XX_LDFLAGS} ${FTD2XX_LIB}])
676 else
677 AC_CHECK_HEADER([ftd2xx.h],[],[
678 AC_MSG_ERROR([You seem to be missing the FTD2xx driver header file.])
679 ])
680 AC_SEARCH_LIBS([FT_GetLibraryVersion],[ftd2xx],,[
681 AC_MSG_ERROR([You appear to be missing the FTD2xx driver library.])
682 ],[])
683 fi
684 fi
685 fi
686
687 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes; then
688
689 # Before we go any further - make sure we can *BUILD* and *RUN*
690 # a simple app with the "ftd2xx.lib" file - in what ever form we where given
691 # We should be able to compile, link and run this test program now
692 AC_MSG_CHECKING([whether ftd2xx library works])
693
694 #
695 # Save the LDFLAGS for later..
696 LDFLAGS_SAVE=$LDFLAGS
697 CFLAGS_SAVE=$CFLAGS
698 _LDFLAGS=`eval echo $LDFLAGS`
699 _CFLAGS=`eval echo $CFLAGS`
700 LDFLAGS=$_LDFLAGS
701 CFLAGS=$_CFLAGS
702 AC_RUN_IFELSE(
703 [
704 #include "confdefs.h"
705 #if IS_WIN32
706 #include "windows.h"
707 #endif
708 #include <stdio.h>
709 #include <ftd2xx.h>
710
711 int
712 main( int argc, char **argv )
713 {
714 DWORD x;
715 FT_GetLibraryVersion( &x );
716 return 0;
717 }
718 ], [ AC_MSG_RESULT([Success!])] , [ AC_MSG_ERROR([Cannot build & run test program using ftd2xx.lib]) ] )
719 LDFLAGS=$LDFLAGS_SAVE
720 CFLAGS=$CFLAGS_SAVE
721 fi
722
723 if test $build_ft2232_libftdi = yes ; then
724 # We assume: the package is preinstalled in the proper place
725 # these present as 2 libraries..
726 LIBS="$LIBS -lftdi -lusb"
727 #
728 # Try to build a small program.
729 AC_MSG_CHECKING([Build & Link with libftdi...])
730
731 LDFLAGS_SAVE=$LDFLAGS
732 CFLAGS_SAVE=$CFLAGS
733 _LDFLAGS=`eval echo $LDFLAGS`
734 _CFLAGS=`eval echo $CFLAGS`
735 LDFLAGS=$_LDFLAGS
736 CFLAGS=$_CFLAGS
737
738 AC_RUN_IFELSE(
739 [
740 #include <stdio.h>
741 #include <ftdi.h>
742
743 int
744 main( int argc, char **argv )
745 {
746 struct ftdi_context *p;
747 p = ftdi_new();
748 if( p != NULL ){
749 return 0;
750 } else {
751 fprintf( stderr, "calling ftdi_new() failed\n");
752 return 1;
753 }
754 }
755 ]
756 ,
757 [ AC_MSG_RESULT([Success]) ]
758 ,
759 [ AC_MSG_ERROR([Cannot build & run test program using libftdi]) ] )
760 # Restore the 'unexpanded ldflags'
761 LDFLAGS=$LDFLAGS_SAVE
762 CFLAGS=$CFLAGS_SAVE
763 fi
764
765 # check for usb.h when a driver will require it
766 if test $build_jlink = yes -o $build_vsllink = yes -o $build_usbprog = yes -o \
767 $build_rlink = yes -o $build_armjtagew = yes
768 then
769 AC_CHECK_HEADERS([usb.h],[],
770 [AC_MSG_ERROR([usb.h is required to build some OpenOCD driver(s)])])
771 fi
772
773 AM_CONFIG_HEADER(config.h)
774 AM_INIT_AUTOMAKE([-Wall -Wno-portability])
775 AM_MAINTAINER_MODE
776
777 AM_CONDITIONAL(RELEASE, test $build_release = yes)
778 AM_CONDITIONAL(PARPORT, test $build_parport = yes)
779 AM_CONDITIONAL(DUMMY, test $build_dummy = yes)
780 AM_CONDITIONAL(GIVEIO, test $parport_use_giveio = yes)
781 AM_CONDITIONAL(EP93XX, test $build_ep93xx = yes)
782 AM_CONDITIONAL(ECOSBOARD, test $build_ecosboard = yes)
783 AM_CONDITIONAL(IOUTIL, test $build_ioutil = yes)
784 AM_CONDITIONAL(HTTPD, test $build_httpd = yes)
785 AM_CONDITIONAL(AT91RM9200, test $build_at91rm9200 = yes)
786 AM_CONDITIONAL(BITBANG, test $build_bitbang = yes)
787 AM_CONDITIONAL(FT2232_LIBFTDI, test $build_ft2232_libftdi = yes)
788 AM_CONDITIONAL(FT2232_FTD2XX, test $build_ft2232_ftd2xx = yes)
789 AM_CONDITIONAL(AMTJTAGACCEL, test $build_amtjtagaccel = yes)
790 AM_CONDITIONAL(GW16012, test $build_gw16012 = yes)
791 AM_CONDITIONAL(PRESTO_LIBFTDI, test $build_presto_libftdi = yes)
792 AM_CONDITIONAL(PRESTO_FTD2XX, test $build_presto_ftd2xx = yes)
793 AM_CONDITIONAL(USBPROG, test $build_usbprog = yes)
794 AM_CONDITIONAL(OOCD_TRACE, test $build_oocd_trace = yes)
795 AM_CONDITIONAL(JLINK, test $build_jlink = yes)
796 AM_CONDITIONAL(VSLLINK, test $build_vsllink = yes)
797 AM_CONDITIONAL(RLINK, test $build_rlink = yes)
798 AM_CONDITIONAL(ARMJTAGEW, test $build_armjtagew = yes)
799 AM_CONDITIONAL(IS_CYGWIN, test $is_cygwin = yes)
800 AM_CONDITIONAL(IS_MINGW, test $is_mingw = yes)
801 AM_CONDITIONAL(IS_WIN32, test $is_win32 = yes)
802 AM_CONDITIONAL(IS_DARWIN, test $is_darwin = yes)
803 AM_CONDITIONAL(BITQ, test $build_bitq = yes)
804
805 AC_LANG_C
806 AC_PROG_CC
807 AC_PROG_CC_C99
808 AM_PROG_CC_C_O
809 AC_PROG_RANLIB
810 AC_PROG_LIBTOOL
811
812 # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h?
813 AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
814 AC_COMPILE_IFELSE([
815 #define _GNU_SOURCE
816 #include <unistd.h>
817 #include <stdlib.h>
818 int main(int argc, char **argv) { char **ep = environ; }
819 ], [
820 AC_MSG_RESULT([yes])
821 has_environ=yes
822 ], [
823 AC_MSG_RESULT([no])
824
825 # Possibility #2: can environ be found in an available library?
826 AC_MSG_CHECKING([for extern environ])
827 AC_LINK_IFELSE([
828 extern char **environ;
829 int main(int argc, char **argv) { char **ep = environ; }
830 ], [
831 AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
832 has_environ=yes
833 ], [
834 has_environ=no
835 ])
836 AC_MSG_RESULT([${has_environ}])
837 ])
838
839 if test "${has_environ}" != "yes" ; then
840 AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
841 fi
842
843
844 # set default gcc warnings
845 GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security"
846 if test "${gcc_wextra}" = yes; then
847 GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
848 GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
849 GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
850 GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
851 fi
852 if test "${gcc_werror}" = yes; then
853 GCC_WARNINGS="${GCC_WARNINGS} -Werror"
854 fi
855
856 # overide default gcc cflags
857 if test $gcc_warnings = yes; then
858 CFLAGS="$CFLAGS $GCC_WARNINGS"
859 fi
860
861 # Setup for compiling build tools
862 AC_MSG_CHECKING([for a C compiler for build tools])
863 if test $cross_compiling = yes; then
864 AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
865 CFLAGS_FOR_BUILD="-g -O2 $GCC_WARNINGS"
866 else
867 CC_FOR_BUILD=$CC
868 CFLAGS_FOR_BUILD=$CFLAGS
869 fi
870
871 AC_MSG_RESULT([$CC_FOR_BUILD])
872 AC_SUBST(CC_FOR_BUILD)
873 AC_SUBST(CFLAGS_FOR_BUILD)
874
875 AC_MSG_CHECKING([for suffix of executable build tools])
876 if test $cross_compiling = yes; then
877 cat >conftest.c <<\_______EOF
878 int main ()
879 {
880 exit (0);
881 }
882 _______EOF
883 for i in .exe ""; do
884 compile="$CC_FOR_BUILD conftest.c -o conftest$i"
885 if AC_TRY_EVAL(compile); then
886 if (./conftest) 2>&AC_FD_CC; then
887 EXEEXT_FOR_BUILD=$i
888 break
889 fi
890 fi
891 done
892 rm -f conftest*
893 if test "${EXEEXT_FOR_BUILD+set}" != set; then
894 AC_MSG_ERROR([Cannot determine suffix of executable build tools])
895 fi
896 else
897 EXEEXT_FOR_BUILD=$EXEEXT
898 fi
899 AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
900 AC_SUBST(EXEEXT_FOR_BUILD)
901
902 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)