profiling numbers
[fw/openocd] / configure.in
index 364a3d88cd3655ab0527cdc930fcfdd396bfc340..bbd22d1efd23a06d838199e1af64d4b5a2485b57 100644 (file)
@@ -1,18 +1,23 @@
 AC_PREREQ(2.59)
-AC_INIT(configure.in)
+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(elf.h)
+AC_CHECK_HEADERS(ifaddrs.h)
 AC_CHECK_HEADERS(jtag_minidriver.h)
+AC_CHECK_HEADERS(malloc.h)
+AC_CHECK_HEADERS(pthread.h)
+AC_CHECK_HEADERS(stdbool.h)
+AC_CHECK_HEADERS(strings.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
 
@@ -535,7 +540,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...
@@ -584,7 +589,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 libftd2xx.a (darwin)])
 
    if test ! -f /usr/local/include/ftd2xx.h ; then
@@ -605,7 +610,7 @@ then
    AC_MSG_ERROR([The option: --with-ftd2xx-win32-zipdir is for win32 only])
 fi
 
-if test $build_ft2232_ftd2xx = yes ; then
+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])
@@ -659,7 +664,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
@@ -737,8 +742,16 @@ 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)
+AM_INIT_AUTOMAKE([-Wall -Wno-portability])
 AM_MAINTAINER_MODE
 
 AM_CONDITIONAL(RELEASE, test $build_release = yes)
@@ -771,14 +784,48 @@ 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
 
+# 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"