* packihx/,
[fw/sdcc] / support / packihx / configure.in
diff --git a/support/packihx/configure.in b/support/packihx/configure.in
new file mode 100644 (file)
index 0000000..eb12f16
--- /dev/null
@@ -0,0 +1,52 @@
+AC_INIT(packihx.c)
+AC_CONFIG_HEADER(config.h:config_in.h)
+AC_PREREQ(2.13)
+
+AC_PROG_CC
+
+# Defaults are for gcc on a 32 bit machine
+if test "$ac_cv_prog_cc_cross" = "yes"; then
+  AC_MSG_WARN("Cannot determine the sizeof basic types while cross compiling.  Using gcc on a 32 bit machine defaults.")
+fi
+
+AC_CHECK_SIZEOF(char, 1)
+AC_CHECK_SIZEOF(short, 2)
+AC_CHECK_SIZEOF(int, 4)
+AC_CHECK_SIZEOF(long, 4)
+AC_CHECK_SIZEOF(long long, 8)
+
+type_name()
+{
+    if expr "$ac_cv_sizeof_char" '>=' "$1" >/dev/null; then
+       echo "char"
+       exit
+    fi
+    if expr "$ac_cv_sizeof_short" '>=' "$1" >/dev/null; then
+       echo "short"
+       exit
+    fi
+    if expr "$ac_cv_sizeof_int" '>=' "$1" >/dev/null; then
+       echo "int"
+       exit
+    fi
+    if expr "$ac_cv_sizeof_long" '>=' "$1" >/dev/null; then
+       echo "long"
+       exit
+    fi
+    if expr "$ac_cv_sizeof_long_long" '>=' "$1" >/dev/null; then
+       echo "long long"
+       exit
+    fi
+    echo "long long"
+}
+
+AC_MSG_CHECKING(type name for byte)
+TYPE_BYTE=`type_name 1`
+AC_MSG_RESULT($TYPE_BYTE)
+AC_MSG_CHECKING(type name for word)
+TYPE_WORD=`type_name 2`
+AC_MSG_RESULT($TYPE_WORD)
+AC_DEFINE_UNQUOTED(TYPE_BYTE, $TYPE_BYTE)
+AC_DEFINE_UNQUOTED(TYPE_WORD, $TYPE_WORD)
+
+AC_OUTPUT(Makefile)