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

📄 headers.m4

📁 autoconf是一个产生可以自动配置源代码包
💻 M4
📖 第 1 页 / 共 2 页
字号:
# AC_HEADER_MAJOR# ---------------AN_FUNCTION([major],     [AC_HEADER_MAJOR])AN_FUNCTION([makedev],   [AC_HEADER_MAJOR])AN_FUNCTION([minor],     [AC_HEADER_MAJOR])AN_HEADER([sys/mkdev.h], [AC_HEADER_MAJOR])AC_DEFUN([AC_HEADER_MAJOR],[AC_CACHE_CHECK(whether sys/types.h defines makedev,		ac_cv_header_sys_types_h_makedev,[AC_LINK_IFELSE([AC_LANG_PROGRAM([[@%:@include <sys/types.h>]],				 [[return makedev(0, 0);]])],		[ac_cv_header_sys_types_h_makedev=yes],		[ac_cv_header_sys_types_h_makedev=no])])if test $ac_cv_header_sys_types_h_makedev = no; thenAC_CHECK_HEADER(sys/mkdev.h,		[AC_DEFINE(MAJOR_IN_MKDEV, 1,			   [Define to 1 if `major', `minor', and `makedev' are			    declared in <mkdev.h>.])])  if test $ac_cv_header_sys_mkdev_h = no; then    AC_CHECK_HEADER(sys/sysmacros.h,		    [AC_DEFINE(MAJOR_IN_SYSMACROS, 1,			       [Define to 1 if `major', `minor', and `makedev'				are declared in <sysmacros.h>.])])  fifi])# AC_HEADER_MAJOR# AC_HEADER_RESOLV# ----------------# According to http://www.mcsr.olemiss.edu/cgi-bin/man-cgi?resolver+3# (or http://www.chemie.fu-berlin.de/cgi-bin/man/sgi_irix?resolver+3),# sys/types.h, netinet/in.h and arpa/nameser.h are required on IRIX.# netinet/in.h is needed on Cygwin, too.# With Solaris 9, netdb.h is required, to get symbols like HOST_NOT_FOUND.#AN_HEADER(resolv.h,	[AC_HEADER_RESOLV])AC_DEFUN([AC_HEADER_RESOLV],[AC_CHECK_HEADERS(sys/types.h netinet/in.h arpa/nameser.h netdb.h resolv.h,		  [], [],[[#if HAVE_SYS_TYPES_H#  include <sys/types.h>#endif#ifdef HAVE_NETINET_IN_H#  include <netinet/in.h>   /* inet_ functions / structs */#endif#ifdef HAVE_ARPA_NAMESER_H#  include <arpa/nameser.h> /* DNS HEADER struct */#endif#ifdef HAVE_NETDB_H#  include <netdb.h>#endif]])])# AC_HEADER_RESOLV# AC_HEADER_STAT# --------------# FIXME: Shouldn't this be named AC_HEADER_SYS_STAT?AN_IDENTIFIER([S_ISBLK], [AC_HEADER_STAT])AN_IDENTIFIER([S_ISCHR], [AC_HEADER_STAT])AN_IDENTIFIER([S_ISDIR], [AC_HEADER_STAT])AN_IDENTIFIER([S_ISFIFO], [AC_HEADER_STAT])AN_IDENTIFIER([S_ISLNK], [AC_HEADER_STAT])AN_IDENTIFIER([S_ISREG], [AC_HEADER_STAT])AN_IDENTIFIER([S_ISSOCK], [AC_HEADER_STAT])AC_DEFUN([AC_HEADER_STAT],[AC_CACHE_CHECK(whether stat file-mode macros are broken,  ac_cv_header_stat_broken,[AC_EGREP_CPP([You lose], [#include <sys/types.h>#include <sys/stat.h>#if defined S_ISBLK && defined S_IFDIR# if S_ISBLK (S_IFDIR)You lose.# endif#endif#if defined S_ISBLK && defined S_IFCHR# if S_ISBLK (S_IFCHR)You lose.# endif#endif#if defined S_ISLNK && defined S_IFREG# if S_ISLNK (S_IFREG)You lose.# endif#endif#if defined S_ISSOCK && defined S_IFREG# if S_ISSOCK (S_IFREG)You lose.# endif#endif], ac_cv_header_stat_broken=yes, ac_cv_header_stat_broken=no)])if test $ac_cv_header_stat_broken = yes; then  AC_DEFINE(STAT_MACROS_BROKEN, 1,	    [Define to 1 if the `S_IS*' macros in <sys/stat.h> do not	     work properly.])fi])# AC_HEADER_STAT# AC_HEADER_STDBOOL# -----------------# Check for stdbool.h that conforms to C99.AN_IDENTIFIER([bool], [AC_HEADER_STDBOOL])AN_IDENTIFIER([true], [AC_HEADER_STDBOOL])AN_IDENTIFIER([false],[AC_HEADER_STDBOOL])AC_DEFUN([AC_HEADER_STDBOOL],[AC_CACHE_CHECK([for stdbool.h that conforms to C99],   [ac_cv_header_stdbool_h],   [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(      [[#include <stdbool.h>#ifndef bool "error: bool is not defined"#endif#ifndef false "error: false is not defined"#endif#if false "error: false is not 0"#endif#ifndef true "error: true is not defined"#endif#if true != 1 "error: true is not 1"#endif#ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined"#endif	struct s { _Bool s: 1; _Bool t; } s;	char a[true == 1 ? 1 : -1];	char b[false == 0 ? 1 : -1];	char c[__bool_true_false_are_defined == 1 ? 1 : -1];	char d[(bool) 0.5 == true ? 1 : -1];	bool e = &s;	char f[(_Bool) 0.0 == false ? 1 : -1];	char g[true];	char h[sizeof (_Bool)];	char i[sizeof s.t];	enum { j = false, k = true, l = false * true, m = true * 256 };	_Bool n[m];	char o[sizeof n == m * sizeof n[0] ? 1 : -1];	char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];#	if defined __xlc__ || defined __GNUC__	 /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0	    reported by James Lemley on 2005-10-05; see	    http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html	    This test is not quite right, since xlc is allowed to	    reject this program, as the initializer for xlcbug is	    not one of the forms that C requires support for.	    However, doing the test right would require a runtime	    test, and that would make cross-compilation harder.	    Let us hope that IBM fixes the xlc bug, and also adds	    support for this kind of constant expression.  In the	    meantime, this test will reject xlc, which is OK, since	    our stdbool.h substitute should suffice.  We also test	    this with GCC, where it should work, to detect more	    quickly whether someone messes up the test in the	    future.  */	 char digs[] = "0123456789";	 int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1);#	endif	/* Catch a bug in an HP-UX C compiler.  See	   http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html	   http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html	 */	_Bool q = true;	_Bool *pq = &q;      ]],      [[	*pq |= q;	*pq |= ! q;	/* Refer to every declared value, to avoid compiler optimizations.  */	return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l		+ !m + !n + !o + !p + !q + !pq);      ]])],      [ac_cv_header_stdbool_h=yes],      [ac_cv_header_stdbool_h=no])])AC_CHECK_TYPES([_Bool])if test $ac_cv_header_stdbool_h = yes; then  AC_DEFINE(HAVE_STDBOOL_H, 1, [Define to 1 if stdbool.h conforms to C99.])fi])# AC_HEADER_STDBOOL# AC_HEADER_STDC# --------------# FIXME: I find this list very strange.  It comes from the original# autoscan list, but I don't think it is useful for the same reason# that we don't bind AC_PROG_CC to finding a C function calls: if the# user uses bcmp, then she will certainly have the `#include', and# therefore, we will trigger AC_HEADER_STDC elsewhere.  --akim 2002-09-28# FIXME: Err... index and rindex are _not_ to be used... --akim 2002-09-28AN_FUNCTION([bcmp],     [AC_HEADER_STDC])AN_FUNCTION([bcopy],    [AC_HEADER_STDC])AN_FUNCTION([bzero],    [AC_HEADER_STDC])AN_FUNCTION([index],    [AC_HEADER_STDC])AN_FUNCTION([memchr],   [AC_HEADER_STDC])AN_FUNCTION([memcpy],   [AC_HEADER_STDC])AN_FUNCTION([memmove],  [AC_HEADER_STDC])AN_FUNCTION([memset],   [AC_HEADER_STDC])AN_FUNCTION([rindex],   [AC_HEADER_STDC])AN_HEADER([float.h],    [AC_HEADER_STDC])AN_HEADER([stdarg.h],   [AC_HEADER_STDC])AN_HEADER([stddef.h],   [AC_HEADER_STDC])AN_HEADER([stdlib.h],   [AC_HEADER_STDC])AN_HEADER([string.h],   [AC_HEADER_STDC])AC_DEFUN([AC_HEADER_STDC],[AC_CACHE_CHECK(for ANSI C header files, ac_cv_header_stdc,[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>#include <stdarg.h>#include <string.h>#include <float.h>]])],		    [ac_cv_header_stdc=yes],		    [ac_cv_header_stdc=no])if test $ac_cv_header_stdc = yes; then  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.  AC_EGREP_HEADER(memchr, string.h, , ac_cv_header_stdc=no)fiif test $ac_cv_header_stdc = yes; then  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.  AC_EGREP_HEADER(free, stdlib.h, , ac_cv_header_stdc=no)fiif test $ac_cv_header_stdc = yes; then  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.  AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <ctype.h>#include <stdlib.h>#if ((' ' & 0x0FF) == 0x020)# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))#else# define ISLOWER(c) \		   (('a' <= (c) && (c) <= 'i') \		     || ('j' <= (c) && (c) <= 'r') \		     || ('s' <= (c) && (c) <= 'z'))# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))#endif#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))intmain (){  int i;  for (i = 0; i < 256; i++)    if (XOR (islower (i), ISLOWER (i))	|| toupper (i) != TOUPPER (i))      return 2;  return 0;}]])], , ac_cv_header_stdc=no, :)fi])if test $ac_cv_header_stdc = yes; then  AC_DEFINE(STDC_HEADERS, 1,	    [Define to 1 if you have the ANSI C header files.])fi])# AC_HEADER_STDC# AC_HEADER_SYS_WAIT# ------------------AN_HEADER([sys/wait.h], [AC_HEADER_SYS_WAIT])AC_DEFUN([AC_HEADER_SYS_WAIT],[AC_CACHE_CHECK([for sys/wait.h that is POSIX.1 compatible],  ac_cv_header_sys_wait_h,[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <sys/types.h>#include <sys/wait.h>#ifndef WEXITSTATUS# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)#endif#ifndef WIFEXITED# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)#endif],[  int s;  wait (&s);  s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;])],		 [ac_cv_header_sys_wait_h=yes],		 [ac_cv_header_sys_wait_h=no])])if test $ac_cv_header_sys_wait_h = yes; then  AC_DEFINE(HAVE_SYS_WAIT_H, 1,	    [Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible.])fi])# AC_HEADER_SYS_WAIT# AC_HEADER_TIME# --------------AN_IDENTIFIER([timeval],  [AC_HEADER_TIME])AC_DEFUN([AC_HEADER_TIME],[AC_CACHE_CHECK([whether time.h and sys/time.h may both be included],  ac_cv_header_time,[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <sys/types.h>#include <sys/time.h>#include <time.h>],[if ((struct tm *) 0)return 0;])],		   [ac_cv_header_time=yes],		   [ac_cv_header_time=no])])if test $ac_cv_header_time = yes; then  AC_DEFINE(TIME_WITH_SYS_TIME, 1,	    [Define to 1 if you can safely include both <sys/time.h>	     and <time.h>.])fi])# AC_HEADER_TIME# _AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H# ----------------------------------m4_define([_AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H],[AC_CACHE_CHECK([whether termios.h defines TIOCGWINSZ],		ac_cv_sys_tiocgwinsz_in_termios_h,[AC_EGREP_CPP([yes],	      [#include <sys/types.h>#include <termios.h>#ifdef TIOCGWINSZ  yes#endif],		ac_cv_sys_tiocgwinsz_in_termios_h=yes,		ac_cv_sys_tiocgwinsz_in_termios_h=no)])])# _AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H# _AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTL# ----------------------------------m4_define([_AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTL],[AC_CACHE_CHECK([whether sys/ioctl.h defines TIOCGWINSZ],		ac_cv_sys_tiocgwinsz_in_sys_ioctl_h,[AC_EGREP_CPP([yes],	      [#include <sys/types.h>#include <sys/ioctl.h>#ifdef TIOCGWINSZ  yes#endif],		ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=yes,		ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=no)])])# _AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTL# AC_HEADER_TIOCGWINSZ# --------------------# Look for a header that defines TIOCGWINSZ.# FIXME: Is this the proper name?  Is this the proper implementation?# I need more help.AC_DEFUN([AC_HEADER_TIOCGWINSZ],[_AC_HEADER_TIOCGWINSZ_IN_TERMIOS_Hif test $ac_cv_sys_tiocgwinsz_in_termios_h != yes; then  _AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTL  if test $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h = yes; then    AC_DEFINE(GWINSZ_IN_SYS_IOCTL,1,	      [Define to 1 if `TIOCGWINSZ' requires <sys/ioctl.h>.])  fifi])# AC_HEADER_TIOCGWINSZ# AU::AC_UNISTD_H# ---------------AU_DEFUN([AC_UNISTD_H],[AC_CHECK_HEADERS(unistd.h)])# AU::AC_USG# ----------# Define `USG' if string functions are in strings.h.AU_DEFUN([AC_USG],[AC_MSG_CHECKING([for BSD string and memory functions])AC_LINK_IFELSE([AC_LANG_PROGRAM([[@%:@include <strings.h>]],				[[rindex(0, 0); bzero(0, 0);]])],	       [AC_MSG_RESULT(yes)],	       [AC_MSG_RESULT(no)		AC_DEFINE(USG, 1,			  [Define to 1 if you do not have <strings.h>, index,			   bzero, etc... This symbol is obsolete, you should			   not depend upon it.])])AC_CHECK_HEADERS(string.h)],[Remove `AC_MSG_CHECKING', `AC_LINK_IFELSE' and this warningwhen you adjust your code to use HAVE_STRING_H.])# AU::AC_MEMORY_H# ---------------# To be precise this macro used to be:##   | AC_MSG_CHECKING(whether string.h declares mem functions)#   | AC_EGREP_HEADER(memchr, string.h, ac_found=yes, ac_found=no)#   | AC_MSG_RESULT($ac_found)#   | if test $ac_found = no; then#   |	AC_CHECK_HEADER(memory.h, [AC_DEFINE(NEED_MEMORY_H)])#   | fi## But it is better to check for both headers, and alias NEED_MEMORY_H to# HAVE_MEMORY_H.AU_DEFUN([AC_MEMORY_H],[AC_CHECK_HEADER(memory.h,		[AC_DEFINE([NEED_MEMORY_H], 1,			   [Same as `HAVE_MEMORY_H', don't depend on me.])])AC_CHECK_HEADERS(string.h memory.h)],[Remove this warning and`AC_CHECK_HEADER(memory.h, AC_DEFINE(...))' when you adjust your code touse HAVE_STRING_H and HAVE_MEMORY_H, not NEED_MEMORY_H.])# AU::AC_DIR_HEADER# -----------------# Like calling `AC_HEADER_DIRENT' and `AC_FUNC_CLOSEDIR_VOID', but# defines a different set of C preprocessor macros to indicate which# header file is found.AU_DEFUN([AC_DIR_HEADER],[AC_HEADER_DIRENTAC_FUNC_CLOSEDIR_VOIDtest ac_cv_header_dirent_dirent_h &&  AC_DEFINE([DIRENT], 1, [Same as `HAVE_DIRENT_H', don't depend on me.])test ac_cv_header_dirent_sys_ndir_h &&  AC_DEFINE([SYSNDIR], 1, [Same as `HAVE_SYS_NDIR_H', don't depend on me.])test ac_cv_header_dirent_sys_dir_h &&  AC_DEFINE([SYSDIR], 1, [Same as `HAVE_SYS_DIR_H', don't depend on me.])test ac_cv_header_dirent_ndir_h &&  AC_DEFINE([NDIR], 1, [Same as `HAVE_NDIR_H', don't depend on me.])],[Remove this warning and the four `AC_DEFINE' when youadjust your code to use `AC_HEADER_DIRENT'.])

⌨️ 快捷键说明

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