X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=configure.in;h=42fd5fd639334e15777d193d7916d46e27a68eeb;hp=158d451fba4a5a02ced7617848e31086f0cd145a;hb=f29b2da6588359be11b99e58ad33fa4881a2d11f;hpb=a2c1cbe3e3aa7a8f9de92acc0189ee03be0fa66e diff --git a/configure.in b/configure.in index 158d451fba..42fd5fd639 100644 --- a/configure.in +++ b/configure.in @@ -28,6 +28,7 @@ build_bitq=no is_cygwin=no is_mingw=no is_win32=no +is_darwin=no build_release=yes AC_ARG_ENABLE(release, @@ -110,10 +111,11 @@ true ) #======================================== -# FTD2XXX support comes in 3 forms. +# 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. @@ -189,6 +191,51 @@ 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 JTAB 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]), @@ -305,6 +352,7 @@ case $host in 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 @@ -314,11 +362,22 @@ case $host in 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 @@ -514,7 +573,31 @@ AC_MSG_CHECKING([for ftd2xx.lib exists (win32)]) fi fi -if test $is_win32 = no; then +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 ; 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 @@ -522,39 +605,33 @@ then fi if test $build_ft2232_ftd2xx = yes ; then - AC_MSG_CHECKING([for libftd2xx.a (linux)]) - # Must be linux - - # Cause FTDICHIP does not supply a MAC-OS version + # 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.. - f=$with_ftd2xx_linux_tardir/ftd2xx.h - if test ! -f $f ; then - AC_MSG_ERROR([Option: --with-ftd2xx-linux-tardir appears wrong, cannot find: $f]) + 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" - if test $with_ftd2xx_lib = shared - then - LDFLAGS="$LDFLAGS -L$with_ftd2xx_linux_tardir" - LIBS="$LIBS -lftd2xx" - AC_MSG_RESULT([ Assuming: -L$with_ftd2xx_linux_tardir -lftd2xx]) - else + 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. - f=$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a - if test -f $f ; then - # Yea we are done - LDFLAGS="$LDFLAGS -L$with_ftd2xx_linux_tardir/static_lib" - LIBS="$LIBS -lftd2xx" + 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? - f="$with_ftd2xx_linux_tardir/static_lib/libftd2xx.a.*.*.*" - count=`ls $f | wc -l` + 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 @@ -563,17 +640,20 @@ if test $build_ft2232_ftd2xx = yes ; then fi # Because the "-l" rules do not understand version numbers... # we will just stuff the absolute path onto the LIBS variable - f=`ls $f` - # - LIBS="$LIBS $f -lpthread" - # No need to bother with LDFLAGS... + FTD2XX_LIB="`ls ${FTD2XX_LIB}` -lpthread" + FTD2XX_LDFLAGS="" fi - AC_MSG_RESULT([Found: $f]) fi + LDFLAGS="${LDFLAGS} ${FTD2XX_LDFLAGS}" + LIBS="${LIBS} ${FTD2XX_LIB}" + AC_MSG_RESULT([${FTD2XX_LDFLAGS} ${FTD2XX_LIB}]) else - LIBS="$LIBS -lftd2xx" - AC_MSG_RESULT([Assumed: installed]) - AC_MSG_WARN([The (linux) FTDICHIP.COM files ftd2xx.h and libftd2xx.so are assumed to be in a proper place]) + 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 @@ -583,7 +663,7 @@ if test $build_ft2232_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([Test: Build & Link with ftd2xx]) + AC_MSG_CHECKING([whether ftd2xx library works]) # # Save the LDFLAGS for later.. @@ -685,6 +765,7 @@ 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 @@ -692,7 +773,7 @@ AC_PROG_CC AC_PROG_RANLIB # set default gcc warnings -GCC_WARNINGS="-Wall -Wstrict-prototypes" +GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security" if test "${gcc_wextra}" = yes; then GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter" fi