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

📄 configure.ac

📁 OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。它用安全、加密的网络连接工具代替了 telnet、ftp、 rlogin、rsh 和 rcp 工具。OpenSSH 支持
💻 AC
📖 第 1 页 / 共 5 页
字号:
OSSH_CHECK_HEADER_FOR_FIELD(ut_addr, utmp.h, HAVE_ADDR_IN_UTMP)OSSH_CHECK_HEADER_FOR_FIELD(ut_addr, utmpx.h, HAVE_ADDR_IN_UTMPX)OSSH_CHECK_HEADER_FOR_FIELD(ut_addr_v6, utmp.h, HAVE_ADDR_V6_IN_UTMP)OSSH_CHECK_HEADER_FOR_FIELD(ut_addr_v6, utmpx.h, HAVE_ADDR_V6_IN_UTMPX)OSSH_CHECK_HEADER_FOR_FIELD(ut_exit, utmp.h, HAVE_EXIT_IN_UTMP)OSSH_CHECK_HEADER_FOR_FIELD(ut_time, utmp.h, HAVE_TIME_IN_UTMP)OSSH_CHECK_HEADER_FOR_FIELD(ut_time, utmpx.h, HAVE_TIME_IN_UTMPX)OSSH_CHECK_HEADER_FOR_FIELD(ut_tv, utmpx.h, HAVE_TV_IN_UTMPX)AC_CHECK_MEMBERS([struct stat.st_blksize])AC_CACHE_CHECK([for ss_family field in struct sockaddr_storage],		ac_cv_have_ss_family_in_struct_ss, [	AC_TRY_COMPILE(		[#include <sys/types.h>#include <sys/socket.h>		],		[ struct sockaddr_storage s; s.ss_family = 1; ],		[ ac_cv_have_ss_family_in_struct_ss="yes" ],		[ ac_cv_have_ss_family_in_struct_ss="no" ],	)])if test "x$ac_cv_have_ss_family_in_struct_ss" = "xyes" ; then	AC_DEFINE(HAVE_SS_FAMILY_IN_SS)fiAC_CACHE_CHECK([for __ss_family field in struct sockaddr_storage],		ac_cv_have___ss_family_in_struct_ss, [	AC_TRY_COMPILE(		[#include <sys/types.h>#include <sys/socket.h>		],		[ struct sockaddr_storage s; s.__ss_family = 1; ],		[ ac_cv_have___ss_family_in_struct_ss="yes" ],		[ ac_cv_have___ss_family_in_struct_ss="no" ]	)])if test "x$ac_cv_have___ss_family_in_struct_ss" = "xyes" ; then	AC_DEFINE(HAVE___SS_FAMILY_IN_SS)fiAC_CACHE_CHECK([for pw_class field in struct passwd],		ac_cv_have_pw_class_in_struct_passwd, [	AC_TRY_COMPILE(		[#include <pwd.h>		],		[ struct passwd p; p.pw_class = 0; ],		[ ac_cv_have_pw_class_in_struct_passwd="yes" ],		[ ac_cv_have_pw_class_in_struct_passwd="no" ]	)])if test "x$ac_cv_have_pw_class_in_struct_passwd" = "xyes" ; then	AC_DEFINE(HAVE_PW_CLASS_IN_PASSWD)fiAC_CACHE_CHECK([for pw_expire field in struct passwd],		ac_cv_have_pw_expire_in_struct_passwd, [	AC_TRY_COMPILE(		[#include <pwd.h>		],		[ struct passwd p; p.pw_expire = 0; ],		[ ac_cv_have_pw_expire_in_struct_passwd="yes" ],		[ ac_cv_have_pw_expire_in_struct_passwd="no" ]	)])if test "x$ac_cv_have_pw_expire_in_struct_passwd" = "xyes" ; then	AC_DEFINE(HAVE_PW_EXPIRE_IN_PASSWD)fiAC_CACHE_CHECK([for pw_change field in struct passwd],		ac_cv_have_pw_change_in_struct_passwd, [	AC_TRY_COMPILE(		[#include <pwd.h>		],		[ struct passwd p; p.pw_change = 0; ],		[ ac_cv_have_pw_change_in_struct_passwd="yes" ],		[ ac_cv_have_pw_change_in_struct_passwd="no" ]	)])if test "x$ac_cv_have_pw_change_in_struct_passwd" = "xyes" ; then	AC_DEFINE(HAVE_PW_CHANGE_IN_PASSWD)fidnl make sure we're using the real structure members and not definesAC_CACHE_CHECK([for msg_accrights field in struct msghdr],		ac_cv_have_accrights_in_msghdr, [	AC_COMPILE_IFELSE(		[#include <sys/types.h>#include <sys/socket.h>#include <sys/uio.h>int main() {#ifdef msg_accrights#error "msg_accrights is a macro"exit(1);#endifstruct msghdr m;m.msg_accrights = 0;exit(0);}		],		[ ac_cv_have_accrights_in_msghdr="yes" ],		[ ac_cv_have_accrights_in_msghdr="no" ]	)])if test "x$ac_cv_have_accrights_in_msghdr" = "xyes" ; then	AC_DEFINE(HAVE_ACCRIGHTS_IN_MSGHDR)fiAC_CACHE_CHECK([for msg_control field in struct msghdr],		ac_cv_have_control_in_msghdr, [	AC_COMPILE_IFELSE(		[#include <sys/types.h>#include <sys/socket.h>#include <sys/uio.h>int main() {#ifdef msg_control#error "msg_control is a macro"exit(1);#endifstruct msghdr m;m.msg_control = 0;exit(0);}		],		[ ac_cv_have_control_in_msghdr="yes" ],		[ ac_cv_have_control_in_msghdr="no" ]	)])if test "x$ac_cv_have_control_in_msghdr" = "xyes" ; then	AC_DEFINE(HAVE_CONTROL_IN_MSGHDR)fiAC_CACHE_CHECK([if libc defines __progname], ac_cv_libc_defines___progname, [	AC_TRY_LINK([],		[ extern char *__progname; printf("%s", __progname); ],		[ ac_cv_libc_defines___progname="yes" ],		[ ac_cv_libc_defines___progname="no" ]	)])if test "x$ac_cv_libc_defines___progname" = "xyes" ; then	AC_DEFINE(HAVE___PROGNAME)fiAC_CACHE_CHECK([whether $CC implements __FUNCTION__], ac_cv_cc_implements___FUNCTION__, [	AC_TRY_LINK([#include <stdio.h>],		[ printf("%s", __FUNCTION__); ],		[ ac_cv_cc_implements___FUNCTION__="yes" ],		[ ac_cv_cc_implements___FUNCTION__="no" ]	)])if test "x$ac_cv_cc_implements___FUNCTION__" = "xyes" ; then	AC_DEFINE(HAVE___FUNCTION__)fiAC_CACHE_CHECK([whether $CC implements __func__], ac_cv_cc_implements___func__, [	AC_TRY_LINK([#include <stdio.h>],		[ printf("%s", __func__); ],		[ ac_cv_cc_implements___func__="yes" ],		[ ac_cv_cc_implements___func__="no" ]	)])if test "x$ac_cv_cc_implements___func__" = "xyes" ; then	AC_DEFINE(HAVE___func__)fiAC_CACHE_CHECK([whether getopt has optreset support],		ac_cv_have_getopt_optreset, [	AC_TRY_LINK(		[#include <getopt.h>		],		[ extern int optreset; optreset = 0; ],		[ ac_cv_have_getopt_optreset="yes" ],		[ ac_cv_have_getopt_optreset="no" ]	)])if test "x$ac_cv_have_getopt_optreset" = "xyes" ; then	AC_DEFINE(HAVE_GETOPT_OPTRESET)fiAC_CACHE_CHECK([if libc defines sys_errlist], ac_cv_libc_defines_sys_errlist, [	AC_TRY_LINK([],		[ extern const char *const sys_errlist[]; printf("%s", sys_errlist[0]);],		[ ac_cv_libc_defines_sys_errlist="yes" ],		[ ac_cv_libc_defines_sys_errlist="no" ]	)])if test "x$ac_cv_libc_defines_sys_errlist" = "xyes" ; then	AC_DEFINE(HAVE_SYS_ERRLIST)fiAC_CACHE_CHECK([if libc defines sys_nerr], ac_cv_libc_defines_sys_nerr, [	AC_TRY_LINK([],		[ extern int sys_nerr; printf("%i", sys_nerr);],		[ ac_cv_libc_defines_sys_nerr="yes" ],		[ ac_cv_libc_defines_sys_nerr="no" ]	)])if test "x$ac_cv_libc_defines_sys_nerr" = "xyes" ; then	AC_DEFINE(HAVE_SYS_NERR)fiSCARD_MSG="no"# Check whether user wants sectok supportAC_ARG_WITH(sectok,	[  --with-sectok           Enable smartcard support using libsectok],	[		if test "x$withval" != "xno" ; then			if test "x$withval" != "xyes" ; then				CPPFLAGS="$CPPFLAGS -I${withval}"				LDFLAGS="$LDFLAGS -L${withval}"				if test ! -z "$need_dash_r" ; then					LDFLAGS="$LDFLAGS -R${withval}"				fi				if test ! -z "$blibpath" ; then					blibpath="$blibpath:${withval}"				fi			fi			AC_CHECK_HEADERS(sectok.h)			if test "$ac_cv_header_sectok_h" != yes; then				AC_MSG_ERROR(Can't find sectok.h)			fi			AC_CHECK_LIB(sectok, sectok_open)			if test "$ac_cv_lib_sectok_sectok_open" != yes; then				AC_MSG_ERROR(Can't find libsectok)			fi			AC_DEFINE(SMARTCARD)			AC_DEFINE(USE_SECTOK)			SCARD_MSG="yes, using sectok"		fi	])# Check whether user wants OpenSC supportAC_ARG_WITH(opensc,	AC_HELP_STRING([--with-opensc=PFX],		       [Enable smartcard support using OpenSC]),	opensc_config_prefix="$withval", opensc_config_prefix="")if test x$opensc_config_prefix != x ; then  OPENSC_CONFIG=$opensc_config_prefix/bin/opensc-config  AC_PATH_PROG(OPENSC_CONFIG, opensc-config, no)  if test "$OPENSC_CONFIG" != "no"; then    LIBOPENSC_CFLAGS=`$OPENSC_CONFIG --cflags`    LIBOPENSC_LIBS=`$OPENSC_CONFIG --libs`    CPPFLAGS="$CPPFLAGS $LIBOPENSC_CFLAGS"    LDFLAGS="$LDFLAGS $LIBOPENSC_LIBS"    AC_DEFINE(SMARTCARD)    AC_DEFINE(USE_OPENSC)    SCARD_MSG="yes, using OpenSC"  fifi# Check libraries needed by DNS fingerprint supportAC_SEARCH_LIBS(getrrsetbyname, resolv,	[AC_DEFINE(HAVE_GETRRSETBYNAME)],	[		# Needed by our getrrsetbyname()		AC_SEARCH_LIBS(res_query, resolv)		AC_SEARCH_LIBS(dn_expand, resolv)		AC_MSG_CHECKING(if res_query will link)		AC_TRY_LINK_FUNC(res_query, AC_MSG_RESULT(yes),		   [AC_MSG_RESULT(no)		    saved_LIBS="$LIBS"		    LIBS="$LIBS -lresolv"		    AC_MSG_CHECKING(for res_query in -lresolv)		    AC_LINK_IFELSE([#include <resolv.h>int main(){	res_query (0, 0, 0, 0, 0);	return 0;}			],			[LIBS="$LIBS -lresolv"			 AC_MSG_RESULT(yes)],			[LIBS="$saved_LIBS"			 AC_MSG_RESULT(no)])		    ])		AC_CHECK_FUNCS(_getshort _getlong)		AC_CHECK_MEMBER(HEADER.ad,			[AC_DEFINE(HAVE_HEADER_AD)],,			[#include <arpa/nameser.h>])	])# Check whether user wants Kerberos 5 supportKRB5_MSG="no"AC_ARG_WITH(kerberos5,	[  --with-kerberos5=PATH   Enable Kerberos 5 support],	[ if test "x$withval" != "xno" ; then		if test "x$withval" = "xyes" ; then			KRB5ROOT="/usr/local"		else			KRB5ROOT=${withval}		fi		AC_DEFINE(KRB5)		KRB5_MSG="yes"		AC_MSG_CHECKING(for krb5-config)		if test -x  $KRB5ROOT/bin/krb5-config ; then			KRB5CONF=$KRB5ROOT/bin/krb5-config			AC_MSG_RESULT($KRB5CONF)			AC_MSG_CHECKING(for gssapi support)			if $KRB5CONF | grep gssapi >/dev/null ; then				AC_MSG_RESULT(yes)				AC_DEFINE(GSSAPI)				k5confopts=gssapi			else				AC_MSG_RESULT(no)				k5confopts=""			fi			K5CFLAGS="`$KRB5CONF --cflags $k5confopts`"			K5LIBS="`$KRB5CONF --libs $k5confopts`"			CPPFLAGS="$CPPFLAGS $K5CFLAGS"			AC_MSG_CHECKING(whether we are using Heimdal)			AC_TRY_COMPILE([ #include <krb5.h> ],				       [ char *tmp = heimdal_version; ],				       [ AC_MSG_RESULT(yes)					 AC_DEFINE(HEIMDAL) ],				         AC_MSG_RESULT(no)			)		else			AC_MSG_RESULT(no)			CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include"			LDFLAGS="$LDFLAGS -L${KRB5ROOT}/lib"			AC_MSG_CHECKING(whether we are using Heimdal)			AC_TRY_COMPILE([ #include <krb5.h> ],				       [ char *tmp = heimdal_version; ],				       [ AC_MSG_RESULT(yes)					 AC_DEFINE(HEIMDAL)					 K5LIBS="-lkrb5 -ldes"					 K5LIBS="$K5LIBS -lcom_err -lasn1"					 AC_CHECK_LIB(roken, net_write, 					   [K5LIBS="$K5LIBS -lroken"])				       ],				       [ AC_MSG_RESULT(no)					 K5LIBS="-lkrb5 -lk5crypto -lcom_err"				       ]			)			AC_SEARCH_LIBS(dn_expand, resolv)			AC_CHECK_LIB(gssapi,gss_init_sec_context,				[ AC_DEFINE(GSSAPI)				  K5LIBS="-lgssapi $K5LIBS" ],				[ AC_CHECK_LIB(gssapi_krb5,gss_init_sec_context,					[ AC_DEFINE(GSSAPI)					  K5LIBS="-lgssapi_krb5 $K5LIBS" ],					AC_MSG_WARN([Cannot find any suitable gss-api library - build may fail]),					$K5LIBS)				],				$K5LIBS)						AC_CHECK_HEADER(gssapi.h, ,				[ unset ac_cv_header_gssapi_h				  CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include/gssapi"				  AC_CHECK_HEADERS(gssapi.h, ,					AC_MSG_WARN([Cannot find any suitable gss-api header - build may fail])				  )				]			)			oldCPP="$CPPFLAGS"			CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include/gssapi"			AC_CHECK_HEADER(gssapi_krb5.h, ,					[ CPPFLAGS="$oldCPP" ])		fi		if test ! -z "$need_dash_r" ; then			LDFLAGS="$LDFLAGS -R${KRB5ROOT}/lib"		fi		if test ! -z "$blibpath" ; then			blibpath="$blibpath:${KRB5ROOT}/lib"		fi	fi	AC_CHECK_HEADERS(gssapi.h gssapi/gssapi.h)	AC_CHECK_HEADERS(gssapi_krb5.h gssapi/gssapi_krb5.h)	AC_CHECK_HEADERS(gssapi_generic.h gssapi/gssapi_generic.h)	LIBS="$LIBS $K5LIBS"	AC_SEARCH_LIBS(k_hasafs, kafs, AC_DEFINE(USE_AFS))	AC_SEARCH_LIBS(krb5_init_ets, $K5LIBS, AC_DEFINE(KRB5_INIT_ETS))	])# Looking for programs, paths and filesPRIVSEP_PATH=/var/emptyAC_ARG_WITH(privsep-path,	[  --with-privsep-path=xxx Path for privilege separation chroot (default=/var/empty)],	[		if test "x$withval" != "$no" ; then			PRIVSEP_PATH=$withval		fi	])AC_SUBST(PRIVSEP_PATH)AC_ARG_WITH(xauth,	[  --with-xauth=PATH       Specify path to xauth program ],	[		if test "x$withval" != "xno" ; then			xauth_path=$withval		fi	],	[		TestPath="$PATH"		TestPath="${TestPath}${PATH_SEPARATOR}/usr/X/bin"		TestPath="${TestPath}${PATH_SEPARATOR}/usr/bin/X11"		TestPath="${TestPath}${PATH_SEPARATOR}/usr/X11R6/bin"		TestPath="${TestPath}${PATH_SEPARATOR}/usr/openwin/bin"		AC_PATH_PROG(xauth_path, xauth, , $TestPath)		if (test ! -z "$xauth_path" && test -x "/usr/openwin/bin/xauth") ; then			xauth_path="/usr/openwin/bin/xauth"		fi	])STRIP_OPT=-sAC_ARG_ENABLE(strip,	[  --disable-strip         Disable calling strip(1) on install],	[		if test "x$enableval" = "xno" ; then			STRIP_OPT=		fi	])AC_SUBST(STRIP_OPT)if test -z "$xauth_path" ; then	XAUTH_PATH="undefined"	AC_SUBST(XAUTH_PATH)else	AC_DEFINE_UNQUOTED(XAUTH_PATH, "$xauth_path")	XAUTH_PATH=$xauth_path	AC_SUBST(XAUTH_PATH)fi# Check for mail directory (last resort if we cannot get it from headers)if test ! -z "$MAIL" ; then	maildir=`dirname $MAIL`	AC_DEFINE_UNQUOTED(MAIL_DIRECTORY, "$maildir")fiif test ! -z "$cross_compiling" && test "x$cross_compiling" = "xyes"; then	AC_MSG_WARN([cross compiling: Disabling /dev/ptmx test])	disable_ptmx_check=yesfiif test -z "$no_dev_ptmx" ; then	if test "x$disable_ptmx_check" != "xyes" ; then		AC_CHECK_FILE("/dev/ptmx",			[				AC_DEFINE_UNQUOTED(HAVE_DEV_PTMX)				have_dev_ptmx=1			]		)	fifiif test ! -z "$cross_compiling" && test "x$cross_compiling" != "xyes"; then	AC_CHECK_FILE("/dev/ptc",		[			AC_DEFINE_UNQUOTED(HAVE_DEV_PTS_AND_PTC)			have_dev_ptc=1		]	)else	AC_MSG_WARN([cross compiling: Disabling /dev/ptc test])fi# Options from here on. Some of these are preset by platform aboveAC_ARG_WITH(mantype,	[  --with-mantype=man|cat|doc  Set man page type],	[		case "$withval" in		man|cat|doc)			MANTYPE=$withval			;;		*)			AC_MSG_ERROR(invalid man type: $withval)			;;		esac	])if test -z "$MANTYPE"; then	TestPath="/usr/bin${PATH_SEPARATOR}/usr/ucb"	AC_PATH_PROGS(NROFF, nroff awf, /bin/false, $TestPath)	if ${NROFF} -mdoc ${srcdir}/ssh.1 >/dev/null 2>&1; then		MANTYPE=doc	elif ${NROFF} -man ${srcdir}/ssh.1 >/dev/null 2>&1; then		MANTYPE=man	else		MANTYPE=cat	fifiAC_SUBST(MANTYPE)if test "$MANTYPE" = "doc"; then	mansubdir=man;else	mansubdir=$MANTYPE;fiAC_SUBST(mansubdir)# Check whether to enable MD5 passwordsMD5_MSG="no"AC_A

⌨️ 快捷键说明

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