- add guess-rev.sh and contrib/libdcc to dist
[openocd.git] / configure.in
1 AC_PREREQ(2.59)
2 AC_INIT(configure.in)
3
4 AC_CANONICAL_HOST
5
6 AC_SEARCH_LIBS([ioperm], [ioperm])
7 AC_SEARCH_LIBS([dlopen], [dl])
8
9 AC_CHECK_HEADERS(jtag_minidriver.h)
10 AC_CHECK_HEADERS(sys/param.h)
11 AC_CHECK_HEADERS(sys/time.h)
12 AC_CHECK_HEADERS(elf.h)
13 AC_CHECK_HEADERS(strings.h)
14
15 AC_HEADER_TIME
16
17 AC_C_BIGENDIAN
18
19 AC_CHECK_FUNCS(strndup)
20 AC_CHECK_FUNCS(strnlen)
21 AC_CHECK_FUNCS(gettimeofday)
22 AC_CHECK_FUNCS(usleep)
23 AC_CHECK_FUNCS(vasprintf)
24
25 build_bitbang=no
26 build_bitq=no
27 is_cygwin=no
28 is_mingw=no
29 is_win32=no
30
31 # We are not *ALWAYS* being installed in the standard place.
32 # We may be installed in a "tool-build" specific location.
33 # Normally with other packages - as part of a tool distro.
34 # Thus - we should search that 'libdir' also.
35 #
36 # And - if we are being installed there - the odds are
37 # The libraries unique to what we are are there too.
38 #
39
40 # Expand nd deal with NONE - just like configure will do later
41 OCDprefix=$prefix
42 OCDxprefix=$exec_prefix
43 test x"$OCDprefix"  = xNONE && OCDprefix=$ac_default_prefix
44 # Let make expand exec_prefix.
45 test x"$OCDxprefix" = xNONE && OCDxprefix="$OCDprefix"
46
47 # what matters is the "exec-prefix"
48 if test "$OCDxprefix" != "$ac_default_prefix"
49 then
50     # We are installing in a non-standard place
51     # Nonstandard --prefix and/or --exec-prefix
52     # We have an override of some sort.
53     # use build specific install library dir
54     
55     LDFLAGS="$LDFLAGS -L$OCDxprefix/lib"
56     # RPATH becomes an issue on Linux only
57     if test $host_os = linux-gnu || test $host_os = linux ; then
58         LDFLAGS="$LDFLAGS -Wl,-rpath,$OCDxprefix/lib"
59     fi
60     # The "INCDIR" is also usable
61     CFLAGS="$CFLAGS -I$includedir"
62 fi
63
64 AC_ARG_WITH(ftd2xx,
65    AS_HELP_STRING([--with-ftd2xx=<PATH>],[This option has been removed.]),
66 [
67 # Option Given.
68 cat << __EOF__
69
70 The option: --with-ftd2xx=<PATH> has been removed replaced.
71 On Linux, the new option is:
72   
73   --with-ftd2xx-linux-tardir=/path/to/files
74
75 Where <path> is the path the the directory where the "tar.gz" file
76 from FTDICHIP.COM was unpacked, for example:
77
78   --with-ftd2xx-linux-tardir=/home/duane/libftd2xx-linux-tardir=/home/duane/libftd2xx0.4.16
79
80 On Cygwin/MingW32, the new option is:
81
82   --with-ftd2xx-win32-zipdir=/path/to/files
83
84 Where <path> is the path to the directory where the "zip" file from
85 FTDICHIP.COM was unpacked, for example:
86
87   --with-ftd2xx-win32-zipdir=/home/duane/ftd2xx.cdm.files
88
89 __EOF__
90
91    AC_MSG_ERROR([Sorry Cannot continue])
92 ],
93
94 # Option not given
95 true
96 ]
97 )
98
99 #========================================
100 # FTD2XXX support comes in 3 forms.
101 #    (1) win32 - via a zip file
102 #    (2) linux - via a tar file
103 #    (3) linux/cygwin/mingw - via libftdi
104 #
105 # In case (1) and (2) we need to know where the package was unpacked.
106
107 AC_ARG_WITH(ftd2xx-win32-zipdir,
108   AS_HELP_STRING([--with-ftd2xx-win32-zipdir],[Where (CYGWIN/MINGW) the zip file from ftdichip.com was unpacked <default=search>]),
109   [
110   # option present
111   if test -d $with_ftd2xx_win32_zipdir
112   then
113         with_ftd2xx_win32_zipdir=`cd $with_ftd2xx_win32_zipdir && pwd`
114         AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_win32_zipdir])
115   else
116         AC_MSG_ERROR([Parameter to --with-ftd2xx-win32-zipdir is not a dir: $with_ftd2xx_win32_zipdir])
117   fi
118   ],
119   [
120   # not given
121   true
122   ]
123 )
124
125 AC_ARG_WITH(ftd2xx-linux-tardir,
126   AS_HELP_STRING([--with-ftd2xx-linux-tardir], [Where (Linux/Unix) the tar file from ftdichip.com was unpacked <default=search>]),
127   [
128   # Option present
129   if test $is_win32 = yes ; then
130      AC_MSG_ERROR([The option: --with-ftd2xx-linux-tardir is only usable on linux])
131   fi
132   if test -d $with_ftd2xx_linux_tardir
133   then
134         with_ftd2xx_linux_tardir=`cd $with_ftd2xx_linux_tardir && pwd`
135         AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_linux_tardir])
136   else
137         AC_MSG_ERROR([Parameter to --with-ftd2xx-linux-tardir is not a dir: $with_ftd2xx_linux_tardir])
138   fi
139   ],
140   [
141   # Not given 
142   true
143   ]
144 )
145
146 AC_ARG_WITH(ftd2xx-lib,
147         AS_HELP_STRING([--with-ftd2xx-lib], [Use static or shared ftd2xx libs on default static]),
148 [
149 case "$withval" in
150 static)
151         with_ftd2xx_lib=$withval
152         ;;
153 shared)
154         with_ftd2xx_lib=$withval
155         ;;
156 *)
157         AC_MSG_ERROR([Option: --with-ftd2xx-lib=static or --with-ftd2xx-lib=shared not, $withval])
158         ;;
159 esac
160 ],
161 [
162         # Default is static - it is simpler :-(
163         with_ftd2xx_lib=static
164 ]
165 )
166
167 AC_ARG_ENABLE(gccwarnings,
168         AS_HELP_STRING([--enable-gccwarnings], [Enable compiler warnings, default yes]),
169         [gcc_warnings=$enableval], [gcc_warnings=yes])
170
171 AC_ARG_ENABLE(parport,
172   AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]), 
173   [build_parport=$enableval], [build_parport=no])
174
175 AC_ARG_ENABLE(dummy,
176   AS_HELP_STRING([--enable-dummy], [Enable building the dummy port driver]), 
177   [build_dummy=$enableval], [build_dummy=no])
178   
179 case "${host_cpu}" in 
180   i?86|x86*)
181     AC_ARG_ENABLE(parport_ppdev,
182       AS_HELP_STRING([--enable-parport_ppdev], [Enable use of ppdev (/dev/parportN) for parport]), 
183       [parport_use_ppdev=$enableval], [parport_use_ppdev=no])
184     ;;
185   *) 
186     parport_use_ppdev=yes
187     ;;
188 esac
189
190 AC_ARG_ENABLE(ft2232_libftdi,
191   AS_HELP_STRING([--enable-ft2232_libftdi], [Enable building support for FT2232 based devices using the libftdi driver, opensource alternate of FTD2XX]), 
192   [build_ft2232_libftdi=$enableval], [build_ft2232_libftdi=no])
193
194 AC_ARG_ENABLE(ft2232_ftd2xx,
195   AS_HELP_STRING([--enable-ft2232_ftd2xx], [Enable building support for FT2232 based devices using the FTD2XX driver from ftdichip.com]), 
196   [build_ft2232_ftd2xx=$enableval], [build_ft2232_ftd2xx=no])
197  
198 AC_ARG_ENABLE(amtjtagaccel,
199   AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]), 
200   [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
201
202 AC_ARG_ENABLE(ecosboard,
203   AS_HELP_STRING([--enable-ecosboard], [Enable building support for eCosBoard based JTAG debugger]), 
204   [build_ecosboard=$enableval], [build_ecosboard=no])
205
206 AC_ARG_ENABLE(ioutil,
207   AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]), 
208   [build_ioutil=$enableval], [build_ioutil=no])
209
210 AC_ARG_ENABLE(httpd,
211   AS_HELP_STRING([--enable-httpd], [Enable builtin httpd server - useful for standalone OpenOCD implementations]), 
212   [build_httpd=$enableval], [build_httpd=no])
213
214 case "${host_cpu}" in 
215   arm*)
216     AC_ARG_ENABLE(ep93xx,
217       AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]), 
218       [build_ep93xx=$enableval], [build_ep93xx=no])
219
220     AC_ARG_ENABLE(at91rm9200,
221       AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
222       [build_at91rm9200=$enableval], [build_at91rm9200=no])
223     ;;
224     
225   *) 
226     build_ep93xx=no
227     build_at91rm9200=no
228     ;;
229 esac
230
231 AC_ARG_ENABLE(gw16012,
232   AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
233   [build_gw16012=$enableval], [build_gw16012=no])
234
235 AC_ARG_ENABLE(presto_libftdi,
236   AS_HELP_STRING([--enable-presto_libftdi], [Enable building support for ASIX Presto Programmer using the libftdi driver]),
237   [build_presto_libftdi=$enableval], [build_presto_libftdi=no])
238
239 AC_ARG_ENABLE(presto_ftd2xx,
240   AS_HELP_STRING([--enable-presto_ftd2xx], [Enable building support for ASIX Presto Programmer using the FTD2XX driver]),
241   [build_presto_ftd2xx=$enableval], [build_presto_ftd2xx=no])
242
243 AC_ARG_ENABLE(usbprog,
244   AS_HELP_STRING([--enable-usbprog], [Enable building support for the usbprog JTAG Programmer]),
245   [build_usbprog=$enableval], [build_usbprog=no])
246
247 AC_ARG_ENABLE(oocd_trace,
248   AS_HELP_STRING([--enable-oocd_trace], [Enable building support for the OpenOCD+trace ETM capture device]),
249   [build_oocd_trace=$enableval], [build_oocd_trace=no])
250
251 AC_ARG_ENABLE(jlink,
252   AS_HELP_STRING([--enable-jlink], [Enable building support for the Segger J-Link JTAG Programmer]),
253   [build_jlink=$enableval], [build_jlink=no])
254
255 AC_ARG_ENABLE(vsllink,
256   AS_HELP_STRING([--enable-vsllink], [Enable building support for the Versaloon-Link JTAG Programmer]),
257   [build_vsllink=$enableval], [build_vsllink=no])
258
259 AC_ARG_ENABLE(rlink,
260   AS_HELP_STRING([--enable-rlink], [Enable building support for the Raisonance RLink JTAG Programmer]),
261   [build_rlink=$enableval], [build_rlink=no])
262
263 case $host in 
264   *-cygwin*) 
265     is_win32=yes
266
267     AC_ARG_ENABLE(parport_giveio,
268     AS_HELP_STRING([--enable-parport_giveio], [Enable use of giveio for parport instead of ioperm]), 
269     [parport_use_giveio=$enableval], [parport_use_giveio=no])
270         
271         AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[return __MINGW32__;]),[is_mingw=yes],[is_mingw=no])
272         if test $is_mingw = yes; then
273                 AC_DEFINE(IS_MINGW, 1, [1 if building for MinGW.])
274                 parport_use_giveio=yes
275                 is_cygwin=no
276         else
277                 is_cygwin=yes
278                 AC_DEFINE(IS_CYGWIN, 1, [1 if building for Cygwin.])
279         fi
280         
281     AC_DEFINE(IS_WIN32, 1, [1 if building for Win32.])
282     ;; 
283   *-mingw*) 
284     is_mingw=yes
285     is_win32=yes
286
287     parport_use_giveio=yes
288
289     AC_DEFINE(IS_MINGW, 1, [1 if building for MinGW.])
290     AC_DEFINE(IS_WIN32, 1, [1 if building for Win32.])
291     ;; 
292   *) 
293         parport_use_giveio=no
294     AC_DEFINE(IS_CYGWIN, 0, [0 if not building for Cygwin.])
295     AC_DEFINE(IS_WIN32, 0, [0 if not building for Win32.])
296     ;;
297 esac
298
299 if test $build_parport = yes; then
300   build_bitbang=yes
301   AC_DEFINE(BUILD_PARPORT, 1, [1 if you want parport.])
302 else
303   AC_DEFINE(BUILD_PARPORT, 0, [0 if you don't want parport.])
304 fi
305
306 if test $build_dummy = yes; then
307   build_bitbang=yes
308   AC_DEFINE(BUILD_DUMMY, 1, [1 if you want dummy driver.])
309 else
310   AC_DEFINE(BUILD_DUMMY, 0, [0 if you don't want dummy driver.])
311 fi
312
313 if test $build_ep93xx = yes; then
314   build_bitbang=yes
315   AC_DEFINE(BUILD_EP93XX, 1, [1 if you want ep93xx.])
316 else
317   AC_DEFINE(BUILD_EP93XX, 0, [0 if you don't want ep93xx.])
318 fi
319
320 if test $build_ecosboard = yes; then
321   build_bitbang=yes
322   AC_DEFINE(BUILD_ECOSBOARD, 1, [1 if you want eCosBoard.])
323 else
324   AC_DEFINE(BUILD_ECOSBOARD, 0, [0 if you don't want eCosBoard.])
325 fi
326
327 if test $build_ioutil = yes; then
328   AC_DEFINE(BUILD_IOUTIL, 1, [1 if you want ioutils.])
329 else
330   AC_DEFINE(BUILD_IOUTIL, 0, [0 if you don't want ioutils.])
331 fi
332
333 if test $build_httpd = yes; then
334   AC_DEFINE(BUILD_HTTPD, 1, [1 if you want httpd.])
335 else
336   AC_DEFINE(BUILD_HTTPD, 0, [0 if you don't want httpd.])
337 fi
338
339 if test $build_at91rm9200 = yes; then
340   build_bitbang=yes
341   AC_DEFINE(BUILD_AT91RM9200, 1, [1 if you want at91rm9200.])
342 else
343   AC_DEFINE(BUILD_AT91RM9200, 0, [0 if you don't want at91rm9200.])
344 fi
345
346 if test $parport_use_ppdev = yes; then
347   AC_DEFINE(PARPORT_USE_PPDEV, 1, [1 if you want parport to use ppdev.])
348 else
349   AC_DEFINE(PARPORT_USE_PPDEV, 0, [0 if you don't want parport to use ppdev.])
350 fi
351
352 if test $parport_use_giveio = yes; then
353   AC_DEFINE(PARPORT_USE_GIVEIO, 1, [1 if you want parport to use giveio.])
354 else
355   AC_DEFINE(PARPORT_USE_GIVEIO, 0, [0 if you don't want parport to use giveio.])
356 fi
357
358 if test $build_bitbang = yes; then
359   AC_DEFINE(BUILD_BITBANG, 1, [1 if you want a bitbang interface.])
360 else
361   AC_DEFINE(BUILD_BITBANG, 0, [0 if you don't want a bitbang interface.])
362 fi
363
364 if test $build_ft2232_libftdi = yes; then
365   AC_DEFINE(BUILD_FT2232_LIBFTDI, 1, [1 if you want libftdi ft2232.])
366 else
367   AC_DEFINE(BUILD_FT2232_LIBFTDI, 0, [0 if you don't want libftdi ft2232.])
368 fi
369
370 if test $build_ft2232_ftd2xx = yes; then
371   AC_DEFINE(BUILD_FT2232_FTD2XX, 1, [1 if you want ftd2xx ft2232.])
372 else
373   AC_DEFINE(BUILD_FT2232_FTD2XX, 0, [0 if you don't want ftd2xx ft2232.])
374 fi
375
376 if test $build_amtjtagaccel = yes; then
377   AC_DEFINE(BUILD_AMTJTAGACCEL, 1, [1 if you want the Amontec JTAG-Accelerator driver.])
378 else
379   AC_DEFINE(BUILD_AMTJTAGACCEL, 0, [0 if you don't want the Amontec JTAG-Accelerator driver.])
380 fi
381
382 if test $build_gw16012 = yes; then
383   AC_DEFINE(BUILD_GW16012, 1, [1 if you want the Gateworks GW16012 driver.])
384 else
385   AC_DEFINE(BUILD_GW16012, 0, [0 if you don't want the Gateworks GW16012 driver.])
386 fi
387
388 if test $build_presto_libftdi = yes; then
389   build_bitq=yes
390   AC_DEFINE(BUILD_PRESTO_LIBFTDI, 1, [1 if you want the ASIX PRESTO driver using libftdi.])
391 else
392   AC_DEFINE(BUILD_PRESTO_LIBFTDI, 0, [0 if you don't want the ASIX PRESTO driver using libftdi.])
393 fi
394
395 if test $build_presto_ftd2xx = yes; then
396   build_bitq=yes
397   AC_DEFINE(BUILD_PRESTO_FTD2XX, 1, [1 if you want the ASIX PRESTO driver using FTD2XX.])
398 else
399   AC_DEFINE(BUILD_PRESTO_FTD2XX, 0, [0 if you don't want the ASIX PRESTO driver using FTD2XX.])
400 fi
401
402 if test $build_bitq = yes; then
403   AC_DEFINE(BUILD_BITQ, 1, [1 if you want a bitq interface.])
404 else
405   AC_DEFINE(BUILD_BITQ, 0, [0 if you don't want a bitq interface.])
406 fi
407
408 if test $build_usbprog = yes; then
409   AC_DEFINE(BUILD_USBPROG, 1, [1 if you want the usbprog JTAG driver.])
410 else
411   AC_DEFINE(BUILD_USBPROG, 0, [0 if you don't want the usbprog JTAG driver.])
412 fi
413
414 if test $build_oocd_trace = yes; then
415   AC_DEFINE(BUILD_OOCD_TRACE, 1, [1 if you want the OpenOCD+trace ETM capture driver.])
416 else
417   AC_DEFINE(BUILD_OOCD_TRACE, 0, [0 if you don't want the OpenOCD+trace ETM capture driver.])
418 fi
419
420 if test $build_jlink = yes; then
421   AC_DEFINE(BUILD_JLINK, 1, [1 if you want the J-Link JTAG driver.])
422 else
423   AC_DEFINE(BUILD_JLINK, 0, [0 if you don't want the J-Link JTAG driver.])
424 fi
425
426 if test $build_vsllink = yes; then
427   AC_DEFINE(BUILD_VSLLINK, 1, [1 if you want the Versaloon-Link JTAG driver.])
428 else
429   AC_DEFINE(BUILD_VSLLINK, 0, [0 if you don't want the Versaloon-Link JTAG driver.])
430 fi
431
432 if test $build_rlink = yes; then
433   AC_DEFINE(BUILD_RLINK, 1, [1 if you want the RLink JTAG driver.])
434 else
435   AC_DEFINE(BUILD_RLINK, 0, [0 if you don't want the RLink JTAG driver.])
436 fi
437
438 #-- Deal with MingW/Cygwin FTD2XX issues
439
440 if test $is_win32 = yes; then
441 if test "${with_ftd2xx_linux_tardir+set}" = set
442 then
443    AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
444 fi
445
446 if test $build_ft2232_ftd2xx = yes ; then
447 AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
448
449    # if we are given a zipdir...
450    if test "${with_ftd2xx_win32_zipdir+set}" = set
451    then
452       # Set the CFLAGS for "ftd2xx.h"
453       f=$with_ftd2xx_win32_zipdir/ftd2xx.h
454       if test ! -f $f ; then
455          AC_MSG_ERROR([File: $f cannot be found])
456       fi
457       CFLAGS="$CFLAGS -I$with_ftd2xx_win32_zipdir"
458
459       # And calculate the LDFLAGS for the machine
460       case "$host_cpu" in
461       i?86|x86_*)
462         LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/i386"
463         LIBS="$LIBS -lftd2xx"
464         f=$with_ftd2xx_win32_zipdir/i386/ftd2xx.lib
465         ;;
466       amd64)
467         LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/amd64"
468         LIBS="$LIBS -lftd2xx"
469         f=$with_ftd2xx_win32_zipdir/amd64/ftd2xx.lib
470         ;;
471       *)
472         AC_MSG_ERROR([Unknown Win32 host cpu: $host_cpu])
473         ;;
474        esac
475        if test ! -f $f ; then
476           AC_MSG_ERROR([Library: $f not found])
477        fi
478    else
479       LIBS="$LIBS -lftd2xx"
480       AC_MSG_WARN([ASSUMPTION: The (win32) FTDICHIP.COM files: ftd2xx.h and ftd2xx.lib are in a proper place])
481    fi
482 fi
483 fi
484
485 if test $is_win32 = no; then
486
487 if test "${with_ftd2xx_win32_zipdir+set}" = set
488 then
489    AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
490 fi
491
492 if test $build_ft2232_ftd2xx = yes ; then
493    AC_MSG_CHECKING([for libftd2xx.a (linux)])
494    # Must be linux -
495    # Cause FTDICHIP does not supply a MAC-OS version
496    if test $host_os != linux-gnu && test $host_os != linux ; then
497       AC_MSG_ERROR([The (linux) ftd2xx library from FTDICHIP.com is linux only. Try --enable-ft2232-libftdi instead])
498    fi
499    # Are we given a TAR directory?
500    if test "${with_ftd2xx_linux_tardir+set}" = set
501    then
502         # The .H file is simple..
503         f=$with_ftd2xx_linux_tardir/ftd2xx.h
504         if test ! -f $f ; then
505            AC_MSG_ERROR([Option: --with-ftd2xx-linux-tardir appears wrong, cannot find: $f])
506         fi
507         CFLAGS="$CFLAGS -I$with_ftd2xx_linux_tardir"
508         if test $with_ftd2xx_lib = shared
509         then
510             LDFLAGS="$LDFLAGS -L$with_ftd2xx_linux_tardir"
511             LIBS="$LIBS -lftd2xx"
512             AC_MSG_RESULT([ Assuming: -L$with_ftd2xx_linux_tardir -lftd2xx])
513         else
514             # Test #1 - Future proof - if/when ftdichip fixes their distro.
515             # Try it with the simple ".a" suffix.
516             f=$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a
517             if test -f $f ; then
518                # Yea we are done
519                LDFLAGS="$LDFLAGS -L$with_ftd2xx_linux_tardir/static_lib"
520                LIBS="$LIBS -lftd2xx"
521             else
522                # Test Number2.
523                # Grr.. perhaps it exists as a version number?
524                f="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a.*.*.*"
525                count=`ls $f | wc -l`
526                if test $count -gt 1 ; then
527                   AC_MSG_ERROR([Multiple libftd2xx.a files found in: $with_ftd2xx_linux_tardir/static_lib sorry cannot handle this yet])
528                fi
529                if test $count -ne 1 ; then
530                   AC_MSG_ERROR([Not found: $f, option: --with-ftd2xx-linux-tardir appears to be wrong])
531                fi
532                # Because the "-l" rules do not understand version numbers...
533                # we will just stuff the absolute path onto the LIBS variable
534                f=`ls $f`
535                #
536                LIBS="$LIBS $f -lpthread"
537                # No need to bother with LDFLAGS...
538             fi
539             AC_MSG_RESULT([Found: $f])
540         fi
541    else
542         LIBS="$LIBS -lftd2xx"
543         AC_MSG_RESULT([Assumed: installed])
544         AC_MSG_WARN([The (linux) FTDICHIP.COM files ftd2xx.h and libftd2xx.so are assumed to be in a proper place])
545    fi
546 fi
547 fi
548
549 if test $build_ft2232_ftd2xx = yes; then
550
551 # Before we go any further - make sure we can *BUILD* and *RUN*
552 # a simple app with the "ftd2xx.lib" file - in what ever form we where given
553 # We should be able to compile, link and run this test program now
554   AC_MSG_CHECKING([Test: Build & Link with ftd2xx])
555
556 #
557 # Save the LDFLAGS for later..
558 LDFLAGS_SAVE=$LDFLAGS
559 CFLAGS_SAVE=$CFLAGS
560 _LDFLAGS=`eval echo $LDFLAGS`
561 _CFLAGS=`eval echo $CFLAGS`
562 LDFLAGS=$_LDFLAGS
563 CFLAGS=$_CFLAGS
564   AC_RUN_IFELSE(
565 [
566 #include "confdefs.h"
567 #if IS_WIN32
568 #include "windows.h"
569 #endif
570 #include <stdio.h>
571 #include <ftd2xx.h>
572
573 int
574 main( int argc, char **argv )
575 {
576         DWORD x;
577         FT_GetLibraryVersion( &x );
578         return 0;
579 }
580 ], [ AC_MSG_RESULT([Success!])] , [ AC_MSG_ERROR([Cannot build & run test program using ftd2xx.lib]) ] )
581 LDFLAGS=$LDFLAGS_SAVE
582 CFLAGS=$CFLAGS_SAVE
583 fi
584
585 if test $build_ft2232_libftdi = yes ; then
586    # We assume: the package is preinstalled in the proper place
587    # these present as 2 libraries..
588    LIBS="$LIBS -lftdi -lusb"
589    # 
590    # Try to build a small program.
591    AC_MSG_CHECKING([Build & Link with libftdi...])
592
593 LDFLAGS_SAVE=$LDFLAGS
594 CFLAGS_SAVE=$CFLAGS
595 _LDFLAGS=`eval echo $LDFLAGS`
596 _CFLAGS=`eval echo $CFLAGS`
597 LDFLAGS=$_LDFLAGS
598 CFLAGS=$_CFLAGS
599
600    AC_RUN_IFELSE(
601 [
602 #include <stdio.h>
603 #include <ftdi.h>
604
605 int
606 main( int argc, char **argv )
607 {
608         struct ftdi_context *p;
609         p = ftdi_new();
610         if( p != NULL ){
611             return 0;
612         } else {
613             fprintf( stderr, "calling ftdi_new() failed\n");
614             return 1;
615         }
616 }
617 ]
618
619 [ AC_MSG_RESULT([Success]) ]
620
621 [ AC_MSG_ERROR([Cannot build & run test program using libftdi]) ] )
622 # Restore the 'unexpanded ldflags'
623 LDFLAGS=$LDFLAGS_SAVE
624 CFLAGS=$CFLAGS_SAVE
625 fi
626
627 AM_CONFIG_HEADER(config.h)
628 AM_INIT_AUTOMAKE(openocd, 1.0)
629
630 AM_CONDITIONAL(PARPORT, test $build_parport = yes)
631 AM_CONDITIONAL(DUMMY, test $build_dummy = yes)
632 AM_CONDITIONAL(GIVEIO, test $parport_use_giveio = yes)
633 AM_CONDITIONAL(EP93XX, test $build_ep93xx = yes)
634 AM_CONDITIONAL(ECOSBOARD, test $build_ecosboard = yes)
635 AM_CONDITIONAL(IOUTIL, test $build_ioutil = yes)
636 AM_CONDITIONAL(HTTPD, test $build_httpd = yes)
637 AM_CONDITIONAL(AT91RM9200, test $build_at91rm9200 = yes)
638 AM_CONDITIONAL(BITBANG, test $build_bitbang = yes)
639 AM_CONDITIONAL(FT2232_LIBFTDI, test $build_ft2232_libftdi = yes)
640 AM_CONDITIONAL(FT2232_FTD2XX, test $build_ft2232_ftd2xx = yes)
641 AM_CONDITIONAL(AMTJTAGACCEL, test $build_amtjtagaccel = yes)
642 AM_CONDITIONAL(GW16012, test $build_gw16012 = yes)
643 AM_CONDITIONAL(PRESTO_LIBFTDI, test $build_presto_libftdi = yes)
644 AM_CONDITIONAL(PRESTO_FTD2XX, test $build_presto_ftd2xx = yes)
645 AM_CONDITIONAL(USBPROG, test $build_usbprog = yes)
646 AM_CONDITIONAL(OOCD_TRACE, test $build_oocd_trace = yes)
647 AM_CONDITIONAL(JLINK, test $build_jlink = yes)
648 AM_CONDITIONAL(VSLLINK, test $build_vsllink = yes)
649 AM_CONDITIONAL(RLINK, test $build_rlink = yes)
650 AM_CONDITIONAL(IS_CYGWIN, test $is_cygwin = yes)
651 AM_CONDITIONAL(IS_MINGW, test $is_mingw = yes)
652 AM_CONDITIONAL(IS_WIN32, test $is_win32 = yes)
653 AM_CONDITIONAL(BITQ, test $build_bitq = yes)
654
655 AC_LANG_C
656 AC_PROG_CC
657 AC_PROG_RANLIB
658
659 # set default gcc warnings
660 GCC_WARNINGS="-Wall -Wstrict-prototypes"
661
662 # overide default gcc cflags
663 if test $gcc_warnings = yes; then
664         CFLAGS="$CFLAGS $GCC_WARNINGS"
665 fi
666
667 # Setup for compiling build tools
668 AC_MSG_CHECKING([for a C compiler for build tools])
669 if test $cross_compiling = yes; then
670         AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
671         CFLAGS_FOR_BUILD="-g -O2 $GCC_WARNINGS"
672 else
673         CC_FOR_BUILD=$CC
674         CFLAGS_FOR_BUILD=$CFLAGS
675 fi
676
677 AC_MSG_RESULT([$CC_FOR_BUILD])
678 AC_SUBST(CC_FOR_BUILD)
679 AC_SUBST(CFLAGS_FOR_BUILD)
680
681 AC_MSG_CHECKING([for suffix of executable build tools])
682 if test $cross_compiling = yes; then
683         cat >conftest.c <<\_______EOF
684 int main ()
685 {
686         exit (0);
687 }
688 _______EOF
689 for i in .exe ""; do
690     compile="$CC_FOR_BUILD conftest.c -o conftest$i"
691     if AC_TRY_EVAL(compile); then
692                 if (./conftest) 2>&AC_FD_CC; then
693                         EXEEXT_FOR_BUILD=$i
694                         break
695                         fi
696                 fi
697 done
698         rm -f conftest*
699         if test "${EXEEXT_FOR_BUILD+set}" != set; then
700                 AC_MSG_ERROR([Cannot determine suffix of executable build tools])
701         fi
702 else
703         EXEEXT_FOR_BUILD=$EXEEXT
704 fi
705 AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
706 AC_SUBST(EXEEXT_FOR_BUILD)
707
708 AC_OUTPUT(Makefile src/Makefile src/helper/Makefile src/jtag/Makefile src/xsvf/Makefile src/target/Makefile src/server/Makefile src/flash/Makefile src/pld/Makefile doc/Makefile)