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