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

📄 configure.ac

📁 OpenSSL Source code for SFTP, SSH, and many others
💻 AC
📖 第 1 页 / 共 5 页
字号:
			fi			AC_DEFINE(SKEY)			LIBS="-lskey $LIBS"			SKEY_MSG="yes" 				AC_MSG_CHECKING([for s/key support])			AC_TRY_RUN(				[#include <stdio.h>#include <skey.h>int main() { char *ff = skey_keyinfo(""); ff=""; return 0; }				],				[AC_MSG_RESULT(yes)],				[					AC_MSG_RESULT(no)					AC_MSG_ERROR([** Incomplete or missing s/key libraries.])				])		fi	])# Check whether user wants TCP wrappers supportTCPW_MSG="no"AC_ARG_WITH(tcp-wrappers,	[  --with-tcp-wrappers[[=PATH]]      Enable tcpwrappers support                            (optionally in PATH)],	[		if test "x$withval" != "xno" ; then			saved_LIBS="$LIBS"			saved_LDFLAGS="$LDFLAGS"			saved_CPPFLAGS="$CPPFLAGS"			if test -n "${withval}" -a "${withval}" != "yes"; then				if test -d "${withval}/lib"; then					if test -n "${need_dash_r}"; then						LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}"					else						LDFLAGS="-L${withval}/lib ${LDFLAGS}"					fi				else					if test -n "${need_dash_r}"; then						LDFLAGS="-L${withval} -R${withval} ${LDFLAGS}"					else						LDFLAGS="-L${withval} ${LDFLAGS}"					fi				fi				if test -d "${withval}/include"; then					CPPFLAGS="-I${withval}/include ${CPPFLAGS}"				else					CPPFLAGS="-I${withval} ${CPPFLAGS}"				fi			fi			LIBWRAP="-lwrap"			LIBS="$LIBWRAP $LIBS"			AC_MSG_CHECKING(for libwrap)			AC_TRY_LINK(				[#include <tcpd.h>					int deny_severity = 0, allow_severity = 0;				],				[hosts_access(0);],				[					AC_MSG_RESULT(yes)					AC_DEFINE(LIBWRAP)					AC_SUBST(LIBWRAP)					TCPW_MSG="yes"				],				[					AC_MSG_ERROR([*** libwrap missing])				]			)			LIBS="$saved_LIBS"		fi	])dnl    Checks for library functions.AC_CHECK_FUNCS(arc4random b64_ntop bcopy bindresvport_sa \	clock fchmod fchown freeaddrinfo futimes gai_strerror \	getaddrinfo getcwd getgrouplist getnameinfo getopt \	getrlimit getrusage getttyent glob inet_aton inet_ntoa \	inet_ntop innetgr login_getcapbool md5_crypt memmove \	mkdtemp mmap ngetaddrinfo openpty ogetaddrinfo readpassphrase \	realpath recvmsg rresvport_af sendmsg setdtablesize setegid \	setenv seteuid setgroups setlogin setproctitle setresgid setreuid \	setrlimit setsid setpcred setvbuf sigaction sigvec snprintf \	socketpair strerror strlcat strlcpy strmode strsep sysconf tcgetpgrp \	truncate utimes vhangup vsnprintf waitpid __b64_ntop _getpty)dnl IRIX and Solaris 2.5.1 have dirname() in libgenAC_CHECK_FUNCS(dirname, [AC_CHECK_HEADERS(libgen.h)] ,[	AC_CHECK_LIB(gen, dirname,[		AC_CACHE_CHECK([for broken dirname],			ac_cv_have_broken_dirname, [			save_LIBS="$LIBS"			LIBS="$LIBS -lgen"			AC_TRY_RUN(				[#include <libgen.h>#include <string.h>int main(int argc, char **argv) {    char *s, buf[32];    strncpy(buf,"/etc", 32);    s = dirname(buf);    if (!s || strncmp(s, "/", 32) != 0) {	exit(1);    } else {	exit(0);    }}				],				[ ac_cv_have_broken_dirname="no" ],				[ ac_cv_have_broken_dirname="yes" ]			)			LIBS="$save_LIBS"		])		if test "x$ac_cv_have_broken_dirname" = "xno" ; then			LIBS="$LIBS -lgen"			AC_DEFINE(HAVE_DIRNAME)			AC_CHECK_HEADERS(libgen.h)		fi	])])dnl    Checks for time functionsAC_CHECK_FUNCS(gettimeofday time)dnl    Checks for utmp functionsAC_CHECK_FUNCS(endutent getutent getutid getutline pututline setutent)AC_CHECK_FUNCS(utmpname)dnl    Checks for utmpx functionsAC_CHECK_FUNCS(endutxent getutxent getutxid getutxline pututxline )AC_CHECK_FUNCS(setutxent utmpxname)AC_CHECK_FUNC(daemon, 	[AC_DEFINE(HAVE_DAEMON)],	[AC_CHECK_LIB(bsd, daemon, [LIBS="$LIBS -lbsd"; AC_DEFINE(HAVE_DAEMON)])])AC_CHECK_FUNC(getpagesize, 	[AC_DEFINE(HAVE_GETPAGESIZE)],	[AC_CHECK_LIB(ucb, getpagesize, [LIBS="$LIBS -lucb"; AC_DEFINE(HAVE_GETPAGESIZE)])])# Check for broken snprintfif test "x$ac_cv_func_snprintf" = "xyes" ; then	AC_MSG_CHECKING([whether snprintf correctly terminates long strings])	AC_TRY_RUN(		[#include <stdio.h>int main(void){char b[5];snprintf(b,5,"123456789");return(b[4]!='\0');}		],		[AC_MSG_RESULT(yes)], 		[			AC_MSG_RESULT(no)			AC_DEFINE(BROKEN_SNPRINTF)			AC_MSG_WARN([****** Your snprintf() function is broken, complain to your vendor])		]	)fiAC_FUNC_GETPGRP# Check for PAM libsPAM_MSG="no"AC_ARG_WITH(pam,	[  --with-pam              Enable PAM support ],	[		if test "x$withval" != "xno" ; then			if test "x$ac_cv_header_security_pam_appl_h" != "xyes" ; then				AC_MSG_ERROR([PAM headers not found])			fi			AC_CHECK_LIB(dl, dlopen, , )			AC_CHECK_LIB(pam, pam_set_item, , AC_MSG_ERROR([*** libpam missing]))			AC_CHECK_FUNCS(pam_getenvlist)			disable_shadow=yes			PAM_MSG="yes"			AC_DEFINE(USE_PAM)			if test $ac_cv_lib_dl_dlopen = yes; then				LIBPAM="-lpam -ldl"			else				LIBPAM="-lpam"			fi			AC_SUBST(LIBPAM)		fi	])# Check for older PAMif test "x$PAM_MSG" = "xyes" ; then	# Check PAM strerror arguments (old PAM)	AC_MSG_CHECKING([whether pam_strerror takes only one argument])	AC_TRY_COMPILE(		[#include <stdlib.h>#include <security/pam_appl.h>		], 		[(void)pam_strerror((pam_handle_t *)NULL, -1);], 		[AC_MSG_RESULT(no)],		[			AC_DEFINE(HAVE_OLD_PAM)			AC_MSG_RESULT(yes)			PAM_MSG="yes (old library)"		]	)fi# Search for OpenSSLsaved_CPPFLAGS="$CPPFLAGS"saved_LDFLAGS="$LDFLAGS"AC_ARG_WITH(ssl-dir,	[  --with-ssl-dir=PATH     Specify path to OpenSSL installation ],	[		if test "x$withval" != "xno" ; then			if test -d "$withval/lib"; then				if test -n "${need_dash_r}"; then					LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}"				else					LDFLAGS="-L${withval}/lib ${LDFLAGS}"				fi			else				if test -n "${need_dash_r}"; then					LDFLAGS="-L${withval} -R${withval} ${LDFLAGS}"				else					LDFLAGS="-L${withval} ${LDFLAGS}"				fi			fi			if test -d "$withval/include"; then				CPPFLAGS="-I${withval}/include ${CPPFLAGS}"			else				CPPFLAGS="-I${withval} ${CPPFLAGS}"			fi		fi	])LIBS="$LIBS -lcrypto"AC_TRY_LINK_FUNC(RAND_add, AC_DEFINE(HAVE_OPENSSL),	[		dnl Check default openssl install dir		if test -n "${need_dash_r}"; then			LDFLAGS="-L/usr/local/ssl/lib -R/usr/local/ssl/lib ${saved_LDFLAGS}"		else			LDFLAGS="-L/usr/local/ssl/lib ${saved_LDFLAGS}"		fi		CPPFLAGS="-I/usr/local/ssl/include ${saved_CPPFLAGS}"		AC_TRY_LINK_FUNC(RAND_add, AC_DEFINE(HAVE_OPENSSL),			[				AC_MSG_ERROR([*** Can't find recent OpenSSL libcrypto (see config.log for details) ***])			]		)	])# Sanity check OpenSSL headersAC_MSG_CHECKING([whether OpenSSL's headers match the library])AC_TRY_RUN(	[#include <string.h>#include <openssl/opensslv.h>int main(void) { return(SSLeay() == OPENSSL_VERSION_NUMBER ? 0 : 1); }	],	[		AC_MSG_RESULT(yes)	],	[		AC_MSG_RESULT(no)		AC_MSG_ERROR(Your OpenSSL headers do not match your library)	])# Some Linux systems (Slackware) need crypt() from libcrypt, *not* the # version in OpenSSL. Skip this for PAMif test "x$PAM_MSG" = "xno" -a "x$check_for_libcrypt_later" = "x1"; then	AC_CHECK_LIB(crypt, crypt, LIBS="$LIBS -lcrypt")fi### Configure cryptographic random number support# Check wheter OpenSSL seeds itselfAC_MSG_CHECKING([whether OpenSSL's PRNG is internally seeded])AC_TRY_RUN(	[#include <string.h>#include <openssl/rand.h>int main(void) { return(RAND_status() == 1 ? 0 : 1); }	],	[		OPENSSL_SEEDS_ITSELF=yes		AC_MSG_RESULT(yes)	],	[		AC_MSG_RESULT(no)		# Default to use of the rand helper if OpenSSL doesn't		# seed itself		USE_RAND_HELPER=yes	])# Do we want to force the use of the rand helper?AC_ARG_WITH(rand-helper,	[  --with-rand-helper      Use subprocess to gather strong randomness ],	[		if test "x$withval" = "xno" ; then			# Force use of OpenSSL's internal RNG, even if 			# the previous test showed it to be unseeded.			if test -z "$OPENSSL_SEEDS_ITSELF" ; then				AC_MSG_WARN([*** Forcing use of OpenSSL's non-self-seeding PRNG])				OPENSSL_SEEDS_ITSELF=yes				USE_RAND_HELPER=""			fi		else			USE_RAND_HELPER=yes		fi	],)	# Which randomness source do we use?if test ! -z "$OPENSSL_SEEDS_ITSELF" -a -z "$USE_RAND_HELPER" ; then	# OpenSSL only	AC_DEFINE(OPENSSL_PRNG_ONLY)	RAND_MSG="OpenSSL internal ONLY"	INSTALL_SSH_RAND_HELPER=""elif test ! -z "$USE_RAND_HELPER" ; then	# install rand helper	RAND_MSG="ssh-rand-helper"	INSTALL_SSH_RAND_HELPER="yes"fiAC_SUBST(INSTALL_SSH_RAND_HELPER)### Configuration of ssh-rand-helper# PRNGD TCP socketAC_ARG_WITH(prngd-port,	[  --with-prngd-port=PORT  read entropy from PRNGD/EGD TCP localhost:PORT],	[		case "$withval" in		no)			withval=""			;;		[[0-9]]*)			;;		*)			AC_MSG_ERROR(You must specify a numeric port number for --with-prngd-port)			;;		esac		if test ! -z "$withval" ; then			PRNGD_PORT="$withval"			AC_DEFINE_UNQUOTED(PRNGD_PORT, $PRNGD_PORT)		fi	])# PRNGD Unix domain socketAC_ARG_WITH(prngd-socket,	[  --with-prngd-socket=FILE read entropy from PRNGD/EGD socket FILE (default=/var/run/egd-pool)],	[		case "$withval" in		yes)			withval="/var/run/egd-pool"			;;		no)			withval=""			;;		/*)			;;		*)			AC_MSG_ERROR(You must specify an absolute path to the entropy socket)			;;		esac		if test ! -z "$withval" ; then			if test ! -z "$PRNGD_PORT" ; then				AC_MSG_ERROR(You may not specify both a PRNGD/EGD port and socket)			fi			if test ! -r "$withval" ; then				AC_MSG_WARN(Entropy socket is not readable)			fi			PRNGD_SOCKET="$withval"			AC_DEFINE_UNQUOTED(PRNGD_SOCKET, "$PRNGD_SOCKET")		fi	],	[		# Check for existing socket only if we don't have a random device already		if test "$USE_RAND_HELPER" = yes ; then			AC_MSG_CHECKING(for PRNGD/EGD socket)			# Insert other locations here			for sock in /var/run/egd-pool /dev/egd-pool /etc/entropy; do				if test -r $sock && $TEST_MINUS_S_SH -c "test -S $sock -o -p $sock" ; then					PRNGD_SOCKET="$sock"					AC_DEFINE_UNQUOTED(PRNGD_SOCKET, "$PRNGD_SOCKET")					break;				fi			done			if test ! -z "$PRNGD_SOCKET" ; then				AC_MSG_RESULT($PRNGD_SOCKET)			else				AC_MSG_RESULT(not found)			fi		fi	])# Change default command timeout for hashing entropy sourceentropy_timeout=200AC_ARG_WITH(entropy-timeout,	[  --with-entropy-timeout  Specify entropy gathering command timeout (msec)],	[		if test "x$withval" != "xno" ; then			entropy_timeout=$withval		fi	]	)AC_DEFINE_UNQUOTED(ENTROPY_TIMEOUT_MSEC, $entropy_timeout)ssh_privsep_user=sshdAC_ARG_WITH(privsep-user,	[  --with-privsep-user=user Specify non-privileged user for privilege separation],	[		if test -n "$withval"; then			ssh_privsep_user=$withval		fi	]	)AC_DEFINE_UNQUOTED(SSH_PRIVSEP_USER, "$ssh_privsep_user")# We do this little dance with the search path to insure# that programs that we select for use by installed programs# (which may be run by the super-user) come from trusted# locations before they come from the user's private area.# This should help avoid accidentally configuring some# random version of a program in someone's personal bin.OPATH=$PATHPATH=/bin:/usr/bintest -h /bin 2> /dev/null && PATH=/usr/bintest -d /sbin && PATH=$PATH:/sbintest -d /usr/sbin && PATH=$PATH:/usr/sbinPATH=$PATH:/etc:$OPATH# These programs are used by the command hashing source to gather entropy OSSH_PATH_ENTROPY_PROG(PROG_LS, ls)OSSH_PATH_ENTROPY_PROG(PROG_NETSTAT, netstat)OSSH_PATH_ENTROPY_PROG(PROG_ARP, arp)OSSH_PATH_ENTROPY_PROG(PROG_IFCONFIG, ifconfig)OSSH_PATH_ENTROPY_PROG(PROG_JSTAT, jstat)OSSH_PATH_ENTROPY_PROG(PROG_PS, ps)OSSH_PATH_ENTROPY_PROG(PROG_SAR, sar)OSSH_PATH_ENTROPY_PROG(PROG_W, w)OSSH_PATH_ENTROPY_PROG(PROG_WHO, who)OSSH_PATH_ENTROPY_PROG(PROG_LAST, last)OSSH_PATH_ENTROPY_PROG(PROG_LASTLOG, lastlog)OSSH_PATH_ENTROPY_PROG(PROG_DF, df)OSSH_PATH_ENTROPY_PROG(PROG_VMSTAT, vmstat)OSSH_PATH_ENTROPY_PROG(PROG_UPTIME, uptime)OSSH_PATH_ENTROPY_PROG(PROG_IPCS, ipcs)OSSH_PATH_ENTROPY_PROG(PROG_TAIL, tail)# restore PATHPATH=$OPATH# Where does ssh-rand-helper get its randomness from?INSTALL_SSH_PRNG_CMDS=""if test ! -z "$INSTALL_SSH_RAND_HELPER" ; then	if test ! -z "$PRNGD_PORT" ; then		RAND_HELPER_MSG="TCP localhost:$PRNGD_PORT"	elif test ! -z "$PRNGD_SOCKET" ; then		RAND_HELPER_MSG="Unix domain socket \"$PRNGD_SOCKET\""	else		RAND_HELPER_MSG="Command hashing (timeout $entropy_timeout)"		RAND_HELPER_CMDHASH=yes		INSTALL_SSH_PRNG_CMDS="yes"	fifiAC_SUBST(INSTALL_SSH_PRNG_CMDS)# Cheap hack to ensure NEWS-OS libraries are arranged right.if test ! -z "$SONY" ; then  LIBS="$LIBS -liberty";fi# Checks for data types

⌨️ 快捷键说明

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