X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=configure.in;h=8da7005d6d29d9beaa70ae7d4d063fade25143ac;hp=632aaf8a29aab74070a19967e03dd7f3cb2bc425;hb=6a8583ebc4af0f6622f6ab0c1fc063cb72425a5d;hpb=0ebf92b45c1c475c324c1fd1da534426de13dd3a diff --git a/configure.in b/configure.in index 632aaf8a29..8da7005d6d 100644 --- a/configure.in +++ b/configure.in @@ -1,18 +1,31 @@ -AC_PREREQ(2.59) -AC_INIT(configure.in) +AC_PREREQ(2.60) +AC_INIT([openocd], [0.2.0-in-development], + [OpenOCD Mailing List ]) +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(fcntl.h) +AC_CHECK_HEADERS(ifaddrs.h) AC_CHECK_HEADERS(jtag_minidriver.h) +AC_CHECK_HEADERS(malloc.h) +AC_CHECK_HEADERS(netinet/in.h) +AC_CHECK_HEADERS(pthread.h) +AC_CHECK_HEADERS(strings.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/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_HEADER_ASSERT +AC_HEADER_STDBOOL AC_HEADER_TIME AC_C_BIGENDIAN @@ -237,6 +250,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]) @@ -534,7 +560,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... @@ -583,7 +609,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 @@ -604,7 +630,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]) @@ -658,7 +684,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 @@ -736,8 +762,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) @@ -770,12 +804,50 @@ 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 + +# 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 +#include +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"