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