📄 acinclude.m4
字号:
if test "_$ac_cv_header_stdint_x" != "_" ; then ac_header="$ac_cv_header_stdint_x" echo "#define _STDINT_HEADER_INTPTR" '"'"$ac_header"'"' >>$ac_stdintelse echo "/* #undef _STDINT_HEADER_INTPTR */" >>$ac_stdintfiecho "/* whether we have a C96 compatible inttypes header file */" >>$ac_stdintif test "_$ac_cv_header_stdint_o" != "_" ; then ac_header="$ac_cv_header_stdint_o" echo "#define _STDINT_HEADER_UINT32" '"'"$ac_header"'"' >>$ac_stdintelse echo "/* #undef _STDINT_HEADER_UINT32 */" >>$ac_stdintfiecho "/* whether we have a BSD compatible inet types header */" >>$ac_stdintif test "_$ac_cv_header_stdint_u" != "_" ; then ac_header="$ac_cv_header_stdint_u" echo "#define _STDINT_HEADER_U_INT32" '"'"$ac_header"'"' >>$ac_stdintelse echo "/* #undef _STDINT_HEADER_U_INT32 */" >>$ac_stdintfiecho "" >>$ac_stdintif test "_$ac_header" != "_" ; then if test "$ac_header" != "stddef.h" ; then echo "#include <$ac_header>" >>$ac_stdint echo "" >>$ac_stdintfi fiecho "/* which 64bit typedef has been found */" >>$ac_stdintif test "$ac_cv_type_uint64_t" = "yes" ; thenecho "#define _STDINT_HAVE_UINT64_T" "1" >>$ac_stdintelseecho "/* #undef _STDINT_HAVE_UINT64_T */" >>$ac_stdintfiif test "$ac_cv_type_u_int64_t" = "yes" ; thenecho "#define _STDINT_HAVE_U_INT64_T" "1" >>$ac_stdintelseecho "/* #undef _STDINT_HAVE_U_INT64_T */" >>$ac_stdintfiecho "" >>$ac_stdintecho "/* which type model has been detected */" >>$ac_stdintif test "_$ac_cv_stdint_char_model" != "_" ; thenecho "#define _STDINT_CHAR_MODEL" "$ac_cv_stdint_char_model" >>$ac_stdintecho "#define _STDINT_LONG_MODEL" "$ac_cv_stdint_long_model" >>$ac_stdintelseecho "/* #undef _STDINT_CHAR_MODEL // skipped */" >>$ac_stdintecho "/* #undef _STDINT_LONG_MODEL // skipped */" >>$ac_stdintfiecho "" >>$ac_stdintecho "/* whether int_least types were detected */" >>$ac_stdintif test "$ac_cv_type_int_least32_t" = "yes"; thenecho "#define _STDINT_HAVE_INT_LEAST32_T" "1" >>$ac_stdintelseecho "/* #undef _STDINT_HAVE_INT_LEAST32_T */" >>$ac_stdintfiecho "/* whether int_fast types were detected */" >>$ac_stdintif test "$ac_cv_type_int_fast32_t" = "yes"; thenecho "#define _STDINT_HAVE_INT_FAST32_T" "1" >>$ac_stdintelseecho "/* #undef _STDINT_HAVE_INT_FAST32_T */" >>$ac_stdintfiecho "/* whether intmax_t type was detected */" >>$ac_stdintif test "$ac_cv_type_intmax_t" = "yes"; thenecho "#define _STDINT_HAVE_INTMAX_T" "1" >>$ac_stdintelseecho "/* #undef _STDINT_HAVE_INTMAX_T */" >>$ac_stdintfiecho "" >>$ac_stdint cat >>$ac_stdint <<STDINT_EOF/* .................... detections part ............................ *//* whether we need to define bitspecific types from compiler base types */#ifndef _STDINT_HEADER_INTPTR#ifndef _STDINT_HEADER_UINT32#ifndef _STDINT_HEADER_U_INT32#define _STDINT_NEED_INT_MODEL_T#else#define _STDINT_HAVE_U_INT_TYPES#endif#endif#endif#ifdef _STDINT_HAVE_U_INT_TYPES#undef _STDINT_NEED_INT_MODEL_T#endif#ifdef _STDINT_CHAR_MODEL#if _STDINT_CHAR_MODEL+0 == 122 || _STDINT_CHAR_MODEL+0 == 124#ifndef _STDINT_BYTE_MODEL#define _STDINT_BYTE_MODEL 12#endif#endif#endif#ifndef _STDINT_HAVE_INT_LEAST32_T#define _STDINT_NEED_INT_LEAST_T#endif#ifndef _STDINT_HAVE_INT_FAST32_T#define _STDINT_NEED_INT_FAST_T#endif#ifndef _STDINT_HEADER_INTPTR#define _STDINT_NEED_INTPTR_T#ifndef _STDINT_HAVE_INTMAX_T#define _STDINT_NEED_INTMAX_T#endif#endif/* .................... definition part ............................ *//* some system headers have good uint64_t */#ifndef _HAVE_UINT64_T#if defined _STDINT_HAVE_UINT64_T || defined HAVE_UINT64_T#define _HAVE_UINT64_T#elif defined _STDINT_HAVE_U_INT64_T || defined HAVE_U_INT64_T#define _HAVE_UINT64_Ttypedef u_int64_t uint64_t;#endif#endif#ifndef _HAVE_UINT64_T/* .. here are some common heuristics using compiler runtime specifics */#if defined __STDC_VERSION__ && defined __STDC_VERSION__ >= 199901L#define _HAVE_UINT64_Ttypedef long long int64_t;typedef unsigned long long uint64_t;#elif !defined __STRICT_ANSI__#if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__#define _HAVE_UINT64_Ttypedef __int64 int64_t;typedef unsigned __int64 uint64_t;#elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__/* note: all ELF-systems seem to have loff-support which needs 64-bit */#if !defined _NO_LONGLONG#define _HAVE_UINT64_Ttypedef long long int64_t;typedef unsigned long long uint64_t;#endif#elif defined __alpha || (defined __mips && defined _ABIN32)#if !defined _NO_LONGLONGtypedef long int64_t;typedef unsigned long uint64_t;#endif /* compiler/cpu type to define int64_t */#endif#endif#endif#if defined _STDINT_HAVE_U_INT_TYPES/* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */typedef u_int8_t uint8_t;typedef u_int16_t uint16_t;typedef u_int32_t uint32_t;/* glibc compatibility */#ifndef __int8_t_defined#define __int8_t_defined#endif#endif#ifdef _STDINT_NEED_INT_MODEL_T/* we must guess all the basic types. Apart from byte-adressable system, *//* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} *//* (btw, those nibble-addressable systems are way off, or so we assume) */dnl /* have a look at "64bit and data size neutrality" at */dnl /* http://unix.org/version2/whatsnew/login_64bit.html */dnl /* (the shorthand "ILP" types always have a "P" part) */#if defined _STDINT_BYTE_MODEL#if _STDINT_LONG_MODEL+0 == 242/* 2:4:2 = IP16 = a normal 16-bit system */typedef unsigned char uint8_t;typedef unsigned short uint16_t;typedef unsigned long uint32_t;#ifndef __int8_t_defined#define __int8_t_definedtypedef char int8_t;typedef short int16_t;typedef long int32_t;#endif#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444/* 2:4:4 = LP32 = a 32-bit system derived from a 16-bit *//* 4:4:4 = ILP32 = a normal 32-bit system */typedef unsigned char uint8_t;typedef unsigned short uint16_t;typedef unsigned int uint32_t;#ifndef __int8_t_defined#define __int8_t_definedtypedef char int8_t;typedef short int16_t;typedef int int32_t;#endif#elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488/* 4:8:4 = IP32 = a 32-bit system prepared for 64-bit *//* 4:8:8 = LP64 = a normal 64-bit system */typedef unsigned char uint8_t;typedef unsigned short uint16_t;typedef unsigned int uint32_t;#ifndef __int8_t_defined#define __int8_t_definedtypedef char int8_t;typedef short int16_t;typedef int int32_t;#endif/* this system has a "long" of 64bit */#ifndef _HAVE_UINT64_T#define _HAVE_UINT64_Ttypedef unsigned long uint64_t;typedef long int64_t;#endif#elif _STDINT_LONG_MODEL+0 == 448/* LLP64 a 64-bit system derived from a 32-bit system */typedef unsigned char uint8_t;typedef unsigned short uint16_t;typedef unsigned int uint32_t;#ifndef __int8_t_defined#define __int8_t_definedtypedef char int8_t;typedef short int16_t;typedef int int32_t;#endif/* assuming the system has a "long long" */#ifndef _HAVE_UINT64_T#define _HAVE_UINT64_Ttypedef unsigned long long uint64_t;typedef long long int64_t;#endif#else#define _STDINT_NO_INT32_T#endif#else#define _STDINT_NO_INT8_T#define _STDINT_NO_INT32_T#endif#endif/* * quote from SunOS-5.8 sys/inttypes.h: * Use at your own risk. As of February 1996, the committee is squarely * behind the fixed sized types; the "least" and "fast" types are still being * discussed. The probability that the "fast" types may be removed before * the standard is finalized is high enough that they are not currently * implemented. */#if defined _STDINT_NEED_INT_LEAST_Ttypedef int8_t int_least8_t;typedef int16_t int_least16_t;typedef int32_t int_least32_t;#ifdef _HAVE_UINT64_Ttypedef int64_t int_least64_t;#endiftypedef uint8_t uint_least8_t;typedef uint16_t uint_least16_t;typedef uint32_t uint_least32_t;#ifdef _HAVE_UINT64_Ttypedef uint64_t uint_least64_t;#endif /* least types */#endif#if defined _STDINT_NEED_INT_FAST_Ttypedef int8_t int_fast8_t; typedef int int_fast16_t;typedef int32_t int_fast32_t;#ifdef _HAVE_UINT64_Ttypedef int64_t int_fast64_t;#endiftypedef uint8_t uint_fast8_t; typedef unsigned uint_fast16_t;typedef uint32_t uint_fast32_t;#ifdef _HAVE_UINT64_Ttypedef uint64_t uint_fast64_t;#endif /* fast types */#endif#ifdef _STDINT_NEED_INTMAX_T#ifdef _HAVE_UINT64_Ttypedef int64_t intmax_t;typedef uint64_t uintmax_t;#elsetypedef long intmax_t;typedef unsigned long uintmax_t;#endif#endif#ifdef _STDINT_NEED_INTPTR_T#ifndef __intptr_t_defined#define __intptr_t_defined/* we encourage using "long" to store pointer values, never use "int" ! */#if _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484typedef unsinged int uintptr_t;typedef int intptr_t;#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444typedef unsigned long uintptr_t;typedef long intptr_t;#elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_Ttypedef uint64_t uintptr_t;typedef int64_t intptr_t;#else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */typedef unsigned long uintptr_t;typedef long intptr_t;#endif#endif#endif /* shortcircuit*/#endif /* once */#endif#endifSTDINT_EOF if cmp -s $ac_stdint_h $ac_stdint 2>/dev/null; then AC_MSG_NOTICE([$ac_stdint_h is unchanged]) else ac_dir=`AS_DIRNAME(["$ac_stdint_h"])` AS_MKDIR_P(["$ac_dir"]) rm -f $ac_stdint_h mv $ac_stdint $ac_stdint_h fi],[# variables for create stdint.h replacementPACKAGE="$PACKAGE"VERSION="$VERSION"ac_stdint_h="$ac_stdint_h"_ac_stdint_h=AS_TR_CPP(_$PACKAGE-$ac_stdint_h)ac_cv_stdint_message="$ac_cv_stdint_message"ac_cv_header_stdint_t="$ac_cv_header_stdint_t"ac_cv_header_stdint_x="$ac_cv_header_stdint_x"ac_cv_header_stdint_o="$ac_cv_header_stdint_o"ac_cv_header_stdint_u="$ac_cv_header_stdint_u"ac_cv_type_uint64_t="$ac_cv_type_uint64_t"ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t"ac_cv_stdint_char_model="$ac_cv_stdint_char_model"ac_cv_stdint_long_model="$ac_cv_stdint_long_model"ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t"ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t"ac_cv_type_intmax_t="$ac_cv_type_intmax_t"])])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -