📄 types.m4
字号:
else AC_DEFINE([mbstate_t], int, [Define to a type if <wchar.h> does not define.]) fi])# AC_TYPE_UID_T# -------------# FIXME: Rewrite using AC_CHECK_TYPE.AN_IDENTIFIER([gid_t], [AC_TYPE_UID_T])AN_IDENTIFIER([uid_t], [AC_TYPE_UID_T])AC_DEFUN([AC_TYPE_UID_T],[AC_CACHE_CHECK(for uid_t in sys/types.h, ac_cv_type_uid_t,[AC_EGREP_HEADER(uid_t, sys/types.h, ac_cv_type_uid_t=yes, ac_cv_type_uid_t=no)])if test $ac_cv_type_uid_t = no; then AC_DEFINE(uid_t, int, [Define to `int' if <sys/types.h> doesn't define.]) AC_DEFINE(gid_t, int, [Define to `int' if <sys/types.h> doesn't define.])fi])AN_IDENTIFIER([size_t], [AC_TYPE_SIZE_T])AC_DEFUN([AC_TYPE_SIZE_T], [AC_CHECK_TYPE(size_t, unsigned)])AN_IDENTIFIER([pid_t], [AC_TYPE_PID_T])AC_DEFUN([AC_TYPE_PID_T], [AC_CHECK_TYPE(pid_t, int)])AN_IDENTIFIER([off_t], [AC_TYPE_OFF_T])AC_DEFUN([AC_TYPE_OFF_T], [AC_CHECK_TYPE(off_t, long)])AN_IDENTIFIER([mode_t], [AC_TYPE_MODE_T])AC_DEFUN([AC_TYPE_MODE_T], [AC_CHECK_TYPE(mode_t, int)])# AC_TYPE_SIGNAL# --------------# Note that identifiers starting with SIG are reserved by ANSI C.AN_FUNCTION([signal], [AC_TYPE_SIGNAL])AC_DEFUN([AC_TYPE_SIGNAL],[AC_CACHE_CHECK([return type of signal handlers], ac_cv_type_signal,[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <sys/types.h>#include <signal.h>#ifdef signal# undef signal#endif#ifdef __cplusplusextern "C" void (*signal (int, void (*)(int)))(int);#elsevoid (*signal ()) ();#endif], [int i;])], [ac_cv_type_signal=void], [ac_cv_type_signal=int])])AC_DEFINE_UNQUOTED(RETSIGTYPE, $ac_cv_type_signal, [Define as the return type of signal handlers (`int' or `void').])])## ------------------------ #### Checking size of types. #### ------------------------ ### ---------------- ## Generic checks. ## ---------------- ## AC_CHECK_SIZEOF(TYPE, [IGNORED], [INCLUDES = DEFAULT-INCLUDES])# ---------------------------------------------------------------AC_DEFUN([AC_CHECK_SIZEOF],[AS_LITERAL_IF([$1], [], [AC_FATAL([$0: requires literal arguments])])dnlAC_CHECK_TYPE([$1], [], [], [$3])AC_CACHE_CHECK([size of $1], AS_TR_SH([ac_cv_sizeof_$1]),[if test "$AS_TR_SH([ac_cv_type_$1])" = yes; then # The cast to unsigned long works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. _AC_COMPUTE_INT([(long) (sizeof ($1))], [AS_TR_SH([ac_cv_sizeof_$1])], [AC_INCLUDES_DEFAULT([$3])], [AC_MSG_FAILURE([cannot compute sizeof ($1), 77])])else AS_TR_SH([ac_cv_sizeof_$1])=0fi])dnlAC_DEFINE_UNQUOTED(AS_TR_CPP(sizeof_$1), $AS_TR_SH([ac_cv_sizeof_$1]), [The size of a `$1', as computed by sizeof.])])# AC_CHECK_SIZEOF# ---------------- ## Generic checks. ## ---------------- ## AU::AC_INT_16_BITS# ------------------# What a great name :)AU_DEFUN([AC_INT_16_BITS],[AC_CHECK_SIZEOF([int])AC_DIAGNOSE([obsolete], [$0: your code should no longer depend upon `INT_16_BITS', but upon `SIZEOF_INT'. Remove this warning and the `AC_DEFINE' when you adjust the code.])dnltest $ac_cv_sizeof_int = 2 && AC_DEFINE(INT_16_BITS, 1, [Define to 1 if `sizeof (int)' = 2. Obsolete, use `SIZEOF_INT'.])])# AU::AC_LONG_64_BITS# -------------------AU_DEFUN([AC_LONG_64_BITS],[AC_CHECK_SIZEOF([long int])AC_DIAGNOSE([obsolete], [$0: your code should no longer depend upon `LONG_64_BITS', but upon `SIZEOF_LONG_INT'. Remove this warning and the `AC_DEFINE' when you adjust the code.])dnltest $ac_cv_sizeof_long_int = 8 && AC_DEFINE(LONG_64_BITS, 1, [Define to 1 if `sizeof (long int)' = 8. Obsolete, use `SIZEOF_LONG_INT'.])])## -------------------------- #### Generic structure checks. #### -------------------------- ### ---------------- ## Generic checks. ## ---------------- ## AC_CHECK_MEMBER(AGGREGATE.MEMBER,# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],# [INCLUDES])# ---------------------------------------------------------# AGGREGATE.MEMBER is for instance `struct passwd.pw_gecos', shell# variables are not a valid argument.AC_DEFUN([AC_CHECK_MEMBER],[AS_LITERAL_IF([$1], [], [AC_FATAL([$0: requires literal arguments])])dnlm4_bmatch([$1], [\.], , [m4_fatal([$0: Did not see any dot in `$1'])])dnlAS_VAR_PUSHDEF([ac_Member], [ac_cv_member_$1])dnldnl Extract the aggregate name, and the member nameAC_CACHE_CHECK([for $1], ac_Member,[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT([$4])],[dnl AGGREGATE ac_aggr;static m4_bpatsubst([$1], [\..*]) ac_aggr;dnl ac_aggr.MEMBER;if (ac_aggr.m4_bpatsubst([$1], [^[^.]*\.]))return 0;])], [AS_VAR_SET(ac_Member, yes)],[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT([$4])],[dnl AGGREGATE ac_aggr;static m4_bpatsubst([$1], [\..*]) ac_aggr;dnl sizeof ac_aggr.MEMBER;if (sizeof ac_aggr.m4_bpatsubst([$1], [^[^.]*\.]))return 0;])], [AS_VAR_SET(ac_Member, yes)], [AS_VAR_SET(ac_Member, no)])])])AS_IF([test AS_VAR_GET(ac_Member) = yes], [$2], [$3])dnlAS_VAR_POPDEF([ac_Member])dnl])# AC_CHECK_MEMBER# AC_CHECK_MEMBERS([AGGREGATE.MEMBER, ...],# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]# [INCLUDES])# ---------------------------------------------------------# The first argument is an m4 list.AC_DEFUN([AC_CHECK_MEMBERS],[m4_foreach([AC_Member], [$1], [AC_CHECK_MEMBER(AC_Member, [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_[]AC_Member), 1, [Define to 1 if `]m4_bpatsubst(AC_Member, [^[^.]*\.])[' is member of `]m4_bpatsubst(AC_Member, [\..*])['.])$2], [$3], [$4])])])# ------------------------------------------------------- ## Members that ought to be tested with AC_CHECK_MEMBERS. ## ------------------------------------------------------- #AN_IDENTIFIER([st_blksize], [AC_CHECK_MEMBERS([struct stat.st_blksize])])AN_IDENTIFIER([st_rdev], [AC_CHECK_MEMBERS([struct stat.st_rdev])])# Alphabetic order, please.# AC_STRUCT_ST_BLKSIZE# --------------------AU_DEFUN([AC_STRUCT_ST_BLKSIZE],[AC_DIAGNOSE([obsolete], [$0: your code should no longer depend upon `HAVE_ST_BLKSIZE', but `HAVE_STRUCT_STAT_ST_BLKSIZE'. Remove this warning and the `AC_DEFINE' when you adjust the code.])AC_CHECK_MEMBERS([struct stat.st_blksize], [AC_DEFINE(HAVE_ST_BLKSIZE, 1, [Define to 1 if your `struct stat' has `st_blksize'. Deprecated, use `HAVE_STRUCT_STAT_ST_BLKSIZE' instead.])])])# AC_STRUCT_ST_BLKSIZE# AC_STRUCT_ST_BLOCKS# -------------------# If `struct stat' contains an `st_blocks' member, define# HAVE_STRUCT_STAT_ST_BLOCKS. Otherwise, add `fileblocks.o' to the# output variable LIBOBJS. We still define HAVE_ST_BLOCKS for backward# compatibility. In the future, we will activate specializations for# this macro, so don't obsolete it right now.## AC_OBSOLETE([$0], [; replace it with# AC_CHECK_MEMBERS([struct stat.st_blocks],# [AC_LIBOBJ([fileblocks])])# Please note that it will define `HAVE_STRUCT_STAT_ST_BLOCKS',# and not `HAVE_ST_BLOCKS'.])dnl#AN_IDENTIFIER([st_blocks], [AC_STRUCT_ST_BLOCKS])AC_DEFUN([AC_STRUCT_ST_BLOCKS],[AC_CHECK_MEMBERS([struct stat.st_blocks], [AC_DEFINE(HAVE_ST_BLOCKS, 1, [Define to 1 if your `struct stat' has `st_blocks'. Deprecated, use `HAVE_STRUCT_STAT_ST_BLOCKS' instead.])], [AC_LIBOBJ([fileblocks])])])# AC_STRUCT_ST_BLOCKS# AC_STRUCT_ST_RDEV# -----------------AU_DEFUN([AC_STRUCT_ST_RDEV],[AC_DIAGNOSE([obsolete], [$0: your code should no longer depend upon `HAVE_ST_RDEV', but `HAVE_STRUCT_STAT_ST_RDEV'. Remove this warning and the `AC_DEFINE' when you adjust the code.])AC_CHECK_MEMBERS([struct stat.st_rdev], [AC_DEFINE(HAVE_ST_RDEV, 1, [Define to 1 if your `struct stat' has `st_rdev'. Deprecated, use `HAVE_STRUCT_STAT_ST_RDEV' instead.])])])# AC_STRUCT_ST_RDEV# AC_STRUCT_TM# ------------# FIXME: This macro is badly named, it should be AC_CHECK_TYPE_STRUCT_TM.# Or something else, but what? AC_CHECK_TYPE_STRUCT_TM_IN_SYS_TIME?AN_IDENTIFIER([tm], [AC_STRUCT_TM])AC_DEFUN([AC_STRUCT_TM],[AC_CACHE_CHECK([whether struct tm is in sys/time.h or time.h], ac_cv_struct_tm,[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <sys/types.h>#include <time.h>], [struct tm *tp; tp->tm_sec;])], [ac_cv_struct_tm=time.h], [ac_cv_struct_tm=sys/time.h])])if test $ac_cv_struct_tm = sys/time.h; then AC_DEFINE(TM_IN_SYS_TIME, 1, [Define to 1 if your <sys/time.h> declares `struct tm'.])fi])# AC_STRUCT_TM# AC_STRUCT_TIMEZONE# ------------------# Figure out how to get the current timezone. If `struct tm' has a# `tm_zone' member, define `HAVE_TM_ZONE'. Otherwise, if the# external array `tzname' is found, define `HAVE_TZNAME'.AN_IDENTIFIER([tm_zone], [AC_STRUCT_TIMEZONE])AC_DEFUN([AC_STRUCT_TIMEZONE],[AC_REQUIRE([AC_STRUCT_TM])dnlAC_CHECK_MEMBERS([struct tm.tm_zone],,,[#include <sys/types.h>#include <$ac_cv_struct_tm>])if test "$ac_cv_member_struct_tm_tm_zone" = yes; then AC_DEFINE(HAVE_TM_ZONE, 1, [Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use `HAVE_STRUCT_TM_TM_ZONE' instead.])else AC_CACHE_CHECK(for tzname, ac_cv_var_tzname,[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <time.h>#ifndef tzname /* For SGI. */extern char *tzname[]; /* RS6000 and others reject char **tzname. */#endif]],[atoi(*tzname);])], [ac_cv_var_tzname=yes], [ac_cv_var_tzname=no])]) if test $ac_cv_var_tzname = yes; then AC_DEFINE(HAVE_TZNAME, 1, [Define to 1 if you don't have `tm_zone' but do have the external array `tzname'.]) fifi])# AC_STRUCT_TIMEZONE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -