Nico Coesel <ncoesel@dealogic.nl> MIPS32 speedup patches
[fw/openocd] / configure.in
index 638a73f7f62fbbd8c7f323838aca9d7bf88e48ea..458bb0c6ea9e93205c4cf69420a708b4e6022491 100644 (file)
@@ -11,6 +11,7 @@ AC_CHECK_HEADERS(sys/param.h)
 AC_CHECK_HEADERS(sys/time.h)
 AC_CHECK_HEADERS(elf.h)
 AC_CHECK_HEADERS(strings.h)
+AC_CHECK_HEADERS(stdbool.h)
 
 AC_HEADER_TIME
 
@@ -27,6 +28,18 @@ build_bitq=no
 is_cygwin=no
 is_mingw=no
 is_win32=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.
@@ -44,7 +57,6 @@ 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
@@ -55,8 +67,7 @@ then
     
     LDFLAGS="$LDFLAGS -L$OCDxprefix/lib"
     # RPATH becomes an issue on Linux only
-    if test $host_os = linux-gnu || $host_os = linux
-    then
+    if test $host_os = linux-gnu || test $host_os = linux ; then
        LDFLAGS="$LDFLAGS -Wl,-rpath,$OCDxprefix/lib"
     fi
     # The "INCDIR" is also usable
@@ -69,7 +80,7 @@ AC_ARG_WITH(ftd2xx,
 # Option Given.
 cat << __EOF__
 
-The option: --with-ftd2xx=<PATH> has been removed replaced.
+The option: --with-ftd2xx=<PATH> has been removed.
 On Linux, the new option is:
   
   --with-ftd2xx-linux-tardir=/path/to/files
@@ -123,7 +134,6 @@ AC_ARG_WITH(ftd2xx-win32-zipdir,
   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>]),
@@ -146,7 +156,6 @@ AC_ARG_WITH(ftd2xx-linux-tardir,
   ]
 )
 
-
 AC_ARG_WITH(ftd2xx-lib,
        AS_HELP_STRING([--with-ftd2xx-lib], [Use static or shared ftd2xx libs on default static]),
 [
@@ -169,9 +178,18 @@ esac
 )
 
 AC_ARG_ENABLE(gccwarnings,
-       AS_HELP_STRING([--enable-gccwarnings], [Enable compiler warnings, default yes]),
+       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])
+
+
 AC_ARG_ENABLE(parport,
   AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]), 
   [build_parport=$enableval], [build_parport=no])
@@ -264,6 +282,9 @@ 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*) 
@@ -315,7 +336,6 @@ 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.])
@@ -441,6 +461,12 @@ 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
@@ -465,12 +491,12 @@ AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
       # And calculate the LDFLAGS for the machine
       case "$host_cpu" in
       i?86|x86_*)
-       LDFLAGS="$LFLAGS -L$with_ftd2xx_win32_zipdir/i386"
+       LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/i386"
        LIBS="$LIBS -lftd2xx"
        f=$with_ftd2xx_win32_zipdir/i386/ftd2xx.lib
        ;;
       amd64)
-       LDFLAGS="$LFLAGS -L$with_ftd2xx_win32_zipdir/amd64"
+       LDFLAGS="$LDFLAGS -L$with_ftd2xx_win32_zipdir/amd64"
        LIBS="$LIBS -lftd2xx"
        f=$with_ftd2xx_win32_zipdir/amd64/ftd2xx.lib
        ;;
@@ -488,7 +514,6 @@ AC_MSG_CHECKING([for ftd2xx.lib exists (win32)])
 fi
 fi
 
-
 if test $is_win32 = no; then
 
 if test "${with_ftd2xx_win32_zipdir+set}" = set
@@ -497,39 +522,34 @@ 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
-   if test $host_os != linux-gnu && $host_os != linux ; then
+   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
@@ -538,17 +558,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
@@ -558,7 +581,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..
@@ -630,12 +653,12 @@ main( int argc, char **argv )
 LDFLAGS=$LDFLAGS_SAVE
 CFLAGS=$CFLAGS_SAVE
 fi
-   
-
 
 AM_CONFIG_HEADER(config.h)
 AM_INIT_AUTOMAKE(openocd, 1.0)
+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)
@@ -656,6 +679,7 @@ 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)
@@ -666,7 +690,13 @@ 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
+if test "${gcc_werror}" = yes; then
+       GCC_WARNINGS="${GCC_WARNINGS} -Werror"
+fi
 
 # overide default gcc cflags
 if test $gcc_warnings = yes; then
@@ -714,6 +744,4 @@ fi
 AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
 AC_SUBST(EXEEXT_FOR_BUILD)
 
-#AC_SUBST(WITH_FTD2XX, $with_ftd2xx)
-
-AC_OUTPUT(Makefile src/Makefile src/helper/Makefile src/jtag/Makefile src/xsvf/Makefile src/target/Makefile src/server/Makefile src/flash/Makefile src/pld/Makefile doc/Makefile)
+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)