summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-07-22 11:06:09 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-07-22 11:06:09 +0000
commit7ccfcdea0b51de1cd23694dee1e72682fc6d757d (patch)
treee156c6d56b078fef977c57871938108d14e86cbf
parent6e5416106e8e6305c48f09f810d4535fe7acec3e (diff)
downloadopenocd+libswd-7ccfcdea0b51de1cd23694dee1e72682fc6d757d.tar.gz
openocd+libswd-7ccfcdea0b51de1cd23694dee1e72682fc6d757d.tar.bz2
openocd+libswd-7ccfcdea0b51de1cd23694dee1e72682fc6d757d.tar.xz
openocd+libswd-7ccfcdea0b51de1cd23694dee1e72682fc6d757d.zip
Spen: startup.tcl cross compile support
git-svn-id: svn://svn.berlios.de/openocd/trunk@856 b42882b7-edfa-0310-969c-e2dbd0fdcd60
-rw-r--r--configure.in40
-rw-r--r--src/helper/Makefile.am12
2 files changed, 45 insertions, 7 deletions
diff --git a/configure.in b/configure.in
index 343b52c6..6f67a4a3 100644
--- a/configure.in
+++ b/configure.in
@@ -291,6 +291,46 @@ AC_LANG_C
AC_PROG_CC
AC_PROG_RANLIB
+# 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
+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)
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)
diff --git a/src/helper/Makefile.am b/src/helper/Makefile.am
index 6e1af8fd..64d051d2 100644
--- a/src/helper/Makefile.am
+++ b/src/helper/Makefile.am
@@ -15,14 +15,12 @@ libhelper_a_SOURCES = binarybuffer.c $(CONFIGFILES) configuration.c log.c comman
noinst_HEADERS = binarybuffer.h configuration.h types.h log.h command.h \
time_support.h replacements.h fileio.h jim.h
+bin2char$(EXEEXT_FOR_BUILD): bin2char.c
+ ${CC_FOR_BUILD} ${CFLAGS_FOR_BUILD} $(srcdir)/bin2char.c -o $@
# Convert .tcl to cfile
-#
-# Fix!!! how do we make this more automake friendly?
-#
-startup_tcl.c: startup.tcl
- gcc -o bin2char $(srcdir)/bin2char.c
- ./bin2char startup_tcl < $(srcdir)/startup.tcl > $@
+startup_tcl.c: startup.tcl bin2char$(EXEEXT_FOR_BUILD)
+ ./bin2char$(EXEEXT_FOR_BUILD) startup_tcl < $(srcdir)/startup.tcl > $@
# add startup_tcl.c to make clean list
-CLEANFILES = startup_tcl.c
+CLEANFILES = startup_tcl.c bin2char$(EXEEXT_FOR_BUILD)