shithub: sox

Download patch

ref: e8c783850229efae0c76d3d22df91b63db3913a0
parent: f2d584540d541ebc1fb63268f52e7461110160fe
author: cbagwell <cbagwell>
date: Fri Nov 30 14:19:54 EST 2001

Adding AC_NEED_STDINT_H MACRO

--- a/configure.in
+++ b/configure.in
@@ -81,6 +81,7 @@
 AC_C_CONST
 AC_C_INLINE
 AC_TYPE_SIZE_T
+AC_NEED_STDINT_H
 
 dnl Checks for libraries.
 
@@ -222,6 +223,129 @@
 echo
 echo "Configure finished.  Do 'make; make install' to compile and install SoX."
 echo
+
+AC_DEFUN([AC_NEED_STDINT_H],
+[AC_MSG_CHECKING([for stdint-types])
+ ac_cv_header_stdint="no-file"
+ ac_cv_header_stdint_u="no-file"
+ for i in $1 inttypes.h sys/inttypes.h sys/int_types.h stdint.h ; do
+   AC_CHECK_TYPEDEF_(uint32_t, $i, [ac_cv_header_stdint=$i])
+ done
+ for i in $1 sys/types.h inttypes.h sys/inttypes.h sys/int_types.h ; do
+   AC_CHECK_TYPEDEF_(u_int32_t, $i, [ac_cv_header_stdint_u=$i])
+ done
+ dnl debugging: __AC_MSG( !$ac_cv_header_stdint!$ac_cv_header_stdint_u! ...)
+
+ ac_stdint_h=`echo ifelse($1, , stdint.h, $1)`
+ if test "$ac_cv_header_stdint" != "no-file" ; then
+   if test "$ac_cv_header_stdint" != "$ac_stdint_h" ; then
+     AC_MSG_RESULT(found in $ac_cv_header_stdint)
+     echo "#include <$ac_cv_header_stdint>" >$ac_stdint_h
+     AC_MSG_RESULT(creating $ac_stdint_h - (just to include  $ac_cv_header_stdint) )
+   else
+     AC_MSG_RESULT(found in $ac_stdint_h)
+   fi
+   ac_cv_header_stdint_generated=false
+ elif test "$ac_cv_header_stdint_u" != "no-file" ; then
+   AC_MSG_RESULT(found u_types in $ac_cv_header_stdint_u)
+   if test $ac_cv_header_stdint = "$ac_stdint_h" ; then
+     AC_MSG_RESULT(creating $ac_stdint_h - includes $ac_cv_header_stdint, expect problems!)
+   else
+     AC_MSG_RESULT(creating $ac_stdint_h - (include inet-types in $ac_cv_header_stdint_u and re-typedef))
+   fi
+   cat >$ac_stdint_h <<EOF
+#ifndef __AC_STDINT_H
+#define __AC_STDINT_H 1
+#include <stddef.h>
+#include <$ac_cv_header_stdint_u>
+/* int8_t int16_t int32_t defined by inet code */
+typedef u_int8_t uint8_t;
+typedef u_int16_t uint16_t;
+typedef u_int32_t uint32_t;
+/* it's a networkable system, but without any stdint.h */
+/* hence it's an older 32-bit system... (a wild guess that seems to work) */
+typedef u_int32_t uintptr_t;
+typedef   int32_t  intptr_t;
+EOF
+   ac_cv_header_stdint_generated=true
+ else
+   AC_MSG_RESULT(not found, need to guess the types now... )
+   AC_COMPILE_CHECK_SIZEOF(long, 32)
+   AC_COMPILE_CHECK_SIZEOF(void*, 32)
+   AC_MSG_RESULT( creating $ac_stdint_h - using detected values for sizeof long and sizeof void* )
+   cat >$ac_stdint_h <<EOF
+
+#ifndef __AC_STDINT_H
+#define __AC_STDINT_H 1
+/* ISO C 9X: 7.18 Integer types <stdint.h> */
+
+#define __int8_t_defined  
+typedef   signed char    int8_t;
+typedef unsigned char   uint8_t;
+typedef   signed short  int16_t;
+typedef unsigned short uint16_t;
+EOF
+
+   if test "$ac_cv_sizeof_long" = "64" ; then
+     cat >>$ac_stdint_h <<EOF
+
+typedef   signed int    int32_t;
+typedef unsigned int   uint32_t;
+typedef   signed long   int64_t;
+typedef unsigned long  uint64_t;
+#define  int64_t  int64_t
+#define uint64_t uint64_t
+EOF
+
+   else
+     cat >>$ac_stdint_h <<EOF
+
+typedef   signed long   int32_t;
+typedef unsigned long  uint32_t;
+EOF
+
+   fi
+   if test "$ac_cv_sizeof_long" != "$ac_cv_sizeof_voidp" ; then
+     cat >>$ac_stdint_h <<EOF
+
+typedef   signed int   intptr_t;
+typedef unsigned int  uintptr_t;
+EOF
+   else
+     cat >>$ac_stdint_h <<EOF
+
+typedef   signed long   intptr_t;
+typedef unsigned long  uintptr_t;
+EOF
+     ac_cv_header_stdint_generated=true
+   fi
+ fi   
+
+ if "$ac_cv_header_stdint_generated" ; then
+   cat >>$ac_stdint_h <<EOF
+
+typedef  int8_t    int_least8_t;
+typedef  int16_t   int_least16_t;
+typedef  int32_t   int_least32_t;
+
+typedef uint8_t   uint_least8_t;
+typedef uint16_t  uint_least16_t;
+typedef uint32_t  uint_least32_t;
+
+typedef  int8_t    int_fast8_t; 
+typedef  int32_t   int_fast16_t;
+typedef  int32_t   int_fast32_t;
+
+typedef uint8_t   uint_fast8_t; 
+typedef uint32_t  uint_fast16_t;
+typedef uint32_t  uint_fast32_t;
+
+typedef long int       intmax_t;
+typedef unsigned long uintmax_t;
+#endif
+EOF
+ fi dnl
+])
 
 dnl Local Variables:
 dnl comment-start: "dnl "