aclocal.m4

来自「TCPDUMP的C语言源代码,是在数据链路层的应用」· M4 代码 · 共 1,288 行 · 第 1/3 页

M4
1,288
字号
		    ac_cv_lbl_gcc_fixincludes=yes,		    ac_cv_lbl_gcc_fixincludes=no))	    AC_MSG_RESULT($ac_cv_lbl_gcc_fixincludes)	    if test $ac_cv_lbl_gcc_fixincludes = no ; then		    # Don't cache failure		    unset ac_cv_lbl_gcc_fixincludes		    AC_MSG_ERROR(see the INSTALL for more info)	    fi    fi])dnldnl Check for flex, default to lexdnl Require flex 2.4 or higherdnl Check for bison, default to yaccdnl Default to lex/yacc if both flex and bison are not availablednl Define the yy prefix string if using flex and bisondnldnl usage:dnldnl	AC_LBL_LEX_AND_YACC(lex, yacc, yyprefix)dnldnl results:dnldnl	$1 (lex set)dnl	$2 (yacc appended)dnl	$3 (optional flex and bison -P prefix)dnlAC_DEFUN(AC_LBL_LEX_AND_YACC,    [AC_ARG_WITH(flex, [  --without-flex          don't use flex])    AC_ARG_WITH(bison, [  --without-bison         don't use bison])    if test "$with_flex" = no ; then	    $1=lex    else	    AC_CHECK_PROGS($1, flex, lex)    fi    if test "$$1" = flex ; then	    # The -V flag was added in 2.4	    AC_MSG_CHECKING(for flex 2.4 or higher)	    AC_CACHE_VAL(ac_cv_lbl_flex_v24,		if flex -V >/dev/null 2>&1; then			ac_cv_lbl_flex_v24=yes		else			ac_cv_lbl_flex_v24=no		fi)	    AC_MSG_RESULT($ac_cv_lbl_flex_v24)	    if test $ac_cv_lbl_flex_v24 = no ; then		    s="2.4 or higher required"		    AC_MSG_WARN(ignoring obsolete flex executable ($s))		    $1=lex	    fi    fi    if test "$with_bison" = no ; then	    $2=yacc    else	    AC_CHECK_PROGS($2, bison, yacc)    fi    if test "$$2" = bison ; then	    $2="$$2 -y"    fi    if test "$$1" != lex -a "$$2" = yacc -o "$$1" = lex -a "$$2" != yacc ; then	    AC_MSG_WARN(don't have both flex and bison; reverting to lex/yacc)	    $1=lex	    $2=yacc    fi    if test "$$1" = flex -a -n "$3" ; then	    $1="$$1 -P$3"	    $2="$$2 -p $3"    fi])dnldnl Checks to see if union wait is used with WEXITSTATUS()dnldnl usage:dnldnl	AC_LBL_UNION_WAITdnldnl results:dnldnl	DECLWAITSTATUS (defined)dnlAC_DEFUN(AC_LBL_UNION_WAIT,    [AC_MSG_CHECKING(if union wait is used)    AC_CACHE_VAL(ac_cv_lbl_union_wait,	AC_TRY_COMPILE([#	include <sys/types.h>#	include <sys/wait.h>],	    [int status;	    u_int i = WEXITSTATUS(status);	    u_int j = waitpid(0, &status, 0);],	    ac_cv_lbl_union_wait=no,	    ac_cv_lbl_union_wait=yes))    AC_MSG_RESULT($ac_cv_lbl_union_wait)    if test $ac_cv_lbl_union_wait = yes ; then	    AC_DEFINE(DECLWAITSTATUS,union wait)    else	    AC_DEFINE(DECLWAITSTATUS,int)    fi])dnldnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len memberdnldnl usage:dnldnl	AC_LBL_SOCKADDR_SA_LENdnldnl results:dnldnl	HAVE_SOCKADDR_SA_LEN (defined)dnlAC_DEFUN(AC_LBL_SOCKADDR_SA_LEN,    [AC_MSG_CHECKING(if sockaddr struct has sa_len member)    AC_CACHE_VAL(ac_cv_lbl_sockaddr_has_sa_len,	AC_TRY_COMPILE([#	include <sys/types.h>#	include <sys/socket.h>],	[u_int i = sizeof(((struct sockaddr *)0)->sa_len)],	ac_cv_lbl_sockaddr_has_sa_len=yes,	ac_cv_lbl_sockaddr_has_sa_len=no))    AC_MSG_RESULT($ac_cv_lbl_sockaddr_has_sa_len)    if test $ac_cv_lbl_sockaddr_has_sa_len = yes ; then	    AC_DEFINE(HAVE_SOCKADDR_SA_LEN)    fi])dnldnl Checks to see if -R is useddnldnl usage:dnldnl	AC_LBL_HAVE_RUN_PATHdnldnl results:dnldnl	ac_cv_lbl_have_run_path (yes or no)dnlAC_DEFUN(AC_LBL_HAVE_RUN_PATH,    [AC_MSG_CHECKING(for ${CC-cc} -R)    AC_CACHE_VAL(ac_cv_lbl_have_run_path,	[echo 'main(){}' > conftest.c	${CC-cc} -o conftest conftest.c -R/a1/b2/c3 >conftest.out 2>&1	if test ! -s conftest.out ; then		ac_cv_lbl_have_run_path=yes	else		ac_cv_lbl_have_run_path=no	fi	rm -f conftest*])    AC_MSG_RESULT($ac_cv_lbl_have_run_path)    ])dnldnl Check whether a given format can be used to print 64-bit integersdnlAC_DEFUN(AC_LBL_CHECK_64BIT_FORMAT,  [    AC_MSG_CHECKING([whether %$1x can be used to format 64-bit integers])    AC_RUN_IFELSE(      [	AC_LANG_SOURCE(	  [[#	    ifdef HAVE_INTTYPES_H	    #include <inttypes.h>#	    endif#	    ifdef HAVE_SYS_BITYPES_H            #include <sys/bitypes.h>#	    endif	    #include <stdio.h>	    #include <sys/types.h>	    main()	    {	      u_int64_t t = 1;	      char strbuf[16+1];	      sprintf(strbuf, "%016$1x", t << 32);	      if (strcmp(strbuf, "0000000100000000") == 0)		exit(0);	      else		exit(1);	    }	  ]])      ],      [	AC_DEFINE(PRId64, "$1d")	AC_DEFINE(PRIo64, "$1o")	AC_DEFINE(PRIx64, "$1x")	AC_DEFINE(PRIu64, "$1u")	AC_MSG_RESULT(yes)      ],      [	AC_MSG_RESULT(no)	$2      ])  ])dnldnl Checks to see if unaligned memory accesses faildnldnl usage:dnldnl	AC_LBL_UNALIGNED_ACCESSdnldnl results:dnldnl	LBL_ALIGN (DEFINED)dnlAC_DEFUN(AC_LBL_UNALIGNED_ACCESS,    [AC_MSG_CHECKING(if unaligned accesses fail)    AC_CACHE_VAL(ac_cv_lbl_unaligned_fail,	[case "$host_cpu" in	#	# These are CPU types where:	#	#	the CPU faults on an unaligned access, but at least some	#	OSes that support that CPU catch the fault and simulate	#	the unaligned access (e.g., Alpha/{Digital,Tru64} UNIX) -	#	the simulation is slow, so we don't want to use it;	#	#	the CPU, I infer (from the old	#	# XXX: should also check that they don't do weird things (like on arm)	#	#	comment) doesn't fault on unaligned accesses, but doesn't	#	do a normal unaligned fetch, either (e.g., presumably, ARM);	#	#	for whatever reason, the test program doesn't work	#	(this has been claimed to be the case for several of those	#	CPUs - I don't know what the problem is; the problem	#	was reported as "the test program dumps core" for SuperH,	#	but that's what the test program is *supposed* to do -	#	it dumps core before it writes anything, so the test	#	for an empty output file should find an empty output	#	file and conclude that unaligned accesses don't work).	#	# This run-time test won't work if you're cross-compiling, so	# in order to support cross-compiling for a particular CPU,	# we have to wire in the list of CPU types anyway, as far as	# I know, so perhaps we should just have a set of CPUs on	# which we know it doesn't work, a set of CPUs on which we	# know it does work, and have the script just fail on other	# cpu types and update it when such a failure occurs.	#	alpha*|arm*|bfin*|hp*|mips*|sh*|sparc*|ia64|nv1)		ac_cv_lbl_unaligned_fail=yes		;;	*)		cat >conftest.c <<EOF#		include <sys/types.h>#		include <sys/wait.h>#		include <stdio.h>		unsigned char a[[5]] = { 1, 2, 3, 4, 5 };		main() {		unsigned int i;		pid_t pid;		int status;		/* avoid "core dumped" message */		pid = fork();		if (pid <  0)			exit(2);		if (pid > 0) {			/* parent */			pid = waitpid(pid, &status, 0);			if (pid < 0)				exit(3);			exit(!WIFEXITED(status));		}		/* child */		i = *(unsigned int *)&a[[1]];		printf("%d\n", i);		exit(0);		}EOF		${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS \		    conftest.c $LIBS >/dev/null 2>&1		if test ! -x conftest ; then			dnl failed to compile for some reason			ac_cv_lbl_unaligned_fail=yes		else			./conftest >conftest.out			if test ! -s conftest.out ; then				ac_cv_lbl_unaligned_fail=yes			else				ac_cv_lbl_unaligned_fail=no			fi		fi		rm -f conftest* core core.conftest		;;	esac])    AC_MSG_RESULT($ac_cv_lbl_unaligned_fail)    if test $ac_cv_lbl_unaligned_fail = yes ; then	    AC_DEFINE(LBL_ALIGN)    fi])dnldnl If using gcc and the file .devel exists:dnl	Compile with -g (if supported) and -Walldnl	If using gcc 2 or later, do extra prototype checking and some otherdnl	checksdnl	If an os prototype include exists, symlink os-proto.h to itdnldnl usage:dnldnl	AC_LBL_DEVEL(copt)dnldnl results:dnldnl	$1 (copt appended)dnl	HAVE_OS_PROTO_H (defined)dnl	os-proto.h (symlinked)dnlAC_DEFUN(AC_LBL_DEVEL,    [rm -f os-proto.h    if test "${LBL_CFLAGS+set}" = set; then	    $1="$$1 ${LBL_CFLAGS}"    fi    if test -f .devel ; then	    if test "$GCC" = yes ; then		    if test "${LBL_CFLAGS+set}" != set; then			    if test "$ac_cv_prog_cc_g" = yes ; then				    $1="-g $$1"			    fi			    $1="$$1 -Wall"			    if test $ac_cv_lbl_gcc_vers -gt 1 ; then				    $1="$$1 -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings -Wpointer-arith -W"			    fi		    fi	    else		    case "$host_os" in		    irix6*)			    V_CCOPT="$V_CCOPT -n32"			    ;;		    *)			    ;;		    esac	    fi	    os=`echo $host_os | sed -e 's/\([[0-9]][[0-9]]*\)[[^0-9]].*$/\1/'`	    name="lbl/os-$os.h"	    if test -f $name ; then		    ln -s $name os-proto.h		    AC_DEFINE(HAVE_OS_PROTO_H)	    else		    AC_MSG_WARN(can't find $name)	    fi    fi])dnldnl Improved version of AC_CHECK_LIBdnldnl Thanks to John Hawkinson (jhawk@mit.edu)dnldnl usage:dnldnl	AC_LBL_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [,dnl	    ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])dnldnl results:dnldnl	LIBSdnldnl XXX - "AC_LBL_LIBRARY_NET" was redone to use "AC_SEARCH_LIBS"dnl rather than "AC_LBL_CHECK_LIB", so this isn't used any more.dnl We keep it around for reference purposes in case it's everdnl useful in the future.dnldefine(AC_LBL_CHECK_LIB,[AC_MSG_CHECKING([for $2 in -l$1])dnl Use a cache variable name containing the library, functiondnl name, and extra libraries to link with, because the test really isdnl for library $1 defining function $2, when linked with potinaldnl library $5, not just for library $1.  Separate tests with the samednl $1 and different $2's or $5's may have different results.ac_lib_var=`echo $1['_']$2['_']$5 | sed 'y%./+- %__p__%'`AC_CACHE_VAL(ac_cv_lbl_lib_$ac_lib_var,[ac_save_LIBS="$LIBS"LIBS="-l$1 $5 $LIBS"AC_TRY_LINK(dnlifelse([$2], [main], , dnl Avoid conflicting decl of main.[/* Override any gcc2 internal prototype to avoid an error.  */]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplusextern "C"#endif])dnl[/* We use char because int might match the return type of a gcc2    builtin and then its argument prototype would still apply.  */char $2();]),	    [$2()],	    eval "ac_cv_lbl_lib_$ac_lib_var=yes",	    eval "ac_cv_lbl_lib_$ac_lib_var=no")LIBS="$ac_save_LIBS"])dnlif eval "test \"`echo '$ac_cv_lbl_lib_'$ac_lib_var`\" = yes"; then  AC_MSG_RESULT(yes)  ifelse([$3], ,[changequote(, )dnl  ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`changequote([, ])dnl  AC_DEFINE_UNQUOTED($ac_tr_lib)  LIBS="-l$1 $LIBS"], [$3])else  AC_MSG_RESULT(no)ifelse([$4], , , [$4])dnlfi])dnldnl AC_LBL_LIBRARY_NETdnldnl This test is for network applications that need socket() anddnl gethostbyname() -ish functions.  Under Solaris, those applicationsdnl need to link with "-lsocket -lnsl".  Under IRIX, they need to linkdnl with "-lnsl" but should *not* link with "-lsocket" becausednl libsocket.a breaks a number of things (for instance:dnl gethostbyname() under IRIX 5.2, and snoop sockets under mostdnl versions of IRIX).dnldnl Unfortunately, many application developers are not aware of this,dnl and mistakenly write tests that cause -lsocket to be used underdnl IRIX.  It is also easy to write tests that cause -lnsl to be useddnl under operating systems where neither are necessary (or useful),dnl such as SunOS 4.1.4, which uses -lnsl for TLI.dnldnl This test exists so that every application developer does not testdnl this in a different, and subtly broken fashion.

⌨️ 快捷键说明

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