📄 configure.ac
字号:
)fidnl BSD systems use /etc/login.conf so --with-default-path= has no effectif test $ac_cv_func_login_getcapbool = "yes" -a \ $ac_cv_header_login_cap_h = "yes" ; then USES_LOGIN_CONF=yesfi# Whether to mess with the default pathSERVER_PATH_MSG="(default)" AC_ARG_WITH(default-path, [ --with-default-path= Specify default \$PATH environment for server], [ if test "$USES_LOGIN_CONF" = "yes" ; then AC_MSG_WARN([--with-default-path=PATH has no effect on this system.Edit /etc/login.conf instead.]) elif test "x$withval" != "xno" ; then user_path="$withval" SERVER_PATH_MSG="$withval" fi ], [ if test "$USES_LOGIN_CONF" = "yes" ; then AC_MSG_WARN([Make sure the path to scp is in /etc/login.conf]) else AC_TRY_RUN( [/* find out what STDPATH is */#include <stdio.h>#ifdef HAVE_PATHS_H# include <paths.h>#endif#ifndef _PATH_STDPATH# define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin"#endif#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#define DATA "conftest.stdpath"main(){ FILE *fd; int rc; fd = fopen(DATA,"w"); if(fd == NULL) exit(1); if ((rc = fprintf(fd,"%s", _PATH_STDPATH)) < 0) exit(1); exit(0);} ], [ user_path=`cat conftest.stdpath` ], [ user_path="/usr/bin:/bin:/usr/sbin:/sbin" ], [ user_path="/usr/bin:/bin:/usr/sbin:/sbin" ] )# make sure $bindir is in USER_PATH so scp will work t_bindir=`eval echo ${bindir}` case $t_bindir in NONE/*) t_bindir=`echo $t_bindir | sed "s~NONE~$prefix~"` ;; esac case $t_bindir in NONE/*) t_bindir=`echo $t_bindir | sed "s~NONE~$ac_default_prefix~"` ;; esac echo $user_path | grep ":$t_bindir" > /dev/null 2>&1 if test $? -ne 0 ; then echo $user_path | grep "^$t_bindir" > /dev/null 2>&1 if test $? -ne 0 ; then user_path=$user_path:$t_bindir AC_MSG_RESULT(Adding $t_bindir to USER_PATH so scp will work) fi fi fi ])if test "$USES_LOGIN_CONF" != "yes" ; then AC_DEFINE_UNQUOTED(USER_PATH, "$user_path") AC_SUBST(user_path)fi# Set superuser path separately to user pathAC_ARG_WITH(superuser-path, [ --with-superuser-path= Specify different path for super-user], [ if test "x$withval" != "xno" ; then AC_DEFINE_UNQUOTED(SUPERUSER_PATH, "$withval") superuser_path=$withval fi ])# Whether to force IPv4 by default (needed on broken glibc Linux)IPV4_HACK_MSG="no" AC_ARG_WITH(ipv4-default, [ --with-ipv4-default Use IPv4 by connections unless '-6' specified], [ if test "x$withval" != "xno" ; then AC_DEFINE(IPV4_DEFAULT) IPV4_HACK_MSG="yes" fi ])AC_MSG_CHECKING([if we need to convert IPv4 in IPv6-mapped addresses])IPV4_IN6_HACK_MSG="no" AC_ARG_WITH(4in6, [ --with-4in6 Check for and convert IPv4 in IPv6 mapped addresses], [ if test "x$withval" != "xno" ; then AC_MSG_RESULT(yes) AC_DEFINE(IPV4_IN_IPV6) IPV4_IN6_HACK_MSG="yes" else AC_MSG_RESULT(no) fi ],[ if test "x$inet6_default_4in6" = "xyes"; then AC_MSG_RESULT([yes (default)]) AC_DEFINE(IPV4_IN_IPV6) IPV4_IN6_HACK_MSG="yes" else AC_MSG_RESULT([no (default)]) fi ])# Whether to enable BSD auth supportBSD_AUTH_MSG=noAC_ARG_WITH(bsd-auth, [ --with-bsd-auth Enable BSD auth support], [ if test "x$withval" != "xno" ; then AC_DEFINE(BSD_AUTH) BSD_AUTH_MSG=yes fi ])# Where to place sshd.pidpiddir=/var/run# make sure the directory existsif test ! -d $piddir ; then piddir=`eval echo ${sysconfdir}` case $piddir in NONE/*) piddir=`echo $piddir | sed "s~NONE~$ac_default_prefix~"` ;; esacfiAC_ARG_WITH(pid-dir, [ --with-pid-dir=PATH Specify location of ssh.pid file], [ if test "x$withval" != "xno" ; then piddir=$withval if test ! -d $piddir ; then AC_MSG_WARN([** no $piddir directory on this system **]) fi fi ])AC_DEFINE_UNQUOTED(_PATH_SSH_PIDDIR, "$piddir")AC_SUBST(piddir)dnl allow user to disable some login recording featuresAC_ARG_ENABLE(lastlog, [ --disable-lastlog disable use of lastlog even if detected [no]], [ AC_DEFINE(DISABLE_LASTLOG) ])AC_ARG_ENABLE(utmp, [ --disable-utmp disable use of utmp even if detected [no]], [ AC_DEFINE(DISABLE_UTMP) ])AC_ARG_ENABLE(utmpx, [ --disable-utmpx disable use of utmpx even if detected [no]], [ AC_DEFINE(DISABLE_UTMPX) ])AC_ARG_ENABLE(wtmp, [ --disable-wtmp disable use of wtmp even if detected [no]], [ AC_DEFINE(DISABLE_WTMP) ])AC_ARG_ENABLE(wtmpx, [ --disable-wtmpx disable use of wtmpx even if detected [no]], [ AC_DEFINE(DISABLE_WTMPX) ])AC_ARG_ENABLE(libutil, [ --disable-libutil disable use of libutil (login() etc.) [no]], [ AC_DEFINE(DISABLE_LOGIN) ])AC_ARG_ENABLE(pututline, [ --disable-pututline disable use of pututline() etc. ([uw]tmp) [no]], [ AC_DEFINE(DISABLE_PUTUTLINE) ])AC_ARG_ENABLE(pututxline, [ --disable-pututxline disable use of pututxline() etc. ([uw]tmpx) [no]], [ AC_DEFINE(DISABLE_PUTUTXLINE) ])AC_ARG_WITH(lastlog, [ --with-lastlog=FILE|DIR specify lastlog location [common locations]], [ if test "x$withval" = "xno" ; then AC_DEFINE(DISABLE_LASTLOG) else conf_lastlog_location=$withval fi ])dnl lastlog, [uw]tmpx? detectiondnl NOTE: set the paths in the platform section to avoid thednl need for command-line parametersdnl lastlog and [uw]tmp are subject to a file search if all else failsdnl lastlog detectiondnl NOTE: the code itself will detect if lastlog is a directoryAC_MSG_CHECKING([if your system defines LASTLOG_FILE])AC_TRY_COMPILE([#include <sys/types.h>#include <utmp.h>#ifdef HAVE_LASTLOG_H# include <lastlog.h>#endif#ifdef HAVE_PATHS_H# include <paths.h>#endif#ifdef HAVE_LOGIN_H# include <login.h>#endif ], [ char *lastlog = LASTLOG_FILE; ], [ AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) AC_MSG_CHECKING([if your system defines _PATH_LASTLOG]) AC_TRY_COMPILE([#include <sys/types.h>#include <utmp.h>#ifdef HAVE_LASTLOG_H# include <lastlog.h>#endif#ifdef HAVE_PATHS_H# include <paths.h>#endif ], [ char *lastlog = _PATH_LASTLOG; ], [ AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) system_lastlog_path=no ]) ])if test -z "$conf_lastlog_location"; then if test x"$system_lastlog_path" = x"no" ; then for f in /var/log/lastlog /usr/adm/lastlog /var/adm/lastlog /etc/security/lastlog ; do if (test -d "$f" || test -f "$f") ; then conf_lastlog_location=$f fi done if test -z "$conf_lastlog_location"; then AC_MSG_WARN([** Cannot find lastlog **]) dnl Don't define DISABLE_LASTLOG - that means we don't try wtmp/wtmpx fi fifiif test -n "$conf_lastlog_location"; then AC_DEFINE_UNQUOTED(CONF_LASTLOG_FILE, "$conf_lastlog_location")fi dnl utmp detectionAC_MSG_CHECKING([if your system defines UTMP_FILE])AC_TRY_COMPILE([#include <sys/types.h>#include <utmp.h>#ifdef HAVE_PATHS_H# include <paths.h>#endif ], [ char *utmp = UTMP_FILE; ], [ AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) system_utmp_path=no ])if test -z "$conf_utmp_location"; then if test x"$system_utmp_path" = x"no" ; then for f in /etc/utmp /usr/adm/utmp /var/run/utmp; do if test -f $f ; then conf_utmp_location=$f fi done if test -z "$conf_utmp_location"; then AC_DEFINE(DISABLE_UTMP) fi fifiif test -n "$conf_utmp_location"; then AC_DEFINE_UNQUOTED(CONF_UTMP_FILE, "$conf_utmp_location")fi dnl wtmp detectionAC_MSG_CHECKING([if your system defines WTMP_FILE])AC_TRY_COMPILE([#include <sys/types.h>#include <utmp.h>#ifdef HAVE_PATHS_H# include <paths.h>#endif ], [ char *wtmp = WTMP_FILE; ], [ AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) system_wtmp_path=no ])if test -z "$conf_wtmp_location"; then if test x"$system_wtmp_path" = x"no" ; then for f in /usr/adm/wtmp /var/log/wtmp; do if test -f $f ; then conf_wtmp_location=$f fi done if test -z "$conf_wtmp_location"; then AC_DEFINE(DISABLE_WTMP) fi fifiif test -n "$conf_wtmp_location"; then AC_DEFINE_UNQUOTED(CONF_WTMP_FILE, "$conf_wtmp_location")fi dnl utmpx detection - I don't know any system so perverse as to requirednl utmpx, but not define UTMPX_FILE (ditto wtmpx.) No doubt it's outdnl there, though.AC_MSG_CHECKING([if your system defines UTMPX_FILE])AC_TRY_COMPILE([#include <sys/types.h>#include <utmp.h>#ifdef HAVE_UTMPX_H#include <utmpx.h>#endif#ifdef HAVE_PATHS_H# include <paths.h>#endif ], [ char *utmpx = UTMPX_FILE; ], [ AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) system_utmpx_path=no ])if test -z "$conf_utmpx_location"; then if test x"$system_utmpx_path" = x"no" ; then AC_DEFINE(DISABLE_UTMPX) fielse AC_DEFINE_UNQUOTED(CONF_UTMPX_FILE, "$conf_utmpx_location")fi dnl wtmpx detectionAC_MSG_CHECKING([if your system defines WTMPX_FILE])AC_TRY_COMPILE([#include <sys/types.h>#include <utmp.h>#ifdef HAVE_UTMPX_H#include <utmpx.h>#endif#ifdef HAVE_PATHS_H# include <paths.h>#endif ], [ char *wtmpx = WTMPX_FILE; ], [ AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) system_wtmpx_path=no ])if test -z "$conf_wtmpx_location"; then if test x"$system_wtmpx_path" = x"no" ; then AC_DEFINE(DISABLE_WTMPX) fielse AC_DEFINE_UNQUOTED(CONF_WTMPX_FILE, "$conf_wtmpx_location")fi if test ! -z "$blibpath" ; then LDFLAGS="$LDFLAGS -blibpath:$blibpath" AC_MSG_WARN([Please check and edit -blibpath in LDFLAGS in Makefile])fidnl remove pam and dl because they are in $LIBPAMif test "$PAM_MSG" = yes ; then LIBS=`echo $LIBS | sed 's/-lpam //'`fiif test "$ac_cv_lib_pam_pam_set_item" = yes ; then LIBS=`echo $LIBS | sed 's/-ldl //'`fiAC_EXEEXTAC_CONFIG_FILES([Makefile openbsd-compat/Makefile scard/Makefile ssh_prng_cmds])AC_OUTPUT# Print summary of options# Someone please show me a better way :)A=`eval echo ${prefix}` ; A=`eval echo ${A}`B=`eval echo ${bindir}` ; B=`eval echo ${B}`C=`eval echo ${sbindir}` ; C=`eval echo ${C}`D=`eval echo ${sysconfdir}` ; D=`eval echo ${D}`E=`eval echo ${libexecdir}/ssh-askpass` ; E=`eval echo ${E}`F=`eval echo ${mandir}/${mansubdir}X` ; F=`eval echo ${F}`G=`eval echo ${piddir}` ; G=`eval echo ${G}`H=`eval echo ${PRIVSEP_PATH}` ; H=`eval echo ${H}`I=`eval echo ${user_path}` ; I=`eval echo ${I}`J=`eval echo ${superuser_path}` ; J=`eval echo ${J}`echo ""echo "OpenSSH has been configured with the following options:"echo " User binaries: $B"echo " System binaries: $C"echo " Configuration files: $D"echo " Askpass program: $E"echo " Manual pages: $F"echo " PID file: $G"echo " Privilege separation chroot path: $H"if test "$USES_LOGIN_CONF" = "yes" ; thenecho " At runtime, sshd will use the path defined in /etc/login.conf"elseecho " sshd default user PATH: $I"fiif test ! -z "$superuser_path" ; thenecho " sshd superuser user PATH: $J"fiecho " Manpage format: $MANTYPE"echo " PAM support: ${PAM_MSG}"echo " KerberosIV support: $KRB4_MSG"echo " KerberosV support: $KRB5_MSG"echo " Smartcard support: $SCARD_MSG"echo " AFS support: $AFS_MSG"echo " S/KEY support: $SKEY_MSG"echo " TCP Wrappers support: $TCPW_MSG"echo " MD5 password support: $MD5_MSG"echo " IP address in \$DISPLAY hack: $DISPLAY_HACK_MSG"echo " Use IPv4 by default hack: $IPV4_HACK_MSG"echo " Translate v4 in v6 hack: $IPV4_IN6_HACK_MSG"echo " BSD Auth support: $BSD_AUTH_MSG"echo " Random number source: $RAND_MSG"if test ! -z "$USE_RAND_HELPER" ; thenecho " ssh-rand-helper collects from: $RAND_HELPER_MSG"fiecho ""echo " Host: ${host}"echo " Compiler: ${CC}"echo " Compiler flags: ${CFLAGS}"echo "Preprocessor flags: ${CPPFLAGS}"echo " Linker flags: ${LDFLAGS}"echo " Libraries: ${LIBWRAP} ${LIBPAM} ${LIBS}"echo ""if test "x$PAM_MSG" = "xyes" ; then echo "PAM is enabled. You may need to install a PAM control file " echo "for sshd, otherwise password authentication may fail. " echo "Example PAM control files can be found in the contrib/ " echo "subdirectory" echo ""fiif test ! -z "$NO_SFTP"; then echo "sftp-server will be disabled. Your compiler does not " echo "support 64bit integers." echo ""fiif test ! -z "$RAND_HELPER_CMDHASH" ; then echo "WARNING: you are using the builtin random number collection " echo "service. Please read WARNING.RNG and request that your OS " echo "vendor includes kernel-based random number collection in " echo "future versions of your OS." echo ""fi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -