]> git.sur5r.net Git - openocd/blobdiff - configure.in
Allow -expected-id to be specified multiple times when creating a jtag tap
[openocd] / configure.in
index bc47064f8f7cfa2754eeaf60651b29077bf5daa6..7ed61b25506a8809e982f0f810bfae592421a642 100644 (file)
@@ -20,6 +20,7 @@ AC_CHECK_FUNCS(strndup)
 AC_CHECK_FUNCS(strnlen)
 AC_CHECK_FUNCS(gettimeofday)
 AC_CHECK_FUNCS(usleep)
+AC_CHECK_FUNCS(vasprintf)
 
 build_bitbang=no
 build_bitq=no
@@ -27,6 +28,10 @@ is_cygwin=no
 is_mingw=no
 is_win32=no
 
+AC_ARG_ENABLE(gccwarnings,
+       AS_HELP_STRING([--enable-gccwarnings], [Enable compiler warnings, default no]),
+       [gcc_warnings=$enableval], [gcc_warnings=no])
+
 AC_ARG_ENABLE(parport,
   AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]), 
   [build_parport=$enableval], [build_parport=no])
@@ -58,16 +63,16 @@ AC_ARG_ENABLE(amtjtagaccel,
   AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]), 
   [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
 
+AC_ARG_ENABLE(ecosboard,
+  AS_HELP_STRING([--enable-ecosboard], [Enable building support for eCosBoard based JTAG debugger]), 
+  [build_ecosboard=$enableval], [build_ecosboard=no])
+
 case "${host_cpu}" in 
   arm*)
     AC_ARG_ENABLE(ep93xx,
       AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]), 
       [build_ep93xx=$enableval], [build_ep93xx=no])
 
-       AC_ARG_ENABLE(ecosboard,
-         AS_HELP_STRING([--enable-ecosboard], [Enable building support for eCosBoard based JTAG debugger]), 
-         [build_ecosboard=$enableval], [build_ecosboard=no])
-
     AC_ARG_ENABLE(at91rm9200,
       AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
       [build_at91rm9200=$enableval], [build_at91rm9200=no])
@@ -76,7 +81,6 @@ case "${host_cpu}" in
   *) 
     build_ep93xx=no
     build_at91rm9200=no
-       build_ecosboard=no
     ;;
 esac
 
@@ -291,18 +295,54 @@ AC_LANG_C
 AC_PROG_CC
 AC_PROG_RANLIB
 
-AC_CHECK_PROG(OBJDUMP, objdump, objdump)
-AC_CHECK_PROG(OBJCOPY, objcopy, objcopy)
+# set default gcc warnings
+GCC_WARNINGS="-Wall -Wstrict-prototypes"
 
-if test x${OBJDUMP} != x -a x${OBJCOPY} != x ; then
-       AC_MSG_CHECKING(objcopy command line)
-       AC_TRY_COMPILE(,,[OBJCOPY_format=`${OBJDUMP} -f conftest.$ac_objext | sed -e '/file format/!d' -e 's/.*format \(.*\)/\1/'`
-                                         OBJCOPY_arch=`${OBJDUMP} -f conftest.$ac_objext | sed -e '/architecture/!d' -e 's/.*architecture: \(.*\),.*/\1/'`])
-       AC_MSG_RESULT(-I binary -O ${OBJCOPY_format} -B ${OBJCOPY_arch})
+# overide default gcc cflags
+if test $gcc_warnings = yes; then
+       CFLAGS="$CFLAGS $GCC_WARNINGS"
 fi
 
-AC_SUBST(OBJCOPY_FORMAT, ${OBJCOPY_format})
-AC_SUBST(OBJCOPY_ARCH, ${OBJCOPY_arch})
+# Setup for compiling build tools
+AC_MSG_CHECKING([for a C compiler for build tools])
+if test $cross_compiling = yes; then
+       AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
+       CFLAGS_FOR_BUILD="-g -O2 $GCC_WARNINGS"
+else
+       CC_FOR_BUILD=$CC
+       CFLAGS_FOR_BUILD=$CFLAGS
+fi
+
+AC_MSG_RESULT([$CC_FOR_BUILD])
+AC_SUBST(CC_FOR_BUILD)
+AC_SUBST(CFLAGS_FOR_BUILD)
+
+AC_MSG_CHECKING([for suffix of executable build tools])
+if test $cross_compiling = yes; then
+       cat >conftest.c <<\_______EOF
+int main ()
+{
+       exit (0);
+}
+_______EOF
+for i in .exe ""; do
+    compile="$CC_FOR_BUILD conftest.c -o conftest$i"
+    if AC_TRY_EVAL(compile); then
+               if (./conftest) 2>&AC_FD_CC; then
+                       EXEEXT_FOR_BUILD=$i
+                       break
+                       fi
+               fi
+done
+       rm -f conftest*
+       if test "${EXEEXT_FOR_BUILD+set}" != set; then
+               AC_MSG_ERROR([Cannot determine suffix of executable build tools])
+       fi
+else
+       EXEEXT_FOR_BUILD=$EXEEXT
+fi
+AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
+AC_SUBST(EXEEXT_FOR_BUILD)
 
 AC_SUBST(WITH_FTD2XX, $with_ftd2xx)