]> git.sur5r.net Git - openocd/blobdiff - configure.in
Add jtag_queue_command() by Michael Bruck <mbruck@digenius.de> [2/8]
[openocd] / configure.in
index 67a4b98f481b132ec47d0644b313f0f182c5c2ac..e46f06f8d9c30035ac94957aa7c864510318a19b 100644 (file)
@@ -1,18 +1,52 @@
-AC_PREREQ(2.59)
-AC_INIT(configure.in)
+AC_PREREQ(2.60)
+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(arpa/inet.h)
+AC_CHECK_HEADERS(elf.h)
+AC_CHECK_HEADERS(dirent.h)
+AC_CHECK_HEADERS(fcntl.h)
+AC_CHECK_HEADERS(ifaddrs.h)
 AC_CHECK_HEADERS(jtag_minidriver.h)
+AC_CHECK_HEADERS(malloc.h)
+AC_CHECK_HEADERS(netdb.h)
+AC_CHECK_HEADERS(netinet/in.h)
+AC_CHECK_HEADERS(netinet/tcp.h)
+AC_CHECK_HEADERS(pthread.h)
+AC_CHECK_HEADERS(strings.h)
+AC_CHECK_HEADERS(sys/ioctl.h)
 AC_CHECK_HEADERS(sys/param.h)
+AC_CHECK_HEADERS(sys/poll.h)
+AC_CHECK_HEADERS(sys/select.h)
+AC_CHECK_HEADERS(sys/socket.h)
+AC_CHECK_HEADERS(sys/stat.h)
 AC_CHECK_HEADERS(sys/time.h)
-AC_CHECK_HEADERS(elf.h)
-AC_CHECK_HEADERS(strings.h)
-AC_CHECK_HEADERS(stdbool.h)
+AC_CHECK_HEADERS(sys/types.h)
+AC_CHECK_HEADERS(unistd.h)
 
+AC_CHECK_HEADERS([net/if.h], [], [], [dnl
+#include <stdio.h>
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+# include <sys/socket.h>
+#endif
+])
+
+AC_HEADER_ASSERT
+AC_HEADER_STDBOOL
 AC_HEADER_TIME
 
 AC_C_BIGENDIAN
@@ -28,6 +62,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 +145,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.
 
@@ -216,7 +252,7 @@ AC_ARG_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_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])
@@ -235,6 +271,19 @@ if test $debug_usb_comms = yes; then
 fi
 
 
+debug_malloc=no
+AC_ARG_ENABLE(malloc_logging,
+       AS_HELP_STRING([--enable-malloc-logging],
+               [Include free space in logging messages (requires malloc.h).]), 
+       [debug_malloc=$enableval], [])
+
+AC_MSG_CHECKING([whether to enable malloc free space logging]);
+AC_MSG_RESULT($debug_malloc)
+if test $debug_malloc = yes; then
+  AC_DEFINE([_DEBUG_FREE_SPACE_],[1], [Include malloc free space in logging])
+fi
+
+
 AC_ARG_ENABLE(parport,
   AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]), 
   [build_parport=$enableval], [build_parport=no])
@@ -350,6 +399,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
@@ -359,11 +409,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
 
@@ -520,7 +581,7 @@ then
    AC_MSG_ERROR([The option: with_ftd2xx_linux_tardir is for LINUX only.])
 fi
 
-if test $build_ft2232_ftd2xx = yes ; then
+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...
@@ -559,16 +620,39 @@ 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 -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 ; then
-   # Must be linux -
-   # Cause FTDICHIP does not supply a MAC-OS version
+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
@@ -621,7 +705,7 @@ if test $build_ft2232_ftd2xx = yes ; then
 fi
 fi
 
-if test $build_ft2232_ftd2xx = yes; then
+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
@@ -699,8 +783,21 @@ 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)
-AM_INIT_AUTOMAKE(openocd, 1.0)
+AH_BOTTOM([
+#include "system.h"
+#include "replacements.h"
+])
+
+AM_INIT_AUTOMAKE([-Wall -Wno-portability])
 AM_MAINTAINER_MODE
 
 AM_CONDITIONAL(RELEASE, test $build_release = yes)
@@ -728,16 +825,60 @@ 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
+AM_PROG_CC_C_O
 AC_PROG_RANLIB
+AC_PROG_LIBTOOL
+
+dnl configure checks required for Jim files (these are obsolete w/ C99)
+AC_C_CONST
+AC_TYPE_LONG_LONG_INT
+
+# Look for environ alternatives.  Possibility #1: is environ in unistd.h or stdlib.h?
+AC_MSG_CHECKING([for environ in unistd.h and stdlib.h])
+AC_COMPILE_IFELSE([
+#define _GNU_SOURCE
+#include <unistd.h>
+#include <stdlib.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
+
+AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
 
 # 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"