AC_CHECK_SIZEOF(short)
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
+AC_C_CHAR_UNSIGNED
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_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
+ echo "long"
}
AC_MSG_CHECKING(type name for byte)
-TYPE_BYTE=`type_name 1`
+TYPE_CHAR=`type_name 1`
+if test "$ac_cv_c_char_unsigned" = "yes"; then
+ TYPE_BYTE="signed $TYPE_CHAR"
+else
+ TYPE_BYTE=$TYPE_CHAR
+fi
AC_MSG_RESULT($TYPE_BYTE)
AC_MSG_CHECKING(type name for word)
TYPE_WORD=`type_name 2`
AC_MSG_CHECKING(type name for dword)
TYPE_DWORD=`type_name 4`
AC_MSG_RESULT($TYPE_DWORD)
+
AC_DEFINE_UNQUOTED(TYPE_BYTE, $TYPE_BYTE)
AC_DEFINE_UNQUOTED(TYPE_WORD, $TYPE_WORD)
AC_DEFINE_UNQUOTED(TYPE_DWORD, $TYPE_DWORD)
+AC_DEFINE_UNQUOTED(TYPE_UBYTE, unsigned $TYPE_CHAR)
+AC_DEFINE_UNQUOTED(TYPE_UWORD, unsigned $TYPE_WORD)
+AC_DEFINE_UNQUOTED(TYPE_UDWORD, unsigned $TYPE_DWORD)
+
AC_C_BIGENDIAN
# Set standard installation paths