add build system support for arch endian & float abi variants
diff --git a/configure b/configure
index 96f93b2..042c41b 100755
--- a/configure
+++ b/configure
@@ -54,6 +54,20 @@
while eval "fnmatch '*/' \"\${$1}\"" ; do eval "$1=\${$1%/}" ; done
}
+trycppif () {
+printf "checking preprocessor condition %s... " "$1"
+echo "#if $1" > "$tmpc"
+echo "#error yes" >> "$tmpc"
+echo "#endif" >> "$tmpc"
+if $CC $2 -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then
+printf "false\n"
+return 1
+else
+printf "true\n"
+return 0
+fi
+}
+
tryflag () {
printf "checking whether compiler accepts %s... " "$2"
echo "typedef int x;" > "$tmpc"
@@ -310,6 +324,23 @@
&& tryldflag LIBCC "$try_libcc"
printf "using compiler runtime libraries: %s\n" "$LIBCC"
+# Figure out arch variants for archs with variants
+SUBARCH=
+t="$CFLAGS_C99FSE $CPPFLAGS $CFLAGS_AUTO $CFLAGS"
+
+if test "$ARCH" = "arm" ; then
+trycppif __ARMEB__ "$t" && SUBARCH=${SUBARCH}eb
+trycppif __SOFTFP__ "$t" || SUBARCH=${SUBARCH}hf
+fi
+
+test "$ARCH" = "mips" && trycppif "_MIPSEL || __MIPSEL || __MIPSEL__" "$t" \
+&& SUBARCH=${SUBARCH}el
+
+test "$ARCH" = "microblaze" && trycppif __MICROBLAZEEL__ "$t" \
+&& SUBARCH=${SUBARCH}el
+
+test "$SUBARCH" \
+&& printf "configured for %s variant: %s\n" "$ARCH" "$ARCH$SUBARCH"
printf "creating config.mak... "
@@ -320,6 +351,7 @@
# This version of config.mak was generated by configure
# Any changes made here will be lost if configure is re-run
ARCH = $ARCH
+SUBARCH = $SUBARCH
prefix = $prefix
exec_prefix = $exec_prefix
bindir = $bindir