⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 types.m4

📁 开源备份软件源码 AMANDA, the Advanced Maryland Automatic Network Disk Archiver, is a backup system that a
💻 M4
字号:
# SYNOPSIS##   AMANDA_CHECK_TYPE(type, replacement-type, header)## OVERVIEW# #   Like AC_CHECK_TYPE, where action-if-not-found DEFINEs $1 to $2.##   'header' must be a single header name, or blank to use the default#   headers.#AC_DEFUN([AMANDA_CHECK_TYPE], [    AC_REQUIRE([AC_HEADER_STDC])    AC_CHECK_TYPE($1, [], [	AC_DEFINE($1, $2, [Type for $1, if it is not defined by the system])    ], ifelse($3, [], [], [#ifdef STDC_HEADERS#include <stdlib.h>#include <stddef.h>#endif#include <$3>	])    )])## SYNOPSIS##   AMANDA_TYPE_PID_T## OVERVIEW##   Check whether pid_t is a long, int, or short.  DEFINE PRINTF_PID_T to the#   corresponding printf format.#AC_DEFUN([AMANDA_TYPE_PID_T], [	AC_REQUIRE([AC_HEADER_STDC])	AC_REQUIRE([AC_TYPE_PID_T])	AC_CACHE_CHECK([for pid_t type], amanda_cv_pid_type,	    [		amanda_cv_pid_type=unknown		if test "$ac_cv_type_pid_t" = no; then		    amanda_cv_pid_type=int		fi		for TEST_amanda_cv_pid_type in long short int; do		    if test $amanda_cv_pid_type = unknown; then			AC_EGREP_CPP(typedef.*${TEST_amanda_cv_pid_type}.*pid_t,			    [#include <sys/types.h>#if STDC_HEADERS#include <stdlib.h>#include <stddef.h>#endif			    ],			amanda_cv_pid_type=$TEST_amanda_cv_pid_type)		    fi		    if test $amanda_cv_pid_type = unknown; then			AC_EGREP_CPP(ZZZZ.*${TEST_amanda_cv_pid_type},			    [#include <sys/types.h>#if STDC_HEADERS#include <stdlib.h>#include <stddef.h>#endif				ZZZZ pid_t			],			amanda_cv_pid_type=$TEST_amanda_cv_pid_type)		    fi		done		if test $amanda_cv_pid_type = unknown; then		    amanda_cv_pid_type=int		fi	    ]	)	case $amanda_cv_pid_type in	    int)	AC_DEFINE_UNQUOTED(PRINTF_PID_T,"%d",[Define to printf formatting string to print a PID. ]) ;;	    long)	AC_DEFINE_UNQUOTED(PRINTF_PID_T,"%ld") ;;	    short)	AC_DEFINE_UNQUOTED(PRINTF_PID_T,"%d") ;;	esac    ])# SYNOPSIS##   CF_WAIT## OVERVIEW## Test for the presence of <sys/wait.h>, 'union wait', arg-type of 'wait()'.# by T.E.Dickey" , Jim Spath <jspath@mail.bcpl.lib.md.us>##   DEFINEs WAIT_USES_UNION if 'union wait' is found.  Note that many systems#   support *both* 'union wait' and 'int' using a transparent union.##   Original comments:##     FIXME: These tests should have been in autoconf 1.11!##     Note that we cannot simply grep for 'union wait' in the wait.h file,#     because some Posix systems turn this on only when a BSD variable is#     defined. Since I'm trying to do without special defines, I'll live#     with the default behavior of the include-file.##     I do _2_ compile checks, because we may have union-wait, but the#     prototype for 'wait()' may want an int.##     Don't use HAVE_UNION_WAIT, because the autoconf documentation implies#     that if we've got union-wait, we'll automatically use it.## Garrett Wollman adds:#	The tests described above don't quite do the right thing,#	since some systems have hacks which allow `union wait' to#	still work even though `int' is preferred (and generates#	fewer warnings).  Since all of these systems use prototypes,#	we can use the prototype of wait(2) to disambiguate them.## Alexandre Oliva adds:#     A single compile check is enough.  If we don't have union wait,#     it's obvious that the test will fail, and that we must use int.#     If we do, the prototype (on STDC systems) and WIFEXITED will tell#     whether we're supposed to be using union wait instead of int.#AC_DEFUN([CF_WAIT], [    AC_REQUIRE([AC_TYPE_PID_T])    AC_HAVE_HEADERS(sys/wait.h wait.h)    AC_CACHE_CHECK([whether wait uses union wait], [cf_cv_arg_union_wait], [        AC_TRY_COMPILE([#include <sys/types.h>#if HAVE_SYS_WAIT_H# include <sys/wait.h>#else# if HAVE_WAIT_H#  include <wait.h># endif#endif#ifdef __STDC__pid_t wait(union wait *);#endif], [  union wait x; int i;  wait(&x); i = WIFEXITED(x)], [cf_cv_arg_union_wait=yes], [cf_cv_arg_union_wait=no])])    if test $cf_cv_arg_union_wait = yes; then	    AC_DEFINE(WAIT_USES_UNION,1,		[Defined if wait() puts the status in a union wait instead of int. ])    fi])# SYNOPSIS##   CF_WAIT_INT## OVERVIEW## Test for the presence of <sys/wait.h>, 'union wait', arg-type of 'wait()'.# by T.E.Dickey" , Jim Spath <jspath@mail.bcpl.lib.md.us>##   DEFINEs WAIT_USES_INT if an int result type is found.#AC_DEFUN([CF_WAIT_INT], [    AC_REQUIRE([AC_TYPE_PID_T])    AC_HAVE_HEADERS(sys/wait.h wait.h)    AC_CACHE_CHECK([whether wait uses int], [cf_cv_arg_int], [        AC_TRY_COMPILE([#include <sys/types.h>#if HAVE_SYS_WAIT_H# include <sys/wait.h>#else# if HAVE_WAIT_H#  include <wait.h># endif#endif#ifdef __STDC__pid_t wait(int *);#endif], [  int x; int i;  wait(&x); i = WIFEXITED(x)], [cf_cv_arg_int=yes], [cf_cv_arg_int=no])])if test $cf_cv_arg_int = yes; then        AC_DEFINE(WAIT_USES_INT,1,	    [Defined if wait() puts the status in a int instead of a union wait. ])fi])

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -