efm32: fix FTBFS on ARM due to alignment issues
[openocd.git] / configure.ac
1 AC_PREREQ(2.60)
2 AC_INIT([openocd], [0.8.0-dev],
3 [OpenOCD Mailing List <openocd-devel@lists.sourceforge.net>])
4 AC_CONFIG_SRCDIR([src/openocd.c])
5
6 m4_include([config_subdir.m4])dnl
7
8 AM_INIT_AUTOMAKE([-Wall -Wno-portability dist-bzip2 dist-zip])
9 AM_MAINTAINER_MODE
10
11 AC_CONFIG_HEADERS([config.h])
12 AH_BOTTOM([
13 #include <helper/system.h>
14 #include <helper/types.h>
15 #include <helper/replacements.h>
16 ])
17
18 AC_LANG_C
19 AC_PROG_CC
20 AC_PROG_CC_C99
21 AM_PROG_CC_C_O
22 AC_PROG_RANLIB
23
24 dnl disable checks for C++, Fortran and GNU Java Compiler
25 m4_defun([_LT_AC_LANG_CXX_CONFIG], [:])
26 m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
27 m4_defun([_LT_AC_LANG_GCJ_CONFIG], [:])
28 AC_DISABLE_SHARED
29 AC_PROG_LIBTOOL
30 AC_SUBST([LIBTOOL_DEPS])
31
32 dnl configure checks required for Jim files (these are obsolete w/ C99)
33 AC_C_CONST
34 AC_TYPE_LONG_LONG_INT
35
36 AC_SEARCH_LIBS([ioperm], [ioperm])
37 AC_SEARCH_LIBS([dlopen], [dl])
38
39 AC_CHECK_HEADERS([sys/socket.h])
40 AC_CHECK_HEADERS([arpa/inet.h], [], [], [dnl
41 #include <stdio.h>
42 #ifdef STDC_HEADERS
43 # include <stdlib.h>
44 # include <stddef.h>
45 #else
46 # ifdef HAVE_STDLIB_H
47 # include <stdlib.h>
48 # endif
49 #endif
50 #ifdef HAVE_SYS_SOCKET_H
51 # include <sys/socket.h>
52 #endif
53 ])
54 AC_CHECK_HEADERS([elf.h])
55 AC_CHECK_HEADERS([dirent.h])
56 AC_CHECK_HEADERS([fcntl.h])
57 AC_CHECK_HEADERS([ifaddrs.h], [], [], [dnl
58 #include <stdio.h>
59 #ifdef STDC_HEADERS
60 # include <stdlib.h>
61 # include <stddef.h>
62 #else
63 # ifdef HAVE_STDLIB_H
64 # include <stdlib.h>
65 # endif
66 #endif
67 #ifdef HAVE_SYS_SOCKET_H
68 # include <sys/socket.h>
69 #endif
70 ])
71 AC_CHECK_HEADERS([malloc.h])
72 AC_CHECK_HEADERS([netdb.h])
73 AC_CHECK_HEADERS([netinet/in.h], [], [], [dnl
74 #include <stdio.h>
75 #ifdef STDC_HEADERS
76 # include <stdlib.h>
77 # include <stddef.h>
78 #else
79 # ifdef HAVE_STDLIB_H
80 # include <stdlib.h>
81 # endif
82 #endif
83 #ifdef HAVE_SYS_SOCKET_H
84 # include <sys/socket.h>
85 #endif
86 ])
87 AC_CHECK_HEADERS([netinet/tcp.h], [], [], [dnl
88 #include <stdio.h>
89 #ifdef STDC_HEADERS
90 # include <stdlib.h>
91 # include <stddef.h>
92 #else
93 # ifdef HAVE_STDLIB_H
94 # include <stdlib.h>
95 # endif
96 #endif
97 #ifdef HAVE_SYS_SOCKET_H
98 # include <sys/socket.h>
99 #endif
100 ])
101 AC_CHECK_HEADERS([pthread.h])
102 AC_CHECK_HEADERS([strings.h])
103 AC_CHECK_HEADERS([sys/ioctl.h])
104 AC_CHECK_HEADERS([sys/param.h])
105 AC_CHECK_HEADERS([sys/poll.h])
106 AC_CHECK_HEADERS([sys/select.h])
107 AC_CHECK_HEADERS([sys/stat.h])
108 AC_CHECK_HEADERS([sys/time.h])
109 AC_CHECK_HEADERS([sys/types.h])
110 AC_CHECK_HEADERS([unistd.h])
111 AC_CHECK_HEADERS([net/if.h], [], [], [dnl
112 #include <stdio.h>
113 #ifdef STDC_HEADERS
114 # include <stdlib.h>
115 # include <stddef.h>
116 #else
117 # ifdef HAVE_STDLIB_H
118 # include <stdlib.h>
119 # endif
120 #endif
121 #ifdef HAVE_SYS_SOCKET_H
122 # include <sys/socket.h>
123 #endif
124 ])
125
126 AC_HEADER_ASSERT
127 AC_HEADER_STDBOOL
128 AC_HEADER_TIME
129
130 AC_C_BIGENDIAN
131
132 AC_CHECK_FUNCS([strndup])
133 AC_CHECK_FUNCS([strnlen])
134 AC_CHECK_FUNCS([gettimeofday])
135 AC_CHECK_FUNCS([usleep])
136 AC_CHECK_FUNCS([vasprintf])
137
138 build_bitbang=no
139 build_bitq=no
140 is_cygwin=no
141 is_mingw=no
142 is_win32=no
143 is_darwin=no
144
145 # guess-rev.sh only exists in the repository, not in the released archives
146 AC_MSG_CHECKING([whether to build a release])
147 if test -x $srcdir/guess-rev.sh ; then
148 build_release=no
149 else
150 build_release=yes
151 fi
152 AC_MSG_RESULT([$build_release])
153
154 # We are not *ALWAYS* being installed in the standard place.
155 # We may be installed in a "tool-build" specific location.
156 # Normally with other packages - as part of a tool distro.
157 # Thus - we should search that 'libdir' also.
158 #
159 # And - if we are being installed there - the odds are
160 # The libraries unique to what we are are there too.
161 #
162
163 # Expand nd deal with NONE - just like configure will do later
164 OCDprefix=$prefix
165 OCDxprefix=$exec_prefix
166 test x"$OCDprefix" = xNONE && OCDprefix=$ac_default_prefix
167 # Let make expand exec_prefix.
168 test x"$OCDxprefix" = xNONE && OCDxprefix="$OCDprefix"
169
170 # what matters is the "exec-prefix"
171 if test "$OCDxprefix" != "$ac_default_prefix"
172 then
173 # We are installing in a non-standard place
174 # Nonstandard --prefix and/or --exec-prefix
175 # We have an override of some sort.
176 # use build specific install library dir
177
178 LDFLAGS="$LDFLAGS -L$OCDxprefix/lib"
179 # RPATH becomes an issue on Linux only
180 if test $host_os = linux-gnu || test $host_os = linux ; then
181 LDFLAGS="$LDFLAGS -Wl,-rpath,$OCDxprefix/lib"
182 fi
183 # The "INCDIR" is also usable
184 CFLAGS="$CFLAGS -I$includedir"
185 fi
186
187 AC_ARG_WITH(ftd2xx,
188 AS_HELP_STRING([--with-ftd2xx=<PATH>],[This option has been removed.]),
189 [
190 # Option Given.
191 cat << __EOF__
192
193 The option: --with-ftd2xx=<PATH> has been removed.
194 On Linux, the new option is:
195
196 --with-ftd2xx-linux-tardir=/path/to/files
197
198 Where <path> is the path the the directory where the "tar.gz" file
199 from FTDICHIP.COM was unpacked, for example:
200
201 --with-ftd2xx-linux-tardir=${HOME}/libftd2xx0.4.16
202
203 On Cygwin/MingW32, the new option is:
204
205 --with-ftd2xx-win32-zipdir=/path/to/files
206
207 Where <path> is the path to the directory where the "zip" file from
208 FTDICHIP.COM was unpacked, for example:
209
210 --with-ftd2xx-win32-zipdir=${HOME}/ftd2xx.cdm.files
211
212 __EOF__
213
214 AC_MSG_ERROR([Sorry Cannot continue])
215 ], [true])
216
217 #========================================
218 # FTD2XXX support comes in 4 forms.
219 # (1) win32 - via a zip file
220 # (2) linux - via a tar file
221 # (3) linux/cygwin/mingw - via libftdi
222 # (4) darwin - installed under /usr/local
223 #
224 # In case (1) and (2) we need to know where the package was unpacked.
225
226 AC_ARG_WITH(ftd2xx-win32-zipdir,
227 AS_HELP_STRING([--with-ftd2xx-win32-zipdir],[Where (CYGWIN/MINGW) the zip file from ftdichip.com was unpacked (default=search)]),
228 [
229 # option present
230 if test -d $with_ftd2xx_win32_zipdir
231 then
232 with_ftd2xx_win32_zipdir=`cd $with_ftd2xx_win32_zipdir && pwd`
233 AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_win32_zipdir])
234 else
235 AC_MSG_ERROR([Parameter to --with-ftd2xx-win32-zipdir is not a dir: $with_ftd2xx_win32_zipdir])
236 fi
237 ], [true])
238
239 AC_ARG_WITH(ftd2xx-linux-tardir,
240 AS_HELP_STRING([--with-ftd2xx-linux-tardir], [Where (Linux/Unix) the tar file from ftdichip.com was unpacked (default=search)]),
241 [
242 # Option present
243 if test $is_win32 = yes ; then
244 AC_MSG_ERROR([The option: --with-ftd2xx-linux-tardir is only usable on linux])
245 fi
246 if test -d $with_ftd2xx_linux_tardir
247 then
248 with_ftd2xx_linux_tardir=`cd $with_ftd2xx_linux_tardir && pwd`
249 AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_linux_tardir])
250 else
251 AC_MSG_ERROR([Parameter to --with-ftd2xx-linux-tardir is not a dir: $with_ftd2xx_linux_tardir])
252 fi
253 ], [true])
254
255 AC_ARG_WITH(ftd2xx-lib,
256 AS_HELP_STRING([--with-ftd2xx-lib],
257 [Use static or shared ftd2xx libs (default=static)]),
258 [
259 case "$withval" in
260 static)
261 with_ftd2xx_lib=$withval
262 ;;
263 shared)
264 with_ftd2xx_lib=$withval
265 ;;
266 *)
267 AC_MSG_ERROR([Option: --with-ftd2xx-lib=static or --with-ftd2xx-lib=shared not, $withval])
268 ;;
269 esac
270 ], [
271 # Default is static - it is simpler :-(
272 with_ftd2xx_lib=static
273 ])
274
275 AC_ARG_ENABLE([doxygen-html],
276 AS_HELP_STRING([--disable-doxygen-html],
277 [Disable building Doxygen manual as HTML.]),
278 [doxygen_as_html=$enableval], [doxygen_as_html=yes])
279 AC_SUBST([doxygen_as_html])
280 AC_MSG_CHECKING([whether to build Doxygen as HTML])
281 AC_MSG_RESULT([$doxygen_as_html])
282
283 AC_ARG_ENABLE([doxygen-pdf],
284 AS_HELP_STRING([--enable-doxygen-pdf],
285 [Enable building Doxygen manual as PDF.]),
286 [doxygen_as_pdf=$enableval], [doxygen_as_pdf=no])
287 AC_SUBST([doxygen_as_pdf])
288 AC_MSG_CHECKING([whether to build Doxygen as PDF])
289 AC_MSG_RESULT([$doxygen_as_pdf])
290
291 AC_ARG_ENABLE([gccwarnings],
292 AS_HELP_STRING([--disable-gccwarnings], [Disable compiler warnings]),
293 [gcc_warnings=$enableval], [gcc_warnings=yes])
294
295 AC_ARG_ENABLE([wextra],
296 AS_HELP_STRING([--disable-wextra], [Disable extra compiler warnings]),
297 [gcc_wextra=$enableval], [gcc_wextra=$gcc_warnings])
298
299 AC_ARG_ENABLE([werror],
300 AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
301 [gcc_werror=$enableval], [gcc_werror=$gcc_warnings])
302
303 # set default verbose options, overridden by following options
304 debug_jtag_io=no
305 debug_usb_io=no
306 debug_usb_comms=no
307
308 AC_ARG_ENABLE([verbose],
309 AS_HELP_STRING([--enable-verbose],
310 [Enable verbose JTAG I/O messages (for debugging).]),
311 [
312 debug_jtag_io=$enableval
313 debug_usb_io=$enableval
314 debug_usb_comms=$enableval
315 ], [])
316
317 AC_ARG_ENABLE([verbose_jtag_io],
318 AS_HELP_STRING([--enable-verbose-jtag-io],
319 [Enable verbose JTAG I/O messages (for debugging).]),
320 [debug_jtag_io=$enableval], [])
321
322 AC_ARG_ENABLE([verbose_usb_io],
323 AS_HELP_STRING([--enable-verbose-usb-io],
324 [Enable verbose USB I/O messages (for debugging)]),
325 [debug_usb_io=$enableval], [])
326
327 AC_ARG_ENABLE([verbose_usb_comms],
328 AS_HELP_STRING([--enable-verbose-usb-comms],
329 [Enable verbose USB communication messages (for debugging)]),
330 [debug_usb_comms=$enableval], [])
331
332 AC_MSG_CHECKING([whether to enable verbose JTAG I/O messages]);
333 AC_MSG_RESULT([$debug_jtag_io])
334 if test $debug_jtag_io = yes; then
335 AC_DEFINE([_DEBUG_JTAG_IO_],[1], [Print verbose JTAG I/O messages])
336 fi
337
338 AC_MSG_CHECKING([whether to enable verbose USB I/O messages]);
339 AC_MSG_RESULT([$debug_usb_io])
340 if test $debug_usb_io = yes; then
341 AC_DEFINE([_DEBUG_USB_IO_],[1], [Print verbose USB I/O messages])
342 fi
343
344 AC_MSG_CHECKING([whether to enable verbose USB communication messages]);
345 AC_MSG_RESULT([$debug_usb_comms])
346 if test $debug_usb_comms = yes; then
347 AC_DEFINE([_DEBUG_USB_COMMS_],[1], [Print verbose USB communication messages])
348 fi
349
350 debug_malloc=no
351 AC_ARG_ENABLE([malloc_logging],
352 AS_HELP_STRING([--enable-malloc-logging],
353 [Include free space in logging messages (requires malloc.h).]),
354 [debug_malloc=$enableval], [])
355
356 AC_MSG_CHECKING([whether to enable malloc free space logging]);
357 AC_MSG_RESULT([$debug_malloc])
358 if test $debug_malloc = yes; then
359 AC_DEFINE([_DEBUG_FREE_SPACE_],[1], [Include malloc free space in logging])
360 fi
361
362 AC_ARG_ENABLE([dummy],
363 AS_HELP_STRING([--enable-dummy], [Enable building the dummy port driver]),
364 [build_dummy=$enableval], [build_dummy=no])
365
366 AC_ARG_ENABLE([parport],
367 AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
368 [build_parport=$enableval], [build_parport=no])
369
370 AC_ARG_ENABLE([parport_ppdev],
371 AS_HELP_STRING([--disable-parport-ppdev],
372 [Disable use of ppdev (/dev/parportN) for parport (for x86 only)]),
373 [parport_use_ppdev=$enableval], [parport_use_ppdev=yes])
374
375 AC_ARG_ENABLE([parport_giveio],
376 AS_HELP_STRING([--enable-parport-giveio],
377 [Enable use of giveio for parport (for CygWin only)]),
378 [parport_use_giveio=$enableval], [parport_use_giveio=])
379
380 AC_ARG_ENABLE([ft2232_libftdi],
381 AS_HELP_STRING([--enable-ft2232_libftdi], [Enable building support for FT2232 based devices using the libftdi driver, opensource alternate of FTD2XX]),
382 [build_ft2232_libftdi=$enableval], [build_ft2232_libftdi=no])
383
384 AC_ARG_ENABLE([ft2232_ftd2xx],
385 AS_HELP_STRING([--enable-ft2232_ftd2xx], [Enable building support for FT2232 based devices using the FTD2XX driver from ftdichip.com]),
386 [build_ft2232_ftd2xx=$enableval], [build_ft2232_ftd2xx=no])
387
388 AC_ARG_ENABLE([ftdi],
389 AS_HELP_STRING([--enable-ftdi], [Enable building support for the MPSSE mode of FTDI based devices, using libusb-1.0 in asynchronous mode]),
390 [build_ftdi=$enableval], [build_ftdi=no])
391
392 AC_ARG_ENABLE([usb_blaster_libftdi],
393 AS_HELP_STRING([--enable-usb_blaster_libftdi], [Enable building support for the Altera USB-Blaster using the libftdi driver, opensource alternate of FTD2XX]),
394 [build_usb_blaster_libftdi=$enableval], [build_usb_blaster_libftdi=no])
395
396 AC_ARG_ENABLE([usb_blaster_ftd2xx],
397 AS_HELP_STRING([--enable-usb_blaster_ftd2xx], [Enable building support for the Altera USB-Blaster using the FTD2XX driver from ftdichip.com]),
398 [build_usb_blaster_ftd2xx=$enableval], [build_usb_blaster_ftd2xx=no])
399
400 AC_ARG_ENABLE([amtjtagaccel],
401 AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
402 [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
403
404 AC_ARG_ENABLE([zy1000_master],
405 AS_HELP_STRING([--enable-zy1000-master], [Use ZY1000 JTAG master registers]),
406 [build_zy1000_master=$enableval], [build_zy1000_master=no])
407
408 AC_ARG_ENABLE([zy1000],
409 AS_HELP_STRING([--enable-zy1000], [Enable ZY1000 interface]),
410 [build_zy1000=$enableval], [build_zy1000=no])
411
412 AC_ARG_ENABLE([ioutil],
413 AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]),
414 [build_ioutil=$enableval], [build_ioutil=no])
415
416 case "${host_cpu}" in
417 arm*)
418 AC_ARG_ENABLE([ep93xx],
419 AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]),
420 [build_ep93xx=$enableval], [build_ep93xx=no])
421
422 AC_ARG_ENABLE([at91rm9200],
423 AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
424 [build_at91rm9200=$enableval], [build_at91rm9200=no])
425 ;;
426
427 *)
428 build_ep93xx=no
429 build_at91rm9200=no
430 ;;
431 esac
432
433 AC_ARG_ENABLE([gw16012],
434 AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
435 [build_gw16012=$enableval], [build_gw16012=no])
436
437 AC_ARG_ENABLE([presto_libftdi],
438 AS_HELP_STRING([--enable-presto_libftdi], [Enable building support for ASIX Presto Programmer using the libftdi driver]),
439 [build_presto_libftdi=$enableval], [build_presto_libftdi=no])
440
441 AC_ARG_ENABLE([presto_ftd2xx],
442 AS_HELP_STRING([--enable-presto_ftd2xx], [Enable building support for ASIX Presto Programmer using the FTD2XX driver]),
443 [build_presto_ftd2xx=$enableval], [build_presto_ftd2xx=no])
444
445 AC_ARG_ENABLE([usbprog],
446 AS_HELP_STRING([--enable-usbprog], [Enable building support for the usbprog JTAG Programmer]),
447 [build_usbprog=$enableval], [build_usbprog=no])
448
449 AC_ARG_ENABLE([oocd_trace],
450 AS_HELP_STRING([--enable-oocd_trace],
451 [Enable building support for some prototype OpenOCD+trace ETM capture hardware]),
452 [build_oocd_trace=$enableval], [build_oocd_trace=no])
453
454 AC_ARG_ENABLE([jlink],
455 AS_HELP_STRING([--enable-jlink], [Enable building support for the Segger J-Link JTAG Programmer]),
456 [build_jlink=$enableval], [build_jlink=no])
457
458 AC_ARG_ENABLE([vsllink],
459 AS_HELP_STRING([--enable-vsllink], [Enable building support for the Versaloon-Link JTAG Programmer]),
460 [build_vsllink=$enableval], [build_vsllink=no])
461
462 AC_ARG_ENABLE([rlink],
463 AS_HELP_STRING([--enable-rlink], [Enable building support for the Raisonance RLink JTAG Programmer]),
464 [build_rlink=$enableval], [build_rlink=no])
465
466 AC_ARG_ENABLE([ulink],
467 AS_HELP_STRING([--enable-ulink], [Enable building support for the Keil ULINK JTAG Programmer]),
468 [build_ulink=$enableval], [build_ulink=no])
469
470 AC_ARG_ENABLE([arm-jtag-ew],
471 AS_HELP_STRING([--enable-arm-jtag-ew], [Enable building support for the Olimex ARM-JTAG-EW Programmer]),
472 [build_armjtagew=$enableval], [build_armjtagew=no])
473
474 AC_ARG_ENABLE([buspirate],
475 AS_HELP_STRING([--enable-buspirate], [Enable building support for the Buspirate]),
476 [build_buspirate=$enableval], [build_buspirate=no])
477
478 AC_ARG_ENABLE([stlink],
479 AS_HELP_STRING([--enable-stlink], [Enable building support for the ST-Link JTAG Programmer]),
480 [build_hladapter_stlink=$enableval], [build_hladapter_stlink=no])
481
482 AC_ARG_ENABLE([ti-icdi],
483 AS_HELP_STRING([--enable-ti-icdi], [Enable building support for the TI ICDI JTAG Programmer]),
484 [build_hladapter_icdi=$enableval], [build_hladapter_icdi=no])
485
486 AC_ARG_ENABLE([osbdm],
487 AS_HELP_STRING([--enable-osbdm], [Enable building support for the OSBDM (JTAG only) Programmer]),
488 [build_osbdm=$enableval], [build_osbdm=no])
489
490 AC_ARG_ENABLE([opendous],
491 AS_HELP_STRING([--enable-opendous], [Enable building support for the estick/opendous JTAG Programmer]),
492 [build_opendous=$enableval], [build_opendous=no])
493
494 AC_ARG_ENABLE([sysfsgpio],
495 AS_HELP_STRING([--enable-sysfsgpio], [Enable building support for programming driven via sysfs gpios.]),
496 [build_sysfsgpio=$enableval], [build_sysfsgpio=no])
497
498 AC_ARG_ENABLE([minidriver_dummy],
499 AS_HELP_STRING([--enable-minidriver-dummy], [Enable the dummy minidriver.]),
500 [build_minidriver_dummy=$enableval], [build_minidriver_dummy=no])
501
502 AC_ARG_ENABLE([internal-jimtcl],
503 AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
504 [use_internal_jimtcl=$enableval], [use_internal_jimtcl=yes])
505
506 AC_ARG_ENABLE([libusb0],
507 AS_HELP_STRING([--enable-libusb0], [Use libusb-0.1 library for USB JTAG devices]),
508 [check_libusb0=$enableval], [check_libusb0=no])
509
510 build_minidriver=no
511 AC_MSG_CHECKING([whether to enable ZY1000 minidriver])
512 if test $build_zy1000 = yes; then
513 if test $build_minidriver = yes; then
514 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
515 fi
516 AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
517 [Define to 1 if you have the <jtag_minidriver.h> header file.])
518 build_minidriver=yes
519 fi
520 AC_MSG_RESULT([$build_zy1000])
521
522 AC_ARG_ENABLE([remote-bitbang],
523 AS_HELP_STRING([--enable-remote-bitbang], [Enable building support for the Remote Bitbang jtag driver]),
524 [build_remote_bitbang=$enableval], [build_remote_bitbang=no])
525
526 AC_MSG_CHECKING([whether to enable dummy minidriver])
527 if test $build_minidriver_dummy = yes; then
528 if test $build_minidriver = yes; then
529 AC_MSG_ERROR([Multiple minidriver options have been enabled.])
530 fi
531 build_minidriver=yes
532 AC_DEFINE([BUILD_MINIDRIVER_DUMMY], [1], [Use the dummy minidriver.])
533 AC_DEFINE([HAVE_JTAG_MINIDRIVER_H], [1],
534 [Define to 1 if you have the <jtag_minidriver.h> header file.])
535 fi
536 AC_MSG_RESULT([$build_minidriver_dummy])
537
538 AC_MSG_CHECKING([whether standard drivers can be built])
539 if test "$build_minidriver" = yes; then
540 AC_MSG_RESULT([no])
541 AC_MSG_WARN([Using the minidriver disables all other drivers.])
542 sleep 2
543 else
544 AC_MSG_RESULT([yes])
545 fi
546
547 case "${host_cpu}" in
548 i?86|x86*)
549 ;;
550 *)
551 if test x$parport_use_ppdev = xno; then
552 AC_MSG_WARN([--disable-parport-ppdev is not supported by the host CPU])
553 fi
554 parport_use_ppdev=yes
555 ;;
556 esac
557
558 case $host in
559 *-cygwin*)
560 is_win32=yes
561 parport_use_ppdev=no
562
563 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[return __MINGW32__;]])],
564 [is_mingw=yes],[is_mingw=no])
565 if test $is_mingw = yes; then
566 AC_DEFINE([IS_MINGW], [1], [1 if building for MinGW.])
567 if test x$parport_use_giveio = xno; then
568 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
569 fi
570 parport_use_giveio=yes
571 is_cygwin=no
572 else
573 is_cygwin=yes
574 AC_DEFINE([IS_CYGWIN], [1], [1 if building for Cygwin.])
575 # sys/io.h needed under cygwin for parport access
576 if test $build_parport = yes; then
577 AC_CHECK_HEADERS([sys/io.h],[],AC_MSG_ERROR([Please install the cygwin ioperm package]))
578 fi
579 fi
580
581 AC_DEFINE([IS_WIN32], [1], [1 if building for Win32.])
582 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
583 ;;
584 *-mingw*)
585 is_mingw=yes
586 is_win32=yes
587 parport_use_ppdev=no
588
589 if test x$parport_use_giveio = xno; then
590 AC_MSG_WARN([--disable-parport-giveio is not supported by MinGW32 hosts])
591 fi
592 parport_use_giveio=yes
593
594 if test x$build_buspirate = xyes; then
595 AC_MSG_ERROR([buspirate currently not supported by MinGW32 hosts])
596 fi
597
598 CFLAGS="$CFLAGS -D__USE_MINGW_ANSI_STDIO"
599
600 AC_DEFINE([IS_MINGW], [1], [1 if building for MinGW.])
601 AC_DEFINE([IS_WIN32], [1], [1 if building for Win32.])
602 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
603 ;;
604 *darwin*)
605 is_darwin=yes
606
607 if test x$parport_use_giveio = xyes; then
608 AC_MSG_WARN([--enable-parport-giveio cannot be used by Darwin hosts])
609 fi
610 parport_use_giveio=no
611
612 AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
613 AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
614 AC_DEFINE([IS_DARWIN], [1], [1 if building for Darwin.])
615 ;;
616 *)
617 if test x$parport_use_giveio = xyes; then
618 AC_MSG_WARN([--enable-parport-giveio cannot be used by ]$host[ hosts])
619 fi
620 parport_use_giveio=no
621 AC_DEFINE([IS_CYGWIN], [0], [0 if not building for Cygwin.])
622 AC_DEFINE([IS_WIN32], [0], [0 if not building for Win32.])
623 AC_DEFINE([IS_DARWIN], [0], [0 if not building for Darwin.])
624 ;;
625 esac
626
627 if test $build_parport = yes; then
628 build_bitbang=yes
629 AC_DEFINE([BUILD_PARPORT], [1], [1 if you want parport.])
630 else
631 AC_DEFINE([BUILD_PARPORT], [0], [0 if you don't want parport.])
632 fi
633
634 if test $build_dummy = yes; then
635 build_bitbang=yes
636 AC_DEFINE([BUILD_DUMMY], [1], [1 if you want dummy driver.])
637 else
638 AC_DEFINE([BUILD_DUMMY], [0], [0 if you don't want dummy driver.])
639 fi
640
641 if test $build_ep93xx = yes; then
642 build_bitbang=yes
643 AC_DEFINE([BUILD_EP93XX], [1], [1 if you want ep93xx.])
644 else
645 AC_DEFINE([BUILD_EP93XX], [0], [0 if you don't want ep93xx.])
646 fi
647
648 if test $build_zy1000 = yes; then
649 AC_DEFINE([BUILD_ZY1000], [1], [1 if you want ZY1000.])
650 else
651 AC_DEFINE([BUILD_ZY1000], [0], [0 if you don't want ZY1000.])
652 fi
653
654 if test $build_zy1000_master = yes; then
655 AC_DEFINE([BUILD_ZY1000_MASTER], [1], [1 if you want ZY1000 JTAG master registers.])
656 else
657 AC_DEFINE([BUILD_ZY1000_MASTER], [0], [0 if you don't want ZY1000 JTAG master registers.])
658 fi
659
660 if test $build_at91rm9200 = yes; then
661 build_bitbang=yes
662 AC_DEFINE([BUILD_AT91RM9200], [1], [1 if you want at91rm9200.])
663 else
664 AC_DEFINE([BUILD_AT91RM9200], [0], [0 if you don't want at91rm9200.])
665 fi
666
667 if test x$parport_use_ppdev = xyes; then
668 AC_DEFINE([PARPORT_USE_PPDEV], [1], [1 if you want parport to use ppdev.])
669 else
670 AC_DEFINE([PARPORT_USE_PPDEV], [0], [0 if you don't want parport to use ppdev.])
671 fi
672
673 if test x$parport_use_giveio = xyes; then
674 AC_DEFINE([PARPORT_USE_GIVEIO], [1], [1 if you want parport to use giveio.])
675 else
676 AC_DEFINE([PARPORT_USE_GIVEIO], [0], [0 if you don't want parport to use giveio.])
677 fi
678
679 if test $build_bitbang = yes; then
680 AC_DEFINE([BUILD_BITBANG], [1], [1 if you want a bitbang interface.])
681 else
682 AC_DEFINE([BUILD_BITBANG], [0], [0 if you don't want a bitbang interface.])
683 fi
684
685 if test $build_ft2232_libftdi = yes; then
686 AC_DEFINE([BUILD_FT2232_LIBFTDI], [1], [1 if you want libftdi ft2232.])
687 else
688 AC_DEFINE([BUILD_FT2232_LIBFTDI], [0], [0 if you don't want libftdi ft2232.])
689 fi
690
691 if test $build_ft2232_ftd2xx = yes; then
692 AC_DEFINE([BUILD_FT2232_FTD2XX], [1], [1 if you want ftd2xx ft2232.])
693 else
694 AC_DEFINE([BUILD_FT2232_FTD2XX], [0], [0 if you don't want ftd2xx ft2232.])
695 fi
696
697 if test $build_ftdi = yes; then
698 AC_DEFINE([BUILD_FTDI], [1], [1 if you want ftdi.])
699 else
700 AC_DEFINE([BUILD_FTDI], [0], [0 if you don't want ftdi.])
701 fi
702
703 if test $build_usb_blaster_libftdi = yes; then
704 build_bitbang=yes
705 AC_DEFINE([BUILD_USB_BLASTER_LIBFTDI], [1], [1 if you want libftdi usb_blaster.])
706 else
707 AC_DEFINE([BUILD_USB_BLASTER_LIBFTDI], [0], [0 if you don't want libftdi usb_blaster.])
708 fi
709
710 if test $build_usb_blaster_ftd2xx = yes; then
711 build_bitbang=yes
712 AC_DEFINE([BUILD_USB_BLASTER_FTD2XX], [1], [1 if you want ftd2xx usb_blaster.])
713 else
714 AC_DEFINE([BUILD_USB_BLASTER_FTD2XX], [0], [0 if you don't want ftd2xx usb_blaster.])
715 fi
716
717 if test $build_amtjtagaccel = yes; then
718 AC_DEFINE([BUILD_AMTJTAGACCEL], [1], [1 if you want the Amontec JTAG-Accelerator driver.])
719 else
720 AC_DEFINE([BUILD_AMTJTAGACCEL], [0], [0 if you don't want the Amontec JTAG-Accelerator driver.])
721 fi
722
723 if test $build_gw16012 = yes; then
724 AC_DEFINE([BUILD_GW16012], [1], [1 if you want the Gateworks GW16012 driver.])
725 else
726 AC_DEFINE([BUILD_GW16012], [0], [0 if you don't want the Gateworks GW16012 driver.])
727 fi
728
729 if test $build_presto_libftdi = yes; then
730 build_bitq=yes
731 AC_DEFINE([BUILD_PRESTO_LIBFTDI], [1], [1 if you want the ASIX PRESTO driver using libftdi.])
732 else
733 AC_DEFINE([BUILD_PRESTO_LIBFTDI], [0], [0 if you don't want the ASIX PRESTO driver using libftdi.])
734 fi
735
736 if test $build_presto_ftd2xx = yes; then
737 build_bitq=yes
738 AC_DEFINE([BUILD_PRESTO_FTD2XX], [1], [1 if you want the ASIX PRESTO driver using FTD2XX.])
739 else
740 AC_DEFINE([BUILD_PRESTO_FTD2XX], [0], [0 if you don't want the ASIX PRESTO driver using FTD2XX.])
741 fi
742
743 if test $build_bitq = yes; then
744 AC_DEFINE([BUILD_BITQ], [1], [1 if you want a bitq interface.])
745 else
746 AC_DEFINE([BUILD_BITQ], [0], [0 if you don't want a bitq interface.])
747 fi
748
749 if test $build_usbprog = yes; then
750 AC_DEFINE([BUILD_USBPROG], [1], [1 if you want the usbprog JTAG driver.])
751 else
752 AC_DEFINE([BUILD_USBPROG], [0], [0 if you don't want the usbprog JTAG driver.])
753 fi
754
755 if test $build_oocd_trace = yes; then
756 AC_DEFINE([BUILD_OOCD_TRACE], [1], [1 if you want the OpenOCD+trace ETM capture driver.])
757 else
758 AC_DEFINE([BUILD_OOCD_TRACE], [0], [0 if you don't want the OpenOCD+trace ETM capture driver.])
759 fi
760
761 if test $build_jlink = yes; then
762 AC_DEFINE([BUILD_JLINK], [1], [1 if you want the J-Link JTAG driver.])
763 else
764 AC_DEFINE([BUILD_JLINK], [0], [0 if you don't want the J-Link JTAG driver.])
765 fi
766
767 if test $build_vsllink = yes; then
768 AC_DEFINE([BUILD_VSLLINK], [1], [1 if you want the Versaloon-Link JTAG driver.])
769 else
770 AC_DEFINE([BUILD_VSLLINK], [0], [0 if you don't want the Versaloon-Link JTAG driver.])
771 fi
772
773 if test $build_rlink = yes; then
774 AC_DEFINE([BUILD_RLINK], [1], [1 if you want the RLink JTAG driver.])
775 else
776 AC_DEFINE([BUILD_RLINK], [0], [0 if you don't want the RLink JTAG driver.])
777 fi
778
779 if test $build_ulink = yes; then
780 AC_DEFINE([BUILD_ULINK], [1], [1 if you want the ULINK JTAG driver.])
781 else
782 AC_DEFINE([BUILD_ULINK], [0], [0 if you don't want the ULINK JTAG driver.])
783 fi
784
785 if test $build_armjtagew = yes; then
786 AC_DEFINE([BUILD_ARMJTAGEW], [1], [1 if you want the ARM-JTAG-EW JTAG driver.])
787 else
788 AC_DEFINE([BUILD_ARMJTAGEW], [0], [0 if you don't want the ARM-JTAG-EW JTAG driver.])
789 fi
790
791 if test $build_buspirate = yes; then
792 AC_DEFINE([BUILD_BUSPIRATE], [1], [1 if you want the Buspirate JTAG driver.])
793 else
794 AC_DEFINE([BUILD_BUSPIRATE], [0], [0 if you don't want the Buspirate JTAG driver.])
795 fi
796
797 if test $build_hladapter_stlink = yes -o $build_hladapter_icdi = yes; then
798 AC_DEFINE([BUILD_HLADAPTER], [1], [1 if you want the High Level JTAG driver.])
799 else
800 AC_DEFINE([BUILD_HLADAPTER], [0], [0 if you don't want the High Level JTAG driver.])
801 fi
802
803 if test $build_osbdm = yes; then
804 AC_DEFINE([BUILD_OSBDM], [1], [1 if you want the OSBDM driver.])
805 else
806 AC_DEFINE([BUILD_OSBDM], [0], [0 if you don't want the OSBDM driver.])
807 fi
808
809 if test $build_opendous = yes; then
810 AC_DEFINE([BUILD_OPENDOUS], [1], [1 if you want the estick/opendous JTAG driver.])
811 else
812 AC_DEFINE([BUILD_OPENDOUS], [0], [0 if you don't want the estick/opendous JTAG driver.])
813 fi
814
815 if test "$use_internal_jimtcl" = yes; then
816 if test -f "$srcdir/jimtcl/configure.ac"; then
817 AX_CONFIG_SUBDIR_OPTION([jimtcl], [--disable-install-jim])
818 else
819 AC_MSG_ERROR([jimtcl not found, run git submodule init and git submodule update.])
820 fi
821 fi
822
823 if test $build_remote_bitbang = yes; then
824 build_bitbang=yes
825 AC_DEFINE([BUILD_REMOTE_BITBANG], [1], [1 if you want the Remote Bitbang JTAG driver.])
826 else
827 AC_DEFINE([BUILD_REMOTE_BITBANG], [0], [0 if you don't want the Remote Bitbang JTAG driver.])
828 fi
829
830 if test $build_sysfsgpio = yes; then
831 build_bitbang=yes
832 AC_DEFINE([BUILD_SYSFSGPIO], [1], [1 if you want the SysfsGPIO driver.])
833 else
834 AC_DEFINE([BUILD_SYSFSGPIO], [0], [0 if you don't want SysfsGPIO driver.])
835 fi
836 #-- Deal with MingW/Cygwin FTD2XX issues
837
838 if test $is_win32 = yes; then
839 if test "${with_ftd2xx_linux_tardir+set}" = set
840 then
841 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
842 fi
843
844 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
845 AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
846
847 # if we are given a zipdir...
848 if test "${with_ftd2xx_win32_zipdir+set}" = set
849 then
850 # Set the CFLAGS for "ftd2xx.h"
851 f=$with_ftd2xx_win32_zipdir/ftd2xx.h
852 if test ! -f $f ; then
853 AC_MSG_ERROR([File: $f cannot be found])
854 fi
855 CFLAGS="$CFLAGS -I$with_ftd2xx_win32_zipdir"
856
857 # And calculate the LDFLAGS for the machine
858 case "$host_cpu" in
859 i?86|x86_32)
860 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/i386"
861 LIBS="$LIBS -lftd2xx"
862 f=$with_ftd2xx_win32_zipdir/i386/ftd2xx.lib
863 ;;
864 amd64|x86_64)
865 LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/amd64"
866 LIBS="$LIBS -lftd2xx"
867 f=$with_ftd2xx_win32_zipdir/amd64/ftd2xx.lib
868 ;;
869 *)
870 AC_MSG_ERROR([Unknown Win32 host cpu: $host_cpu])
871 ;;
872 esac
873 if test ! -f $f ; then
874 AC_MSG_ERROR([Library: $f not found])
875 fi
876 else
877 LIBS="$LIBS -lftd2xx"
878 AC_MSG_WARN([ASSUMPTION: The (win32) FTDICHIP.COM files: ftd2xx.h and ftd2xx.lib are in a proper place])
879 fi
880 fi
881 fi # win32
882
883 if test $is_darwin = yes ; then
884 if test "${with_ftd2xx_win32_zipdir+set}" = set
885 then
886 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
887 fi
888 if test "${with_ftd2xx_linux_tardir+set}" = set
889 then
890 AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
891 fi
892
893 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
894 AC_MSG_CHECKING([for libftd2xx.a (darwin)])
895
896 if test ! -f /usr/local/include/ftd2xx.h ; then
897 AC_MSG_ERROR([ftd2xx library from FTDICHIP.com seems to be missing, cannot find: /usr/local/include/ftd2xx.h])
898 fi
899
900 CFLAGS="$CFLAGS -I/usr/local/include"
901 LDFLAGS="$LDFLAGS -L/usr/local/lib"
902 LIBS="$LIBS -lftd2xx"
903 AC_MSG_RESULT([-L/usr/local/lib -lftd2xx])
904 fi
905 fi # darwin
906
907 if test $is_win32 = no && test $is_darwin = no ; then
908
909 if test "${with_ftd2xx_win32_zipdir+set}" = set
910 then
911 AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
912 fi
913
914 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
915 # Must be linux
916 if test $host_os != linux-gnu && test $host_os != linux ; then
917 AC_MSG_ERROR([The (linux) ftd2xx library from FTDICHIP.com is linux only. Try --enable-ft2232-libftdi instead])
918 fi
919 # Are we given a TAR directory?
920 if test "${with_ftd2xx_linux_tardir+set}" = set
921 then
922 AC_MSG_CHECKING([uninstalled ftd2xx distribution])
923 # The .H file is simple..
924 FTD2XX_H=$with_ftd2xx_linux_tardir/ftd2xx.h
925 if test ! -f "${FTD2XX_H}"; then
926 AC_MSG_ERROR([Option: --with-ftd2xx-linux-tardir appears wrong, cannot find: ${FTD2XX_H}])
927 fi
928 CFLAGS="$CFLAGS -I$with_ftd2xx_linux_tardir"
929 if test $with_ftd2xx_lib = shared; then
930 FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir"
931 FTD2XX_LIB="-lftd2xx"
932 else
933 # Test #1 - v1.0.x
934 case "$host_cpu" in
935 i?86|x86_32)
936 dir=build/i386;;
937 amd64|x86_64)
938 dir=build/x86_64;;
939 *)
940 dir=none;;
941 esac
942 if test -f "$with_ftd2xx_linux_tardir/$dir/libftd2xx.a"; then
943 FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir/$dir"
944 # Also needs -lrt
945 FTD2XX_LIB="-lftd2xx -lrt"
946 else
947 # Test Number2.
948 # Grr.. perhaps it exists as a version number?
949 FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a.*.*.*"
950 count=`ls ${FTD2XX_LIB} | wc -l`
951 if test $count -gt 1 ; then
952 AC_MSG_ERROR([Multiple libftd2xx.a files found in: $with_ftd2xx_linux_tardir/static_lib sorry cannot handle this yet])
953 fi
954 if test $count -ne 1 ; then
955 AC_MSG_ERROR([Not found: $f, option: --with-ftd2xx-linux-tardir appears to be wrong])
956 fi
957 # Because the "-l" rules do not understand version numbers...
958 # we will just stuff the absolute path onto the LIBS variable
959 FTD2XX_LIB="`ls ${FTD2XX_LIB}` -lpthread"
960 FTD2XX_LDFLAGS=""
961 fi
962 fi
963 LDFLAGS="${LDFLAGS} ${FTD2XX_LDFLAGS}"
964 LIBS="${FTD2XX_LIB} ${LIBS}"
965 AC_MSG_RESULT([${FTD2XX_LDFLAGS} ${FTD2XX_LIB}])
966 else
967 AC_CHECK_HEADER([ftd2xx.h],[],[
968 AC_MSG_ERROR([You seem to be missing the FTD2xx driver header file.])
969 ])
970 AC_SEARCH_LIBS([FT_GetLibraryVersion],[ftd2xx],,[
971 AC_MSG_ERROR([You appear to be missing the FTD2xx driver library.])
972 ],[])
973 fi
974 fi
975 fi # linux
976
977 if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes -o $build_usb_blaster_ftd2xx = yes ; then
978
979 # Before we go any further - make sure we can *BUILD* and *RUN*
980 # a simple app with the "ftd2xx.lib" file - in what ever form we where given
981 # We should be able to compile, link and run this test program now
982 AC_MSG_CHECKING([whether ftd2xx library works])
983
984 #
985 # Save the LDFLAGS for later..
986 LDFLAGS_SAVE=$LDFLAGS
987 CFLAGS_SAVE=$CFLAGS
988 _LDFLAGS=`eval echo $LDFLAGS`
989 _CFLAGS=`eval echo $CFLAGS`
990 LDFLAGS=$_LDFLAGS
991 CFLAGS=$_CFLAGS
992
993 AC_RUN_IFELSE([AC_LANG_PROGRAM([[
994 #include "confdefs.h"
995 #if IS_WIN32
996 #include "windows.h"
997 #endif
998 #include <stdio.h>
999 #include <ftd2xx.h>
1000 ]], [[
1001 DWORD x;
1002 FT_GetLibraryVersion( &x );
1003 ]])], [
1004 AC_MSG_RESULT([Success!])
1005 ], [
1006 AC_MSG_ERROR([Cannot build & run test program using ftd2xx.lib])
1007 ], [
1008 AC_MSG_RESULT([Skipping as we are cross-compiling])
1009 ])
1010
1011 AC_MSG_CHECKING([for ftd2xx highspeed device support])
1012 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1013 #include "confdefs.h"
1014 #if IS_WIN32
1015 #include "windows.h"
1016 #endif
1017 #include <stdio.h>
1018 #include <ftd2xx.h>
1019
1020 DWORD x = FT_DEVICE_4232H;
1021 ]], [])], [
1022 AC_DEFINE([BUILD_FT2232_HIGHSPEED], [1],
1023 [Support FT2232H/FT4232HS with FTD2XX or libftdi.])
1024 build_ft2232_highspeed=yes
1025 ], [
1026 build_ft2232_highspeed=no
1027 ])
1028 AC_MSG_RESULT([$build_ft2232_highspeed])
1029
1030 if test $build_ft2232_highspeed = no; then
1031 AC_MSG_WARN([You need a newer FTD2XX driver (version 2.04.16 or later).])
1032 fi
1033
1034 AC_MSG_CHECKING([for ftd2xx FT232H device support])
1035 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1036 #include "confdefs.h"
1037 #if IS_WIN32
1038 #include "windows.h"
1039 #endif
1040 #include <stdio.h>
1041 #include <ftd2xx.h>
1042
1043 DWORD x = FT_DEVICE_232H;
1044 ]], [])], [
1045 AC_DEFINE([HAS_ENUM_FT232H], [1],
1046 [Support FT232H with FTD2XX or libftdi.])
1047 has_enum_ft232h=yes
1048 ], [
1049 has_enum_ft232h=no
1050 ])
1051 AC_MSG_RESULT([$has_enum_ft232h])
1052
1053 if test $has_enum_ft232h = no; then
1054 AC_MSG_WARN([You need a newer FTD2XX driver (version 2.08.12 or later).])
1055 fi
1056
1057 LDFLAGS=$LDFLAGS_SAVE
1058 CFLAGS=$CFLAGS_SAVE
1059 fi
1060
1061 if test $build_ft2232_libftdi = yes ; then
1062 # We assume: the package is preinstalled in the proper place
1063 # these present as 2 libraries..
1064 LIBS="$LIBS -lftdi -lusb"
1065 #
1066 # Try to build a small program.
1067 AC_MSG_CHECKING([Build & Link with libftdi...])
1068
1069 LDFLAGS_SAVE=$LDFLAGS
1070 CFLAGS_SAVE=$CFLAGS
1071 _LDFLAGS=`eval echo $LDFLAGS`
1072 _CFLAGS=`eval echo $CFLAGS`
1073 LDFLAGS=$_LDFLAGS
1074 CFLAGS=$_CFLAGS
1075
1076 AC_RUN_IFELSE([AC_LANG_PROGRAM([[
1077 #include <stdio.h>
1078 #include <ftdi.h>
1079 ]], [[
1080 struct ftdi_context *p;
1081 p = ftdi_new();
1082 if( p != NULL ){
1083 return 0;
1084 } else {
1085 fprintf( stderr, "calling ftdi_new() failed\n");
1086 return 1;
1087 }
1088 ]])], [
1089 AC_MSG_RESULT([Success])
1090 ], [
1091 AC_MSG_ERROR([Cannot build & run test program using libftdi])
1092 ], [
1093 AC_MSG_RESULT([Skipping as we are cross-compiling])
1094 ])
1095
1096 AC_MSG_CHECKING([for libftdi highspeed device support])
1097 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1098 #include <stdio.h>
1099 #include <ftdi.h>
1100 ]], [[
1101 enum ftdi_chip_type x = TYPE_2232H;
1102 ]])], [
1103 AC_DEFINE([BUILD_FT2232_HIGHSPEED], [1],
1104 [Support FT2232H/FT4232HS with FTD2XX or libftdi.])
1105 build_ft2232_highspeed=yes
1106 ], [
1107 build_ft2232_highspeed=no
1108 ])
1109 AC_MSG_RESULT([$build_ft2232_highspeed])
1110
1111 if test $build_ft2232_highspeed = no; then
1112 AC_MSG_WARN([You need a newer libftdi version (0.16 or later).])
1113 fi
1114
1115 AC_MSG_CHECKING([for libftdi FT232H device support])
1116 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1117 #include <stdio.h>
1118 #include <ftdi.h>
1119 ]], [[
1120 enum ftdi_chip_type x = TYPE_232H;
1121 ]])], [
1122 AC_DEFINE([HAS_ENUM_FT232H], [1],
1123 [Support FT232H with FTD2XX or libftdi.])
1124 has_enum_ft232h=yes
1125 ], [
1126 has_enum_ft232h=no
1127 ])
1128 AC_MSG_RESULT([$has_enum_ft232h])
1129
1130 if test $has_enum_ft232h = no; then
1131 AC_MSG_WARN([You need a newer libftdi version (0.20 or later).])
1132 fi
1133
1134 # Restore the 'unexpanded ldflags'
1135 LDFLAGS=$LDFLAGS_SAVE
1136 CFLAGS=$CFLAGS_SAVE
1137 fi
1138
1139 # check for usb.h when a driver will require it
1140 build_usb=no
1141 if test $build_vsllink = yes -o $build_usbprog = yes -o \
1142 $build_rlink = yes -o $build_ulink = yes -o $build_armjtagew = yes
1143 then
1144 build_usb=yes
1145 fi
1146
1147 # Check for libusb1 ported drivers.
1148 build_usb_ng=no
1149 if test $build_jlink = yes -o $build_hladapter_stlink = yes -o $build_osbdm = yes -o \
1150 $build_opendous = yes -o $build_ftdi = yes -o $build_hladapter_icdi = yes
1151 then
1152 build_usb_ng=yes
1153 fi
1154
1155 # check for libusb library if necessary
1156 use_libusb0=no
1157 use_libusb1=no
1158 if test $build_usb = yes -o $build_usb_ng = yes; then
1159 if test $check_libusb0 = no -a $build_usb_ng = yes; then
1160 AC_CHECK_HEADER([libusb-1.0/libusb.h],
1161 [AC_DEFINE(HAVE_LIBUSB1, 1, [Define if you have libusb-1.0]) check_libusb0=no use_libusb1=yes ],
1162 [ check_libusb0=yes use_libusb1=no ])
1163 fi
1164
1165 if test $check_libusb0 = yes -o $build_usb = yes; then
1166 AC_CHECK_HEADERS([usb.h], [use_libusb0=yes],
1167 [AC_MSG_ERROR([libusb or libusb-1.0 are required to build some OpenOCD driver(s)])])
1168 fi
1169 fi
1170
1171 AM_CONDITIONAL([RELEASE], [test $build_release = yes])
1172 AM_CONDITIONAL([PARPORT], [test $build_parport = yes])
1173 AM_CONDITIONAL([DUMMY], [test $build_dummy = yes])
1174 AM_CONDITIONAL([GIVEIO], [test x$parport_use_giveio = xyes])
1175 AM_CONDITIONAL([EP93XX], [test $build_ep93xx = yes])
1176 AM_CONDITIONAL([ZY1000], [test $build_zy1000 = yes])
1177 AM_CONDITIONAL([ZY1000_MASTER], [test $build_zy1000_master = yes])
1178 AM_CONDITIONAL([IOUTIL], [test $build_ioutil = yes])
1179 AM_CONDITIONAL([AT91RM9200], [test $build_at91rm9200 = yes])
1180 AM_CONDITIONAL([BITBANG], [test $build_bitbang = yes])
1181 AM_CONDITIONAL([FT2232_LIBFTDI], [test $build_ft2232_libftdi = yes])
1182 AM_CONDITIONAL([FT2232_DRIVER], [test $build_ft2232_ftd2xx = yes -o $build_ft2232_libftdi = yes])
1183 AM_CONDITIONAL([FTDI_DRIVER], [test $build_ftdi = yes])
1184 AM_CONDITIONAL([USB_BLASTER_LIBFTDI], [test $build_usb_blaster_libftdi = yes])
1185 AM_CONDITIONAL([USB_BLASTER_DRIVER], [test $build_usb_blaster_ftd2xx = yes -o $build_usb_blaster_libftdi = yes])
1186 AM_CONDITIONAL([AMTJTAGACCEL], [test $build_amtjtagaccel = yes])
1187 AM_CONDITIONAL([GW16012], [test $build_gw16012 = yes])
1188 AM_CONDITIONAL([PRESTO_LIBFTDI], [test $build_presto_libftdi = yes])
1189 AM_CONDITIONAL([PRESTO_DRIVER], [test $build_presto_ftd2xx = yes -o $build_presto_libftdi = yes])
1190 AM_CONDITIONAL([USBPROG], [test $build_usbprog = yes])
1191 AM_CONDITIONAL([OOCD_TRACE], [test $build_oocd_trace = yes])
1192 AM_CONDITIONAL([JLINK], [test $build_jlink = yes])
1193 AM_CONDITIONAL([VSLLINK], [test $build_vsllink = yes])
1194 AM_CONDITIONAL([RLINK], [test $build_rlink = yes])
1195 AM_CONDITIONAL([ULINK], [test $build_ulink = yes])
1196 AM_CONDITIONAL([ARMJTAGEW], [test $build_armjtagew = yes])
1197 AM_CONDITIONAL([REMOTE_BITBANG], [test $build_remote_bitbang = yes])
1198 AM_CONDITIONAL([BUSPIRATE], [test $build_buspirate = yes])
1199 AM_CONDITIONAL([HLADAPTER], [test $build_hladapter_stlink = yes -o $build_hladapter_icdi = yes])
1200 AM_CONDITIONAL([OSBDM], [test $build_osbdm = yes])
1201 AM_CONDITIONAL([OPENDOUS], [test $build_opendous = yes])
1202 AM_CONDITIONAL([SYSFSGPIO], [test $build_sysfsgpio = yes])
1203 AM_CONDITIONAL([USB], [test $build_usb = yes])
1204 AM_CONDITIONAL([USB_NG], [test $build_usb_ng = yes])
1205 AM_CONDITIONAL([USE_LIBUSB0], [test $use_libusb0 = yes])
1206 AM_CONDITIONAL([USE_LIBUSB1], [test $use_libusb1 = yes])
1207 AM_CONDITIONAL([IS_CYGWIN], [test $is_cygwin = yes])
1208 AM_CONDITIONAL([IS_MINGW], [test $is_mingw = ye]s)
1209 AM_CONDITIONAL([IS_WIN32], [test $is_win32 = ye]s)
1210 AM_CONDITIONAL([IS_DARWIN], [test $is_darwin = ye]s)
1211 AM_CONDITIONAL([BITQ], [test $build_bitq = yes])
1212
1213 AM_CONDITIONAL([MINIDRIVER], [test $build_minidriver = ye]s)
1214 AM_CONDITIONAL([MINIDRIVER_DUMMY], [test $build_minidriver_dummy = yes])
1215
1216 AM_CONDITIONAL([INTERNAL_JIMTCL], [test $use_internal_jimtcl = yes])
1217
1218 # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h?
1219 AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
1220 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1221 #define _GNU_SOURCE
1222 #include <unistd.h>
1223 #include <stdlib.h>
1224 ]], [[char **ep = environ;]]
1225 )], [
1226 AC_MSG_RESULT([yes])
1227 has_environ=yes
1228 ], [
1229 AC_MSG_RESULT([no])
1230
1231 # Possibility #2: can environ be found in an available library?
1232 AC_MSG_CHECKING([for extern environ])
1233 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1234 extern char **environ;
1235 ]], [[char **ep = environ;]]
1236 )], [
1237 AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
1238 has_environ=yes
1239 ], [
1240 has_environ=no
1241 ])
1242 AC_MSG_RESULT([${has_environ}])
1243 ])
1244
1245 if test "${has_environ}" != "yes" ; then
1246 AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
1247 fi
1248
1249 AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
1250
1251 # set default gcc warnings
1252 GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security -Wshadow"
1253 if test "${gcc_wextra}" = yes; then
1254 GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
1255 GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
1256 GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
1257 GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
1258 fi
1259 if test "${gcc_werror}" = yes; then
1260 GCC_WARNINGS="${GCC_WARNINGS} -Werror"
1261 fi
1262
1263 # overide default gcc cflags
1264 if test $gcc_warnings = yes; then
1265 CFLAGS="$CFLAGS $GCC_WARNINGS"
1266 fi
1267
1268 # Setup for compiling build tools
1269 AC_MSG_CHECKING([for a C compiler for build tools])
1270 if test $cross_compiling = yes; then
1271 AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
1272 CFLAGS_FOR_BUILD="-g -O2 $GCC_WARNINGS"
1273 else
1274 CC_FOR_BUILD=$CC
1275 CFLAGS_FOR_BUILD=$CFLAGS
1276 fi
1277
1278 AC_MSG_RESULT([$CC_FOR_BUILD])
1279 AC_SUBST([CC_FOR_BUILD])
1280 AC_SUBST([CFLAGS_FOR_BUILD])
1281
1282 AC_MSG_CHECKING([for suffix of executable build tools])
1283 if test $cross_compiling = yes; then
1284 cat >conftest.c <<\_______EOF
1285 int main ()
1286 {
1287 exit (0);
1288 }
1289 _______EOF
1290 for i in .exe ""; do
1291 compile="$CC_FOR_BUILD conftest.c -o conftest$i"
1292 if AC_TRY_EVAL(compile); then
1293 if (./conftest) 2>&AC_FD_CC; then
1294 EXEEXT_FOR_BUILD=$i
1295 break
1296 fi
1297 fi
1298 done
1299 rm -f conftest*
1300 if test "${EXEEXT_FOR_BUILD+set}" != set; then
1301 AC_MSG_ERROR([Cannot determine suffix of executable build tools])
1302 fi
1303 else
1304 EXEEXT_FOR_BUILD=$EXEEXT
1305 fi
1306 AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
1307 AC_SUBST([EXEEXT_FOR_BUILD])
1308
1309 AC_CONFIG_FILES([
1310 Makefile
1311 src/Makefile
1312 src/helper/Makefile
1313 src/jtag/Makefile
1314 src/jtag/drivers/Makefile
1315 src/jtag/hla/Makefile
1316 src/transport/Makefile
1317 src/xsvf/Makefile
1318 src/svf/Makefile
1319 src/target/Makefile
1320 src/rtos/Makefile
1321 src/server/Makefile
1322 src/flash/Makefile
1323 src/flash/nor/Makefile
1324 src/flash/nand/Makefile
1325 src/pld/Makefile
1326 doc/Makefile
1327 ])
1328 AC_OUTPUT

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)