📄 aclocal.m4
字号:
$2],[sizeof($1);], sfs_cv_type_[]translit($1, [ ], [_])=yes, sfs_cv_type_[]translit($1, [ ], [_])=no))if test $sfs_cv_type_[]translit($1, [ ], [_]) = yes; then AC_DEFINE(HAVE_[]translit($1, [a-z ], [A-Z_]), 1, Define if system headers declare a $1 type.)fi])dnldnl Check for struct cmsghdr (for passing file descriptors)dnlAC_DEFUN(SFS_CHECK_FDPASS,[AC_CACHE_CHECK(for fd passing with msg_accrights in msghdr, sfs_cv_accrights,AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>],[struct msghdr mh;mh.msg_accrights = 0;], sfs_cv_accrights=yes, sfs_cv_accrights=no))AC_CACHE_CHECK(for fd passing with struct cmsghdr, sfs_cv_cmsghdr,if test "$sfs_cv_accrights" != "yes"; thenAC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>],[struct msghdr mh;struct cmsghdr cmh;mh.msg_control = (void *) &cmh;], sfs_cv_cmsghdr=yes, sfs_cv_cmsghdr=no)else sfs_cv_cmsghdr=nofi)if test $sfs_cv_accrights = yes; then AC_DEFINE(HAVE_ACCRIGHTS, 1, Define if msghdr has msg_accrights field for passing file descriptors.)fiif test $sfs_cv_cmsghdr = yes; then AC_DEFINE(HAVE_CMSGHDR, 1, Define if system has cmsghdr structure for passing file descriptors.)fi])dnldnl Check for sa_len in struct sockaddrsdnlAC_DEFUN(SFS_CHECK_SA_LEN,[AC_CACHE_CHECK(for sa_len in struct sockaddr, sfs_cv_sa_len,AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>],[struct sockaddr sa;sa.sa_len = 0;], sfs_cv_sa_len=yes, sfs_cv_sa_len=no))if test $sfs_cv_sa_len = yes; then AC_DEFINE(HAVE_SA_LEN, 1, Define if struct sockaddr has sa_len field.)fi])dnldnl Check for sockaddr_storagednlAC_DEFUN(SFS_CHECK_SOCKADDR_STORAGE,[SFS_CHECK_TYPE(struct sockaddr_storage)AC_CACHE_CHECK(for __ss_len in sockaddr_storage, sfs_cv_ss_len_underscores,AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>],[struct sockaddr_storage ss;ss.__ss_len = 0;], sfs_cv_ss_len_underscores=yes, sfs_cv_ss_len_underscores=no))if test $sfs_cv_ss_len_underscores = yes; then AC_DEFINE(HAVE_SS_LEN_UNDERSCORES, 1, Define if struct sockaddr_storage has __ss_len field, not ss_len)fi])dnldnl Check something about the nfs_args fielddnlAC_DEFUN(SFS_TRY_NFSARG_FIELD,[AC_TRY_COMPILE([#include "${srcdir}/nfsconf.h"],[struct nfs_args na;$1;], $2, $3)])dnldnl Check a particular field in nfs_argsdnlAC_DEFUN(SFS_CHECK_NFSMNT_FIELD,[AC_CACHE_CHECK(for $1 in nfs_args structure, sfs_cv_nfsmnt_$1,SFS_TRY_NFSARG_FIELD(na.$1, sfs_cv_nfsmnt_$1=yes, sfs_cv_nfsmnt_$1=no))if test $sfs_cv_nfsmnt_$1 = yes; then AC_DEFINE(HAVE_NFSMNT_[]translit($1, [a-z], [A-Z]), 1, Define if the nfs_args structure has a $1 field.)fi])dnldnl Check if nfs_args hostname field is an arraydnlAC_DEFUN(SFS_CHECK_NFSARG_HOSTNAME_ARRAY,[AC_CACHE_CHECK(if nfs_args hostname field is an array, sfs_cv_nfs_hostarray, SFS_TRY_NFSARG_FIELD(na.hostname = 0, sfs_cv_nfs_hostarray=no, sfs_cv_nfs_hostarray=yes))if test $sfs_cv_nfs_hostarray = yes; then AC_DEFINE(HAVE_NFSARG_HOSTNAME_ARRAY, 1, [The hostname field of nfs_arg is an array])fi])dnldnl Check if addr field is a pointer or notdnlAC_DEFUN(SFS_CHECK_NFSARG_ADDR_PTR,[AC_CHECK_HEADERS(tiuser.h)AC_CACHE_CHECK(if nfs_args addr field is a pointer, sfs_cv_nfsmnt_addr_ptr, SFS_TRY_NFSARG_FIELD(na.addr = (void *) 0, sfs_cv_nfsmnt_addr_ptr=yes, sfs_cv_nfsmnt_addr_ptr=no))if test $sfs_cv_nfsmnt_addr_ptr = yes; then AC_DEFINE(HAVE_NFSARG_ADDR_PTR, 1, [The addr field of nfs_arg is a pointer]) AC_CACHE_CHECK(if nfs_args addr is a netbuf *, sfs_cv_nfsmnt_addr_netbuf, SFS_TRY_NFSARG_FIELD(struct netbuf nb; *na.addr = nb, sfs_cv_nfsmnt_addr_netbuf=yes, sfs_cv_nfsmnt_addr_netbuf=no)) if test $sfs_cv_nfsmnt_addr_netbuf = yes; then AC_DEFINE(HAVE_NFSARG_ADDR_NETBUF, 1, [If the nfs_arg addr field is a netbuf pointer]) fifi])dnldnl Check for SVR4-like nfs_fh3 structurednlAC_DEFUN(SFS_CHECK_FH3_SVR4,[if test "$sfs_cv_nfsmnt_fhsize" != yes; then AC_CACHE_CHECK(for SVR4-like struct nfs_fh3, sfs_cv_fh3_svr4, AC_TRY_COMPILE([#include "${srcdir}/nfsconf.h"], [ struct nfs_fh3 fh; switch (0) case 0: case sizeof (fh.fh3_u.data) == 64:; ], sfs_cv_fh3_svr4=yes, sfs_cv_fh3_svr4=no)) if test $sfs_cv_fh3_svr4 = yes; then AC_DEFINE(HAVE_SVR4_FH3, 1, [The the fh field of the nfs_arg structure points to an SVR4 nfs_fh3]) fifi])dnldnl Check for 2 argument unmountdnlAC_DEFUN(SFS_CHECK_UNMOUNT_FLAGS,[AC_CACHE_CHECK(for a 2 argument unmount, sfs_cv_umount_flags,AC_TRY_COMPILE([#include <sys/param.h>#include <sys/mount.h>],[#ifdef HAVE_UNMOUNTunmount#else /* !HAVE_UNMOUNT */umount#endif /* !HAVE_UNMOUNT */ (0);], sfs_cv_umount_flags=no, sfs_cv_umount_flags=yes))if test $sfs_cv_umount_flags = yes; then AC_DEFINE(UNMOUNT_FLAGS, 1, Define if the unmount system call has 2 arguments.)else AC_CHECK_FUNCS(umount2)fi])dnldnl Check if we can find the nfs_args structurednlAC_DEFUN(SFS_CHECK_NFSMNT,[AC_CHECK_FUNCS(vfsmount unmount)need_nfs_nfs_h=noAC_EGREP_HEADER(nfs_args, sys/mount.h,, AC_EGREP_HEADER(nfs_args, nfs/mount.h, AC_DEFINE(NEED_NFS_MOUNT_H, 1, [The nfs_args structure is in <nfs/nfsmount.h>])) AC_EGREP_HEADER(nfs_args, nfs/nfsmount.h, AC_DEFINE(NEED_NFS_NFSMOUNT_H, 1, [The nfs_args structure is in <nfs/nfsmount.h])) AC_EGREP_HEADER(nfs_args, nfsclient/nfs.h, AC_DEFINE(NEED_NFSCLIENT_NFS_H, 1, [The nfs_args structure is in <nfsclient/nfs.h>])) AC_EGREP_HEADER(nfs_args, nfs/nfs.h, AC_DEFINE(NEED_NFS_NFS_H, 1, [The nfs_args structure is in <nfs/nfs.h>]) need_nfs_nfs_h=yes))AC_CACHE_CHECK(for nfs_args mount structure, sfs_cv_nfsmnt_ok, SFS_TRY_NFSARG_FIELD(, sfs_cv_nfsmnt_ok=yes, sfs_cv_nfsmnt_ok=no))if test $sfs_cv_nfsmnt_ok = no; then AC_MSG_ERROR([Could not find NFS mount argument structure!])fiif test "$need_nfs_nfs_h" = no; then AC_EGREP_HEADER(nfs_fh3, nfs/nfs.h, AC_DEFINE(NEED_NFS_NFS_H, 1, [The nfs_args structure is in <nfs/nfs.h>]) need_nfs_nfs_h=yes)fiAC_CHECK_HEADERS(linux/nfs2.h)SFS_CHECK_NFSMNT_FIELD(addrlen)SFS_CHECK_NFSMNT_FIELD(sotype)SFS_CHECK_NFSMNT_FIELD(proto)SFS_CHECK_NFSMNT_FIELD(fhsize)SFS_CHECK_NFSMNT_FIELD(fd)dnl Check whether we have Linux 2.2 NFS V3 mount structureSFS_CHECK_NFSMNT_FIELD(old_root)dnl Check whether file handle is named "root" or "fh"SFS_CHECK_NFSMNT_FIELD(root)SFS_CHECK_NFSMNT_FIELD(fh)dnl ksh apparently cannot handle this as a compound test.if test "$sfs_cv_nfsmnt_root" = "no"; then if test "$sfs_cv_nfsmnt_fh" = "no"; then AC_MSG_ERROR([Could not find the nfs_args file handle field!]) fifiAC_CHECK_HEADERS(sys/mntent.h)SFS_CHECK_FH3_SVR4if test "$sfs_cv_nfsmnt_fh" = yes; then if test "$sfs_cv_fh3_svr4" = yes -o "$sfs_cv_nfsmnt_fhsize" = yes; then AC_DEFINE(HAVE_NFS_V3, 1, [If the system supports NFS 3]) fielif test "$sfs_cv_nfsmnt_old_root" = yes; then AC_DEFINE(HAVE_NFS_V3, 1, [If the system supports NFS 3])fiSFS_CHECK_NFSARG_HOSTNAME_ARRAYSFS_CHECK_NFSARG_ADDR_PTRSFS_CHECK_UNMOUNT_FLAGS])dnldnl Use -ldb only if we need it.dnlAC_DEFUN(SFS_FIND_DB,[AC_CHECK_FUNC(dbopen)if test $ac_cv_func_dbopen = no; then AC_CHECK_LIB(db, dbopen) if test $ac_cv_lib_db_dbopen = no; then AC_MSG_ERROR([Could not find library for dbopen!]) fifi])dnldnl Check something about the stat structurednlAC_DEFUN(SFS_TRY_STAT_FIELD,[AC_TRY_COMPILE([#include <sys/stat.h>],[struct stat s;$1;], $2, $3)])dnldnl Check for a particular field in statdnlAC_DEFUN(SFS_CHECK_STAT_FIELD,[AC_CACHE_CHECK(for $1 in stat structure, sfs_cv_stat_$1,SFS_TRY_STAT_FIELD(s.$1, sfs_cv_stat_$1=yes, sfs_cv_stat_$1=no))if test $sfs_cv_stat_$1 = yes; then AC_DEFINE(SFS_HAVE_STAT_[]translit($1, [a-z], [A-Z]), 1, Define if the stat structure has a $1 field.)fi])dnldnl Check whether we can get away with large socket buffers.dnlAC_DEFUN(SFS_CHECK_SOCK_BUF,[AC_CACHE_CHECK(whether socket buffers > 64k are allowed, sfs_cv_large_sock_buf, AC_TRY_RUN([#include <sys/types.h>#include <sys/socket.h>intmain() { int bigbuf = 0x11000; int s = socket(AF_INET, SOCK_STREAM, 0); if (setsockopt(s, SOL_SOCKET, SO_RCVBUF, (char *)&bigbuf, sizeof(bigbuf))<0) exit(1); exit(0);}], sfs_cv_large_sock_buf=yes, sfs_cv_large_sock_buf=no, sfs_cv_large_sock_buf=no))if test $sfs_cv_large_sock_buf = yes; then AC_DEFINE(SFS_ALLOW_LARGE_BUFFER, 1, Define if SO_SNDBUF/SO_RCVBUF can exceed 64K.)fi])dnldnl Find pthreadsdnlAC_DEFUN(SFS_FIND_PTHREADS,[AC_ARG_WITH(pthreads,--with-pthreads=DIR Specify location of pthreads)ac_save_CFLAGS=$CFLAGSac_save_LIBS=$LIBSdirs="$with_pthreads ${prefix} ${prefix}/pthreads"dirs="$dirs /usr/local /usr/local/pthreads"AC_CACHE_CHECK(for pthread.h, sfs_cv_pthread_h,[for dir in " " $dirs; do iflags="-I${dir}/include" CFLAGS="${ac_save_CFLAGS} $iflags" AC_TRY_COMPILE([#include <pthread.h>], 0, sfs_cv_pthread_h="${iflags}"; break)done])if test -z "${sfs_cv_pthread_h+set}"; then AC_MSG_ERROR("Can\'t find pthread.h anywhere")fiAC_CACHE_CHECK(for libpthread, sfs_cv_libpthread,[for dir in "" " " $dirs; do case $dir in "") lflags=" " ;; " ") lflags="-lpthread" ;; *) lflags="-L${dir}/lib -lpthread" ;; esac LIBS="$ac_save_LIBS $lflags" AC_TRY_LINK([#include <pthread.h>], pthread_create (0, 0, 0, 0);, sfs_cv_libpthread=$lflags; break)done])if test -z ${sfs_cv_libpthread+set}; then AC_MSG_ERROR("Can\'t find libpthread anywhere")fiCFLAGS=$ac_save_CFLAGSCPPFLAGS="$CPPFLAGS $sfs_cv_pthread_h"LIBS="$ac_save_LIBS $sfs_cv_libpthread"])dnldnl Find GMPdnlAC_DEFUN(SFS_GMP,[AC_ARG_WITH(gmp,--with-gmp[[[=/usr/local]]] specify path for gmp)AC_SUBST(GMP_DIR)AC_SUBST(LIBGMP)AC_MSG_CHECKING([for GMP library])test "$with_gmp" = "no" && unset with_gmpif test -z "$with_gmp"; then if test -z "$GMP_DIR"; then for dir in `cd $srcdir && echo gmp*`; do if test -d "$srcdir/$dir"; then GMP_DIR=$dir break fi done fi if test "${with_gmp+set}" != set \ -a "$GMP_DIR" -a -d "$srcdir/$GMP_DIR"; then GMP_DIR=`echo $GMP_DIR | sed -e 's!/$!!'` if test -f "$srcdir/$GMP_DIR/gmp-h.in"; then CPPFLAGS="$CPPFLAGS "'-I$(top_builddir)/'"$GMP_DIR" else CPPFLAGS="$CPPFLAGS "'-I$(top_srcdir)/'"$GMP_DIR" fi #LDFLAGS="$LDFLAGS "'-L$(top_builddir)/'"$GMP_DIR" else GMP_DIR= for dir in "$prefix" /usr/local /usr; do if test \( -f $dir/lib/libgmp.a -o -f $dir/lib/libgmp.la \) \ -a \( -f $dir/include/gmp.h -o -f $dir/include/gmp3/gmp.h \ -o -f $dir/include/gmp2/gmp.h \); then with_gmp=$dir break fi done if test -z "$with_gmp"; then AC_MSG_ERROR([Could not find GMP library]) fi test "$with_gmp" = /usr -a -f /usr/include/gmp.h && unset with_gmp fifiif test "$with_gmp"; then unset GMP_DIR if test -f ${with_gmp}/include/gmp.h; then test "${with_gmp}" = /usr \ || CPPFLAGS="$CPPFLAGS -I${with_gmp}/include" elif test -f ${with_gmp}/include/gmp3/gmp.h; then CPPFLAGS="$CPPFLAGS -I${with_gmp}/include/gmp3" elif test -f ${with_gmp}/include/gmp2/gmp.h; then CPPFLAGS="$CPPFLAGS -I${with_gmp}/include/gmp2" else AC_MSG_ERROR([Could not find gmp.h header]) fi #LDFLAGS="$LDFLAGS -L${with_gmp}/lib" #LIBGMP=-lgmp if test -f "${with_gmp}/lib/libgmp.la"; then LIBGMP="${with_gmp}/lib/libgmp.la" else LIBGMP="${with_gmp}/lib/libgmp.a" fi AC_MSG_RESULT([$LIBGMP])elif test "$GMP_DIR"; then export GMP_DIR AC_MSG_RESULT([using distribution in $GMP_DIR subdirectory]) LIBGMP='$(top_builddir)/'"$GMP_DIR/libgmp.la"else AC_MSG_RESULT(yes) if test -f /usr/lib/libgmp.la; then LIBGMP=/usr/lib/libgmp.la elif test -f /usr/lib/libgmp.a; then # FreeBSD (among others) has a broken gmp shared library LIBGMP=/usr/lib/libgmp.a else LIBGMP=-lgmp fifiAC_CONFIG_SUBDIRS($GMP_DIR)ac_save_CFLAGS="$CFLAGS"if test "$GMP_DIR"; then if test -f "${srcdir}/${GMP_DIR}"/gmp-h.in; then CFLAGS="$CFLAGS -I${srcdir}/${GMP_DIR}" else CFLAGS="$CFLAGS -I${builddir}/${GMP_DIR}" fifi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -