riscv-openocd/configure.in

878 lines
27 KiB
Plaintext
Raw Normal View History

AC_PREREQ(2.59)
Update autotools scripts to require automake 1.6. The configure.in script already required autoconf 2.59 (circa 2006), so there is no reason to support versions of automake older than 1.6 (circa 2002). The first part of this patch upgrades the configure.in script: 1. Use current calling conventions for the AC_INIT and AM_INIT_AUTOMAKE macros, bringing their usage up-to-date with the version of autoconf already specified by AC_PREREQ. 2. Add AC_CONFIG_SRCDIR macro, required by new version of AC_INIT. 3. Automatically enable all of automake's warnings except Makefile portability (which OpenOCD violates by using GNU make's $(wildcard)). [[ While automake has its own -Werror option, I did not enabled it due to existing warnings. ]] 4. Add the missing AM_PROG_C_O check, required by the build rules for openocd.o in src/Makefile.am. 5. Adjust version number to show progress toward the next release. 6. Include a bug reporting e-mail address to direct users to this list. This patch makes the following adjustments to the Makefile.am files: 1. Update AUTOMAKE_OPTIONS to require automake version 1.6 2. Rewrite all deprecated INCLUDES assignments as AM_CPPFLAGS 3. Clean-up all AM_CPPFLAGS declarations to be patch-friendly. 4. Remove vestigial references to $(all_includes) 5. Remove erroneous references to @CPPFLAGS@ (only use AM_CPPFLAGS) 6. Remove unused -I and -D directives in helper/, flash/, target/ git-svn-id: svn://svn.berlios.de/openocd/trunk@1591 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-02 17:35:02 -05:00
AC_INIT([openocd], [0.2.0-in-development],
[OpenOCD Mailing List <openocd-development@lists.berlios.de>])
AC_CONFIG_SRCDIR([src/openocd.c])
AC_CANONICAL_HOST
AC_SEARCH_LIBS([ioperm], [ioperm])
AC_SEARCH_LIBS([dlopen], [dl])
AC_CHECK_HEADERS(jtag_minidriver.h)
AC_CHECK_HEADERS(sys/param.h)
AC_CHECK_HEADERS(sys/time.h)
AC_CHECK_HEADERS(sys/select.h)
AC_CHECK_HEADERS(elf.h)
AC_CHECK_HEADERS(strings.h)
AC_CHECK_HEADERS(stdbool.h)
AC_HEADER_TIME
AC_C_BIGENDIAN
AC_CHECK_FUNCS(strndup)
AC_CHECK_FUNCS(strnlen)
AC_CHECK_FUNCS(gettimeofday)
AC_CHECK_FUNCS(usleep)
AC_CHECK_FUNCS(vasprintf)
build_bitbang=no
build_bitq=no
is_cygwin=no
is_mingw=no
is_win32=no
is_darwin=no
build_release=yes
AC_ARG_ENABLE(release,
AS_HELP_STRING([--enable-release], [Enable Release Build, default no]),
[build_release=$enableval], [build_release=no])
if test $cross_compiling = no; then
if test $build_release = no; then
# check we can find guess-rev.sh
AC_CHECK_FILE("$srcdir/guess-rev.sh", build_release=no, build_release=yes)
fi
fi
# We are not *ALWAYS* being installed in the standard place.
# We may be installed in a "tool-build" specific location.
# Normally with other packages - as part of a tool distro.
# Thus - we should search that 'libdir' also.
#
# And - if we are being installed there - the odds are
# The libraries unique to what we are are there too.
#
# Expand nd deal with NONE - just like configure will do later
OCDprefix=$prefix
OCDxprefix=$exec_prefix
test x"$OCDprefix" = xNONE && OCDprefix=$ac_default_prefix
# Let make expand exec_prefix.
test x"$OCDxprefix" = xNONE && OCDxprefix="$OCDprefix"
# what matters is the "exec-prefix"
if test "$OCDxprefix" != "$ac_default_prefix"
then
# We are installing in a non-standard place
# Nonstandard --prefix and/or --exec-prefix
# We have an override of some sort.
# use build specific install library dir
LDFLAGS="$LDFLAGS -L$OCDxprefix/lib"
# RPATH becomes an issue on Linux only
if test $host_os = linux-gnu || test $host_os = linux ; then
LDFLAGS="$LDFLAGS -Wl,-rpath,$OCDxprefix/lib"
fi
# The "INCDIR" is also usable
CFLAGS="$CFLAGS -I$includedir"
fi
AC_ARG_WITH(ftd2xx,
AS_HELP_STRING([--with-ftd2xx=<PATH>],[This option has been removed.]),
[
# Option Given.
cat << __EOF__
The option: --with-ftd2xx=<PATH> has been removed.
On Linux, the new option is:
--with-ftd2xx-linux-tardir=/path/to/files
Where <path> is the path the the directory where the "tar.gz" file
from FTDICHIP.COM was unpacked, for example:
--with-ftd2xx-linux-tardir=/home/duane/libftd2xx-linux-tardir=/home/duane/libftd2xx0.4.16
On Cygwin/MingW32, the new option is:
--with-ftd2xx-win32-zipdir=/path/to/files
Where <path> is the path to the directory where the "zip" file from
FTDICHIP.COM was unpacked, for example:
--with-ftd2xx-win32-zipdir=/home/duane/ftd2xx.cdm.files
__EOF__
AC_MSG_ERROR([Sorry Cannot continue])
],
[
# Option not given
true
]
)
#========================================
# FTD2XXX support comes in 4 forms.
# (1) win32 - via a zip file
# (2) linux - via a tar file
# (3) linux/cygwin/mingw - via libftdi
# (4) darwin - installed under /usr/local
#
# In case (1) and (2) we need to know where the package was unpacked.
AC_ARG_WITH(ftd2xx-win32-zipdir,
AS_HELP_STRING([--with-ftd2xx-win32-zipdir],[Where (CYGWIN/MINGW) the zip file from ftdichip.com was unpacked <default=search>]),
[
# option present
if test -d $with_ftd2xx_win32_zipdir
then
with_ftd2xx_win32_zipdir=`cd $with_ftd2xx_win32_zipdir && pwd`
AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_win32_zipdir])
else
AC_MSG_ERROR([Parameter to --with-ftd2xx-win32-zipdir is not a dir: $with_ftd2xx_win32_zipdir])
fi
],
[
# not given
true
]
)
AC_ARG_WITH(ftd2xx-linux-tardir,
AS_HELP_STRING([--with-ftd2xx-linux-tardir], [Where (Linux/Unix) the tar file from ftdichip.com was unpacked <default=search>]),
[
# Option present
if test $is_win32 = yes ; then
AC_MSG_ERROR([The option: --with-ftd2xx-linux-tardir is only usable on linux])
fi
if test -d $with_ftd2xx_linux_tardir
then
with_ftd2xx_linux_tardir=`cd $with_ftd2xx_linux_tardir && pwd`
AC_MSG_NOTICE([Using: ftdichip.com library: $with_ftd2xx_linux_tardir])
else
AC_MSG_ERROR([Parameter to --with-ftd2xx-linux-tardir is not a dir: $with_ftd2xx_linux_tardir])
fi
],
[
# Not given
true
]
)
AC_ARG_WITH(ftd2xx-lib,
AS_HELP_STRING([--with-ftd2xx-lib], [Use static or shared ftd2xx libs on default static]),
[
case "$withval" in
static)
with_ftd2xx_lib=$withval
;;
shared)
with_ftd2xx_lib=$withval
;;
*)
AC_MSG_ERROR([Option: --with-ftd2xx-lib=static or --with-ftd2xx-lib=shared not, $withval])
;;
esac
],
[
# Default is static - it is simpler :-(
with_ftd2xx_lib=static
]
)
AC_ARG_ENABLE(gccwarnings,
AS_HELP_STRING([--disable-gccwarnings], [Disable compiler warnings]),
[gcc_warnings=$enableval], [gcc_warnings=yes])
AC_ARG_ENABLE(wextra,
AS_HELP_STRING([--disable-wextra], [Disable extra compiler warnings]),
[gcc_wextra=$enableval], [gcc_wextra=$gcc_warnings])
AC_ARG_ENABLE(werror,
AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
[gcc_werror=$enableval], [gcc_werror=$gcc_warnings])
# set default verbose options, overridden by following options
debug_jtag_io=no
debug_usb_io=no
debug_usb_comms=no
AC_ARG_ENABLE(verbose,
AS_HELP_STRING([--enable-verbose],
[Enable verbose JTAG I/O messages (for debugging).]),
[
debug_jtag_io=$enableval
debug_usb_io=$enableval
debug_usb_comms=$enableval
], [])
AC_ARG_ENABLE(verbose_jtag_io,
AS_HELP_STRING([--enable-verbose-jtag-io],
[Enable verbose JTAG I/O messages (for debugging).]),
[debug_jtag_io=$enableval], [])
AC_ARG_ENABLE(verbose_usb_io,
AS_HELP_STRING([--enable-verbose-usb-io],
[Enable verbose USB I/O messages (for debugging)]),
[debug_usb_io=$enableval], [])
AC_ARG_ENABLE(verbose_usb_comms,
AS_HELP_STRING([--enable-verbose-usb-comms],
[Enable verbose USB communication messages (for debugging)]),
[debug_usb_comms=$enableval], [])
AC_MSG_CHECKING([whether to enable verbose JTAG I/O messages]);
AC_MSG_RESULT($debug_jtag_io)
if test $debug_jtag_io = yes; then
AC_DEFINE([_DEBUG_JTAG_IO_],[1], [Print verbose JTAG I/O messages])
fi
AC_MSG_CHECKING([whether to enable verbose USB I/O messages]);
AC_MSG_RESULT($debug_usb_io)
if test $debug_usb_io = yes; then
AC_DEFINE([_DEBUG_USB_IO_],[1], [Print verbose USB I/O messages])
fi
AC_MSG_CHECKING([whether to enable verbose USB communication messages]);
AC_MSG_RESULT($debug_usb_comms)
if test $debug_usb_comms = yes; then
AC_DEFINE([_DEBUG_USB_COMMS_],[1], [Print verbose USB communication messages])
fi
AC_ARG_ENABLE(parport,
AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
[build_parport=$enableval], [build_parport=no])
AC_ARG_ENABLE(dummy,
AS_HELP_STRING([--enable-dummy], [Enable building the dummy port driver]),
[build_dummy=$enableval], [build_dummy=no])
case "${host_cpu}" in
i?86|x86*)
AC_ARG_ENABLE(parport_ppdev,
AS_HELP_STRING([--enable-parport_ppdev], [Enable use of ppdev (/dev/parportN) for parport]),
[parport_use_ppdev=$enableval], [parport_use_ppdev=no])
;;
*)
parport_use_ppdev=yes
;;
esac
AC_ARG_ENABLE(ft2232_libftdi,
AS_HELP_STRING([--enable-ft2232_libftdi], [Enable building support for FT2232 based devices using the libftdi driver, opensource alternate of FTD2XX]),
[build_ft2232_libftdi=$enableval], [build_ft2232_libftdi=no])
AC_ARG_ENABLE(ft2232_ftd2xx,
AS_HELP_STRING([--enable-ft2232_ftd2xx], [Enable building support for FT2232 based devices using the FTD2XX driver from ftdichip.com]),
[build_ft2232_ftd2xx=$enableval], [build_ft2232_ftd2xx=no])
AC_ARG_ENABLE(amtjtagaccel,
AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]),
[build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
AC_ARG_ENABLE(ecosboard,
AS_HELP_STRING([--enable-ecosboard], [Enable building support for eCosBoard based JTAG debugger]),
[build_ecosboard=$enableval], [build_ecosboard=no])
AC_ARG_ENABLE(ioutil,
AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]),
[build_ioutil=$enableval], [build_ioutil=no])
AC_ARG_ENABLE(httpd,
AS_HELP_STRING([--enable-httpd], [Enable builtin httpd server - useful for standalone OpenOCD implementations]),
[build_httpd=$enableval], [build_httpd=no])
case "${host_cpu}" in
arm*)
AC_ARG_ENABLE(ep93xx,
AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]),
[build_ep93xx=$enableval], [build_ep93xx=no])
AC_ARG_ENABLE(at91rm9200,
AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
[build_at91rm9200=$enableval], [build_at91rm9200=no])
;;
*)
build_ep93xx=no
build_at91rm9200=no
;;
esac
AC_ARG_ENABLE(gw16012,
AS_HELP_STRING([--enable-gw16012], [Enable building support for the Gateworks GW16012 JTAG Programmer]),
[build_gw16012=$enableval], [build_gw16012=no])
AC_ARG_ENABLE(presto_libftdi,
AS_HELP_STRING([--enable-presto_libftdi], [Enable building support for ASIX Presto Programmer using the libftdi driver]),
[build_presto_libftdi=$enableval], [build_presto_libftdi=no])
AC_ARG_ENABLE(presto_ftd2xx,
AS_HELP_STRING([--enable-presto_ftd2xx], [Enable building support for ASIX Presto Programmer using the FTD2XX driver]),
[build_presto_ftd2xx=$enableval], [build_presto_ftd2xx=no])
AC_ARG_ENABLE(usbprog,
AS_HELP_STRING([--enable-usbprog], [Enable building support for the usbprog JTAG Programmer]),
[build_usbprog=$enableval], [build_usbprog=no])
AC_ARG_ENABLE(oocd_trace,
AS_HELP_STRING([--enable-oocd_trace], [Enable building support for the OpenOCD+trace ETM capture device]),
[build_oocd_trace=$enableval], [build_oocd_trace=no])
AC_ARG_ENABLE(jlink,
AS_HELP_STRING([--enable-jlink], [Enable building support for the Segger J-Link JTAG Programmer]),
[build_jlink=$enableval], [build_jlink=no])
AC_ARG_ENABLE(vsllink,
AS_HELP_STRING([--enable-vsllink], [Enable building support for the Versaloon-Link JTAG Programmer]),
[build_vsllink=$enableval], [build_vsllink=no])
AC_ARG_ENABLE(rlink,
AS_HELP_STRING([--enable-rlink], [Enable building support for the Raisonance RLink JTAG Programmer]),
[build_rlink=$enableval], [build_rlink=no])
AC_ARG_ENABLE(arm-jtag-ew,
AS_HELP_STRING([--enable-arm-jtag-ew], [Enable building support for the Olimex ARM-JTAG-EW Programmer]),
[build_armjtagew=$enableval], [build_armjtagew=no])
case $host in
*-cygwin*)
is_win32=yes
AC_ARG_ENABLE(parport_giveio,
AS_HELP_STRING([--enable-parport_giveio], [Enable use of giveio for parport instead of ioperm]),
[parport_use_giveio=$enableval], [parport_use_giveio=no])
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[return __MINGW32__;]),[is_mingw=yes],[is_mingw=no])
if test $is_mingw = yes; then
AC_DEFINE(IS_MINGW, 1, [1 if building for MinGW.])
parport_use_giveio=yes
is_cygwin=no
else
is_cygwin=yes
AC_DEFINE(IS_CYGWIN, 1, [1 if building for Cygwin.])
fi
AC_DEFINE(IS_WIN32, 1, [1 if building for Win32.])
AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
;;
*-mingw*)
is_mingw=yes
is_win32=yes
parport_use_giveio=yes
AC_DEFINE(IS_MINGW, 1, [1 if building for MinGW.])
AC_DEFINE(IS_WIN32, 1, [1 if building for Win32.])
AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
;;
*darwin*)
is_darwin=yes
parport_use_giveio=no
AC_DEFINE(IS_CYGWIN, 0, [0 if not building for Cygwin.])
AC_DEFINE(IS_WIN32, 0, [0 if not building for Win32.])
AC_DEFINE(IS_DARWIN, 1, [1 if building for Darwin.])
;;
*)
parport_use_giveio=no
AC_DEFINE(IS_CYGWIN, 0, [0 if not building for Cygwin.])
AC_DEFINE(IS_WIN32, 0, [0 if not building for Win32.])
AC_DEFINE(IS_DARWIN, 0, [0 if not building for Darwin.])
;;
esac
if test $build_parport = yes; then
build_bitbang=yes
AC_DEFINE(BUILD_PARPORT, 1, [1 if you want parport.])
else
AC_DEFINE(BUILD_PARPORT, 0, [0 if you don't want parport.])
fi
if test $build_dummy = yes; then
build_bitbang=yes
AC_DEFINE(BUILD_DUMMY, 1, [1 if you want dummy driver.])
else
AC_DEFINE(BUILD_DUMMY, 0, [0 if you don't want dummy driver.])
fi
if test $build_ep93xx = yes; then
build_bitbang=yes
AC_DEFINE(BUILD_EP93XX, 1, [1 if you want ep93xx.])
else
AC_DEFINE(BUILD_EP93XX, 0, [0 if you don't want ep93xx.])
fi
if test $build_ecosboard = yes; then
build_bitbang=yes
AC_DEFINE(BUILD_ECOSBOARD, 1, [1 if you want eCosBoard.])
else
AC_DEFINE(BUILD_ECOSBOARD, 0, [0 if you don't want eCosBoard.])
fi
if test $build_ioutil = yes; then
AC_DEFINE(BUILD_IOUTIL, 1, [1 if you want ioutils.])
else
AC_DEFINE(BUILD_IOUTIL, 0, [0 if you don't want ioutils.])
fi
if test $build_httpd = yes; then
AC_DEFINE(BUILD_HTTPD, 1, [1 if you want httpd.])
else
AC_DEFINE(BUILD_HTTPD, 0, [0 if you don't want httpd.])
fi
if test $build_at91rm9200 = yes; then
build_bitbang=yes
AC_DEFINE(BUILD_AT91RM9200, 1, [1 if you want at91rm9200.])
else
AC_DEFINE(BUILD_AT91RM9200, 0, [0 if you don't want at91rm9200.])
fi
if test $parport_use_ppdev = yes; then
AC_DEFINE(PARPORT_USE_PPDEV, 1, [1 if you want parport to use ppdev.])
else
AC_DEFINE(PARPORT_USE_PPDEV, 0, [0 if you don't want parport to use ppdev.])
fi
if test $parport_use_giveio = yes; then
AC_DEFINE(PARPORT_USE_GIVEIO, 1, [1 if you want parport to use giveio.])
else
AC_DEFINE(PARPORT_USE_GIVEIO, 0, [0 if you don't want parport to use giveio.])
fi
if test $build_bitbang = yes; then
AC_DEFINE(BUILD_BITBANG, 1, [1 if you want a bitbang interface.])
else
AC_DEFINE(BUILD_BITBANG, 0, [0 if you don't want a bitbang interface.])
fi
if test $build_ft2232_libftdi = yes; then
AC_DEFINE(BUILD_FT2232_LIBFTDI, 1, [1 if you want libftdi ft2232.])
else
AC_DEFINE(BUILD_FT2232_LIBFTDI, 0, [0 if you don't want libftdi ft2232.])
fi
if test $build_ft2232_ftd2xx = yes; then
AC_DEFINE(BUILD_FT2232_FTD2XX, 1, [1 if you want ftd2xx ft2232.])
else
AC_DEFINE(BUILD_FT2232_FTD2XX, 0, [0 if you don't want ftd2xx ft2232.])
fi
if test $build_amtjtagaccel = yes; then
AC_DEFINE(BUILD_AMTJTAGACCEL, 1, [1 if you want the Amontec JTAG-Accelerator driver.])
else
AC_DEFINE(BUILD_AMTJTAGACCEL, 0, [0 if you don't want the Amontec JTAG-Accelerator driver.])
fi
if test $build_gw16012 = yes; then
AC_DEFINE(BUILD_GW16012, 1, [1 if you want the Gateworks GW16012 driver.])
else
AC_DEFINE(BUILD_GW16012, 0, [0 if you don't want the Gateworks GW16012 driver.])
fi
if test $build_presto_libftdi = yes; then
build_bitq=yes
AC_DEFINE(BUILD_PRESTO_LIBFTDI, 1, [1 if you want the ASIX PRESTO driver using libftdi.])
else
AC_DEFINE(BUILD_PRESTO_LIBFTDI, 0, [0 if you don't want the ASIX PRESTO driver using libftdi.])
fi
if test $build_presto_ftd2xx = yes; then
build_bitq=yes
AC_DEFINE(BUILD_PRESTO_FTD2XX, 1, [1 if you want the ASIX PRESTO driver using FTD2XX.])
else
AC_DEFINE(BUILD_PRESTO_FTD2XX, 0, [0 if you don't want the ASIX PRESTO driver using FTD2XX.])
fi
if test $build_bitq = yes; then
AC_DEFINE(BUILD_BITQ, 1, [1 if you want a bitq interface.])
else
AC_DEFINE(BUILD_BITQ, 0, [0 if you don't want a bitq interface.])
fi
if test $build_usbprog = yes; then
AC_DEFINE(BUILD_USBPROG, 1, [1 if you want the usbprog JTAG driver.])
else
AC_DEFINE(BUILD_USBPROG, 0, [0 if you don't want the usbprog JTAG driver.])
fi
if test $build_oocd_trace = yes; then
AC_DEFINE(BUILD_OOCD_TRACE, 1, [1 if you want the OpenOCD+trace ETM capture driver.])
else
AC_DEFINE(BUILD_OOCD_TRACE, 0, [0 if you don't want the OpenOCD+trace ETM capture driver.])
fi
if test $build_jlink = yes; then
AC_DEFINE(BUILD_JLINK, 1, [1 if you want the J-Link JTAG driver.])
else
AC_DEFINE(BUILD_JLINK, 0, [0 if you don't want the J-Link JTAG driver.])
fi
if test $build_vsllink = yes; then
AC_DEFINE(BUILD_VSLLINK, 1, [1 if you want the Versaloon-Link JTAG driver.])
else
AC_DEFINE(BUILD_VSLLINK, 0, [0 if you don't want the Versaloon-Link JTAG driver.])
fi
if test $build_rlink = yes; then
AC_DEFINE(BUILD_RLINK, 1, [1 if you want the RLink JTAG driver.])
else
AC_DEFINE(BUILD_RLINK, 0, [0 if you don't want the RLink JTAG driver.])
fi
if test $build_armjtagew = yes; then
AC_DEFINE(BUILD_ARMJTAGEW, 1, [1 if you want the ARM-JTAG-EW JTAG driver.])
else
AC_DEFINE(BUILD_ARMJTAGEW, 0, [0 if you don't want the ARM-JTAG-EW JTAG driver.])
fi
#-- Deal with MingW/Cygwin FTD2XX issues
if test $is_win32 = yes; then
if test "${with_ftd2xx_linux_tardir+set}" = set
then
AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
fi
if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
# if we are given a zipdir...
if test "${with_ftd2xx_win32_zipdir+set}" = set
then
# Set the CFLAGS for "ftd2xx.h"
f=$with_ftd2xx_win32_zipdir/ftd2xx.h
if test ! -f $f ; then
AC_MSG_ERROR([File: $f cannot be found])
fi
CFLAGS="$CFLAGS -I$with_ftd2xx_win32_zipdir"
# And calculate the LDFLAGS for the machine
case "$host_cpu" in
i?86|x86_*)
LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/i386"
LIBS="$LIBS -lftd2xx"
f=$with_ftd2xx_win32_zipdir/i386/ftd2xx.lib
;;
amd64)
LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/amd64"
LIBS="$LIBS -lftd2xx"
f=$with_ftd2xx_win32_zipdir/amd64/ftd2xx.lib
;;
*)
AC_MSG_ERROR([Unknown Win32 host cpu: $host_cpu])
;;
esac
if test ! -f $f ; then
AC_MSG_ERROR([Library: $f not found])
fi
else
LIBS="$LIBS -lftd2xx"
AC_MSG_WARN([ASSUMPTION: The (win32) FTDICHIP.COM files: ftd2xx.h and ftd2xx.lib are in a proper place])
fi
fi
fi
if test $is_darwin = yes ; then
if test "${with_ftd2xx_win32_zipdir+set}" = set
then
AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
fi
if test "${with_ftd2xx_linux_tardir+set}" = set
then
AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
fi
if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
AC_MSG_CHECKING([for libftd2xx.a (darwin)])
if test ! -f /usr/local/include/ftd2xx.h ; then
AC_MSG_ERROR([ftd2xx library from FTDICHIP.com seems to be missing, cannot find: /usr/local/include/ftd2xx.h])
fi
CFLAGS="$CFLAGS -I/usr/local/include"
LDFLAGS="$LDFLAGS -L/usr/local/lib"
LIBS="$LIBS -lftd2xx"
AC_MSG_RESULT([-L/usr/local/lib -lftd2xx])
fi
fi
if test $is_win32 = no && test $is_darwin = no ; then
if test "${with_ftd2xx_win32_zipdir+set}" = set
then
AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
fi
if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes ; then
# Must be linux
if test $host_os != linux-gnu && test $host_os != linux ; then
AC_MSG_ERROR([The (linux) ftd2xx library from FTDICHIP.com is linux only. Try --enable-ft2232-libftdi instead])
fi
# Are we given a TAR directory?
if test "${with_ftd2xx_linux_tardir+set}" = set
then
AC_MSG_CHECKING([uninstalled ftd2xx distribution])
# The .H file is simple..
FTD2XX_H=$with_ftd2xx_linux_tardir/ftd2xx.h
if test ! -f "${FTD2XX_H}"; then
AC_MSG_ERROR([Option: --with-ftd2xx-linux-tardir appears wrong, cannot find: ${FTD2XX_H}])
fi
CFLAGS="$CFLAGS -I$with_ftd2xx_linux_tardir"
FTD2XX_LDFLAGS="-L$with_ftd2xx_linux_tardir"
FTD2XX_LIB="-lftd2xx"
if test $with_ftd2xx_lib != shared; then
# Test #1 - Future proof - if/when ftdichip fixes their distro.
# Try it with the simple ".a" suffix.
FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a"
if test -f "${FTD2XX_LIB}"; then
FTD2XX_LDFLAGS="${FTD2XX_LDFLAGS}/static_lib"
else
# Test Number2.
# Grr.. perhaps it exists as a version number?
FTD2XX_LIB="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a.*.*.*"
count=`ls ${FTD2XX_LIB} | wc -l`
if test $count -gt 1 ; then
AC_MSG_ERROR([Multiple libftd2xx.a files found in: $with_ftd2xx_linux_tardir/static_lib sorry cannot handle this yet])
fi
if test $count -ne 1 ; then
AC_MSG_ERROR([Not found: $f, option: --with-ftd2xx-linux-tardir appears to be wrong])
fi
# Because the "-l" rules do not understand version numbers...
# we will just stuff the absolute path onto the LIBS variable
FTD2XX_LIB="`ls ${FTD2XX_LIB}` -lpthread"
FTD2XX_LDFLAGS=""
fi
fi
LDFLAGS="${LDFLAGS} ${FTD2XX_LDFLAGS}"
LIBS="${LIBS} ${FTD2XX_LIB}"
AC_MSG_RESULT([${FTD2XX_LDFLAGS} ${FTD2XX_LIB}])
else
AC_CHECK_HEADER([ftd2xx.h],[],[
AC_MSG_ERROR([You seem to be missing the FTD2xx driver header file.])
])
AC_SEARCH_LIBS([FT_GetLibraryVersion],[ftd2xx],,[
AC_MSG_ERROR([You appear to be missing the FTD2xx driver library.])
],[])
fi
fi
fi
if test $build_ft2232_ftd2xx = yes -o $build_presto_ftd2xx = yes; then
# Before we go any further - make sure we can *BUILD* and *RUN*
# a simple app with the "ftd2xx.lib" file - in what ever form we where given
# We should be able to compile, link and run this test program now
AC_MSG_CHECKING([whether ftd2xx library works])
#
# Save the LDFLAGS for later..
LDFLAGS_SAVE=$LDFLAGS
CFLAGS_SAVE=$CFLAGS
_LDFLAGS=`eval echo $LDFLAGS`
_CFLAGS=`eval echo $CFLAGS`
LDFLAGS=$_LDFLAGS
CFLAGS=$_CFLAGS
AC_RUN_IFELSE(
[
#include "confdefs.h"
#if IS_WIN32
#include "windows.h"
#endif
#include <stdio.h>
#include <ftd2xx.h>
int
main( int argc, char **argv )
{
DWORD x;
FT_GetLibraryVersion( &x );
return 0;
}
], [ AC_MSG_RESULT([Success!])] , [ AC_MSG_ERROR([Cannot build & run test program using ftd2xx.lib]) ] )
LDFLAGS=$LDFLAGS_SAVE
CFLAGS=$CFLAGS_SAVE
fi
if test $build_ft2232_libftdi = yes ; then
# We assume: the package is preinstalled in the proper place
# these present as 2 libraries..
LIBS="$LIBS -lftdi -lusb"
#
# Try to build a small program.
AC_MSG_CHECKING([Build & Link with libftdi...])
LDFLAGS_SAVE=$LDFLAGS
CFLAGS_SAVE=$CFLAGS
_LDFLAGS=`eval echo $LDFLAGS`
_CFLAGS=`eval echo $CFLAGS`
LDFLAGS=$_LDFLAGS
CFLAGS=$_CFLAGS
AC_RUN_IFELSE(
[
#include <stdio.h>
#include <ftdi.h>
int
main( int argc, char **argv )
{
struct ftdi_context *p;
p = ftdi_new();
if( p != NULL ){
return 0;
} else {
fprintf( stderr, "calling ftdi_new() failed\n");
return 1;
}
}
]
,
[ AC_MSG_RESULT([Success]) ]
,
[ AC_MSG_ERROR([Cannot build & run test program using libftdi]) ] )
# Restore the 'unexpanded ldflags'
LDFLAGS=$LDFLAGS_SAVE
CFLAGS=$CFLAGS_SAVE
fi
# check for usb.h when a driver will require it
if test $build_jlink = yes -o $build_vsllink = yes -o $build_usbprog = yes -o \
$build_rlink = yes -o $build_armjtagew = yes
then
AC_CHECK_HEADERS([usb.h],[],
[AC_MSG_ERROR([usb.h is required to build some OpenOCD driver(s)])])
fi
AM_CONFIG_HEADER(config.h)
Update autotools scripts to require automake 1.6. The configure.in script already required autoconf 2.59 (circa 2006), so there is no reason to support versions of automake older than 1.6 (circa 2002). The first part of this patch upgrades the configure.in script: 1. Use current calling conventions for the AC_INIT and AM_INIT_AUTOMAKE macros, bringing their usage up-to-date with the version of autoconf already specified by AC_PREREQ. 2. Add AC_CONFIG_SRCDIR macro, required by new version of AC_INIT. 3. Automatically enable all of automake's warnings except Makefile portability (which OpenOCD violates by using GNU make's $(wildcard)). [[ While automake has its own -Werror option, I did not enabled it due to existing warnings. ]] 4. Add the missing AM_PROG_C_O check, required by the build rules for openocd.o in src/Makefile.am. 5. Adjust version number to show progress toward the next release. 6. Include a bug reporting e-mail address to direct users to this list. This patch makes the following adjustments to the Makefile.am files: 1. Update AUTOMAKE_OPTIONS to require automake version 1.6 2. Rewrite all deprecated INCLUDES assignments as AM_CPPFLAGS 3. Clean-up all AM_CPPFLAGS declarations to be patch-friendly. 4. Remove vestigial references to $(all_includes) 5. Remove erroneous references to @CPPFLAGS@ (only use AM_CPPFLAGS) 6. Remove unused -I and -D directives in helper/, flash/, target/ git-svn-id: svn://svn.berlios.de/openocd/trunk@1591 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-02 17:35:02 -05:00
AM_INIT_AUTOMAKE([-Wall -Wno-portability])
AM_MAINTAINER_MODE
AM_CONDITIONAL(RELEASE, test $build_release = yes)
AM_CONDITIONAL(PARPORT, test $build_parport = yes)
AM_CONDITIONAL(DUMMY, test $build_dummy = yes)
AM_CONDITIONAL(GIVEIO, test $parport_use_giveio = yes)
AM_CONDITIONAL(EP93XX, test $build_ep93xx = yes)
AM_CONDITIONAL(ECOSBOARD, test $build_ecosboard = yes)
AM_CONDITIONAL(IOUTIL, test $build_ioutil = yes)
AM_CONDITIONAL(HTTPD, test $build_httpd = yes)
AM_CONDITIONAL(AT91RM9200, test $build_at91rm9200 = yes)
AM_CONDITIONAL(BITBANG, test $build_bitbang = yes)
AM_CONDITIONAL(FT2232_LIBFTDI, test $build_ft2232_libftdi = yes)
AM_CONDITIONAL(FT2232_FTD2XX, test $build_ft2232_ftd2xx = yes)
AM_CONDITIONAL(AMTJTAGACCEL, test $build_amtjtagaccel = yes)
AM_CONDITIONAL(GW16012, test $build_gw16012 = yes)
AM_CONDITIONAL(PRESTO_LIBFTDI, test $build_presto_libftdi = yes)
AM_CONDITIONAL(PRESTO_FTD2XX, test $build_presto_ftd2xx = yes)
AM_CONDITIONAL(USBPROG, test $build_usbprog = yes)
AM_CONDITIONAL(OOCD_TRACE, test $build_oocd_trace = yes)
AM_CONDITIONAL(JLINK, test $build_jlink = yes)
AM_CONDITIONAL(VSLLINK, test $build_vsllink = yes)
AM_CONDITIONAL(RLINK, test $build_rlink = yes)
AM_CONDITIONAL(ARMJTAGEW, test $build_armjtagew = yes)
AM_CONDITIONAL(IS_CYGWIN, test $is_cygwin = yes)
AM_CONDITIONAL(IS_MINGW, test $is_mingw = yes)
AM_CONDITIONAL(IS_WIN32, test $is_win32 = yes)
AM_CONDITIONAL(IS_DARWIN, test $is_darwin = yes)
AM_CONDITIONAL(BITQ, test $build_bitq = yes)
AC_LANG_C
AC_PROG_CC
AC_PROG_CC_C99
Update autotools scripts to require automake 1.6. The configure.in script already required autoconf 2.59 (circa 2006), so there is no reason to support versions of automake older than 1.6 (circa 2002). The first part of this patch upgrades the configure.in script: 1. Use current calling conventions for the AC_INIT and AM_INIT_AUTOMAKE macros, bringing their usage up-to-date with the version of autoconf already specified by AC_PREREQ. 2. Add AC_CONFIG_SRCDIR macro, required by new version of AC_INIT. 3. Automatically enable all of automake's warnings except Makefile portability (which OpenOCD violates by using GNU make's $(wildcard)). [[ While automake has its own -Werror option, I did not enabled it due to existing warnings. ]] 4. Add the missing AM_PROG_C_O check, required by the build rules for openocd.o in src/Makefile.am. 5. Adjust version number to show progress toward the next release. 6. Include a bug reporting e-mail address to direct users to this list. This patch makes the following adjustments to the Makefile.am files: 1. Update AUTOMAKE_OPTIONS to require automake version 1.6 2. Rewrite all deprecated INCLUDES assignments as AM_CPPFLAGS 3. Clean-up all AM_CPPFLAGS declarations to be patch-friendly. 4. Remove vestigial references to $(all_includes) 5. Remove erroneous references to @CPPFLAGS@ (only use AM_CPPFLAGS) 6. Remove unused -I and -D directives in helper/, flash/, target/ git-svn-id: svn://svn.berlios.de/openocd/trunk@1591 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-02 17:35:02 -05:00
AM_PROG_CC_C_O
AC_PROG_RANLIB
# Look for environ alternatives. Possibility #1: is environ in unistd.h?
AC_MSG_CHECKING([for environ in unistd.h])
AC_COMPILE_IFELSE([
#define _GNU_SOURCE
#include <unistd.h>
int main(int argc, char **argv) { char **ep = environ; }
], [
AC_MSG_RESULT([yes])
has_environ=yes
], [
AC_MSG_RESULT([no])
# Possibility #2: can environ be found in an available library?
AC_MSG_CHECKING([for extern environ])
AC_LINK_IFELSE([
extern char **environ;
int main(int argc, char **argv) { char **ep = environ; }
], [
AC_DEFINE(NEED_ENVIRON_EXTERN, [1], [Must declare 'environ' to use it.])
has_environ=yes
], [
has_environ=no
])
AC_MSG_RESULT([${has_environ}])
])
if test "${has_environ}" != "yes" ; then
AC_MSG_FAILURE([Could not find 'environ' in unistd.h or available libraries.])
fi
# set default gcc warnings
GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security"
if test "${gcc_wextra}" = yes; then
GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
GCC_WARNINGS="${GCC_WARNINGS} -Wcast-align"
GCC_WARNINGS="${GCC_WARNINGS} -Wredundant-decls"
fi
if test "${gcc_werror}" = yes; then
GCC_WARNINGS="${GCC_WARNINGS} -Werror"
fi
# overide default gcc cflags
if test $gcc_warnings = yes; then
CFLAGS="$CFLAGS $GCC_WARNINGS"
fi
# Setup for compiling build tools
AC_MSG_CHECKING([for a C compiler for build tools])
if test $cross_compiling = yes; then
AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
CFLAGS_FOR_BUILD="-g -O2 $GCC_WARNINGS"
else
CC_FOR_BUILD=$CC
CFLAGS_FOR_BUILD=$CFLAGS
fi
AC_MSG_RESULT([$CC_FOR_BUILD])
AC_SUBST(CC_FOR_BUILD)
AC_SUBST(CFLAGS_FOR_BUILD)
AC_MSG_CHECKING([for suffix of executable build tools])
if test $cross_compiling = yes; then
cat >conftest.c <<\_______EOF
int main ()
{
exit (0);
}
_______EOF
for i in .exe ""; do
compile="$CC_FOR_BUILD conftest.c -o conftest$i"
if AC_TRY_EVAL(compile); then
if (./conftest) 2>&AC_FD_CC; then
EXEEXT_FOR_BUILD=$i
break
fi
fi
done
rm -f conftest*
if test "${EXEEXT_FOR_BUILD+set}" != set; then
AC_MSG_ERROR([Cannot determine suffix of executable build tools])
fi
else
EXEEXT_FOR_BUILD=$EXEEXT
fi
AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
AC_SUBST(EXEEXT_FOR_BUILD)
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)