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