280 lines
6.8 KiB
Plaintext
280 lines
6.8 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
echo Configuring CU Sudo version 1.3.1
|
|
AC_INIT(sudo.h)
|
|
AC_CONFIG_HEADER(config.h)
|
|
dnl
|
|
dnl Variables that get substituted in the Makefile
|
|
dnl
|
|
PROGS="sudo visudo"
|
|
AC_SUBST(PROGS)dnl
|
|
STATIC_FLAGS=""
|
|
AC_SUBST(STATIC_FLAGS)dnl
|
|
INC_FLAGS=""
|
|
AC_SUBST(INC_FLAGS)dnl
|
|
OSDEFS=""
|
|
AC_SUBST(OSDEFS)dnl
|
|
OPTIONS=""
|
|
AC_SUBST(OPTIONS)dnl
|
|
LIBOBJS=""
|
|
AC_SUBST(LIBOBJS)dnl
|
|
TGETPASS="tgetpass.o"
|
|
AC_SUBST(TGETPASS)dnl
|
|
MAN_PREFIX='$(prefix)/man'
|
|
AC_SUBST(MAN_PREFIX)dnl
|
|
MANTYPE="man"
|
|
MAN_POSTINSTALL=""
|
|
AC_SUBST(MAN_POSTINSTALL)dnl
|
|
AC_SUBST(MANTYPE)dnl
|
|
dnl
|
|
dnl Options for --with
|
|
dnl
|
|
dnl --with-getpass
|
|
AC_ARG_WITH(getpass, [ --with-getpass use system getpass(3)], AC_DEFINE(USE_GETPASS)
|
|
echo 'Using system getpass'
|
|
TGETPASS="")
|
|
dnl
|
|
dnl --with-C2
|
|
AC_ARG_WITH(C2, [ --with-C2 enable C2 security (shadow password) support], AC_DEFINE(HAVE_C2_SECURITY)
|
|
C2=1
|
|
echo 'Configuring for C2 security')
|
|
dnl
|
|
dnl --with-Skey
|
|
AC_ARG_WITH(SKEY, [ --with-SKEY enable Skey support (untested)], AC_DEFINE(HAVE_SKEY)
|
|
SKEY=1
|
|
echo 'Configuring for use with Skey')
|
|
dnl
|
|
dnl --with-kerb4
|
|
AC_ARG_WITH(kerb4, [ --with-kerb4 enable kerberos v4 support], AC_DEFINE(HAVE_KERB4)
|
|
KERB4=1
|
|
echo 'Configuring for use with Kerberos version 4')
|
|
dnl
|
|
dnl --with-AFS
|
|
AC_ARG_WITH(AFS, [ --with-AFS enable AFS support], AC_DEFINE(HAVE_AFS)
|
|
AFS=1
|
|
echo 'Configuring for use with AFS')
|
|
dnl
|
|
dnl --with-csops
|
|
AC_ARG_WITH(csops, [ --with-csops add CSops standard options], OPTIONS="${OPTIONS} -DUSE_INSULTS -DENV_EDITOR"
|
|
echo 'CSOps--adding options: USE_INSULTS ENV_EDITOR')
|
|
dnl
|
|
dnl If we don't have egrep we can't do anything...
|
|
dnl
|
|
AC_CHECK_PROG(EGREPPROG, egrep, egrep, )
|
|
if test -z "$EGREPPROG"; then
|
|
echo "Sorry, configure requires egrep to run."
|
|
exit
|
|
fi
|
|
dnl
|
|
dnl C compiler checks
|
|
dnl
|
|
AC_PROG_CC
|
|
AC_PROG_CPP
|
|
dnl
|
|
dnl find programs we use
|
|
dnl
|
|
AC_CHECK_PROG(UNAMEPROG, uname, uname, )
|
|
AC_CHECK_PROG(TRPROG, tr, tr, )
|
|
AC_CHECK_PROG(SEDPROG, sed, sed, )
|
|
AC_CHECK_PROG(NROFFPROG, nroff, nroff, )
|
|
if test -z "$NROFFPROG"; then
|
|
MANTYPE="cat"
|
|
fi
|
|
dnl
|
|
dnl what architecture are we on?
|
|
dnl
|
|
SUDO_OSTYPE
|
|
OS=`echo $OS | $TRPROG '[[A-Z]]' '[[a-z]]'`
|
|
case "$OS" in
|
|
"sunos") echo "Looks like SunOS 4.x"
|
|
AC_DEFINE(SUNOS4)
|
|
;;
|
|
"solaris") echo "Looks like Solaris"
|
|
AC_DEFINE(SVR4)
|
|
;;
|
|
"aix") echo "Looks like AIX"
|
|
AC_DEFINE(_ALL_SOURCE)
|
|
STATIC_FLAGS="-Wl,-bI:./aixcrypt.exp"
|
|
;;
|
|
"hp-ux") echo "Looks like HP-UX"
|
|
if test "$OSREV" -lt 9 ; then
|
|
if test -n "$GCC"; then
|
|
STATIC_FLAGS="-static"
|
|
else
|
|
STATIC_FLAGS="-Wl,-a,archive"
|
|
fi
|
|
fi
|
|
if test -n "$AFS" ; then
|
|
LIBS="-lBSD ${LIBS}"
|
|
fi
|
|
;;
|
|
"osf1") echo "Looks like OSF/1"
|
|
STATIC_FLAGS="-Wl,-no_library_replacement"
|
|
# C2 security stuff
|
|
if test -n "$C2"; then
|
|
LIBS="${LIBS} -lsecurity -laud"
|
|
fi
|
|
;;
|
|
"irix") echo "Looks like IRIX"
|
|
# configure doesn't think irix has stdc headers
|
|
# but it's good enough for sudo
|
|
AC_DEFINE(STDC_HEADERS)
|
|
if test -z "$NROFFPROG"; then
|
|
MAN_POSTINSTALL='/bin/rm -f $(mandir)/sudo.$(mansect).z ; /usr/bin/pack $(mandir)/sudo.$(mansect)'
|
|
if test -d /usr/share/catman/local; then
|
|
MAN_PREFIX="/usr/share/catman/local"
|
|
else
|
|
MAN_PREFIX="/usr/catman/local"
|
|
fi
|
|
else
|
|
if test -d /usr/share/man/local; then
|
|
MAN_PREFIX="/usr/share/man/local"
|
|
else
|
|
MAN_PREFIX="/usr/man/local"
|
|
fi
|
|
fi
|
|
;;
|
|
"linux") echo "Looks like linux"
|
|
# C2 security stuff
|
|
if test -n "$C2"; then
|
|
AC_DEFINE(SVR4)
|
|
OSDEFS="${OSDEFS} -DSHADOW_PWD"
|
|
LIBS="${LIBS} -lshadow"
|
|
fi
|
|
;;
|
|
"convex") echo "Looks like ConvexOs"
|
|
AC_DEFINE(_CONVEX_SOURCE)
|
|
# C2 security stuff
|
|
if test -n "$C2"; then
|
|
OSDEFS="${OSDEFS} -D_AUDIT -D_ACL -DSecureWare"
|
|
LIBS="${LIBS} -lprot"
|
|
fi
|
|
;;
|
|
"ultrix"*) echo "Looks like ultrix"
|
|
# C2 security stuff
|
|
if test -n "$C2"; then
|
|
LIBS="${LIBS} -lauth"
|
|
fi
|
|
;;
|
|
"riscos") echo "Looks like RISCos"
|
|
LIBS="${LIBS} -lsun -lbsd"
|
|
INC_FLAGS="${INC_FLAGS} -I/usr/include -I/usr/include/bsd"
|
|
OSDEFS="${OSDEFS} -D_MIPS"
|
|
;;
|
|
"isc") echo "Looks like INTERACTIVE"
|
|
LIBS="${LIBS} -lsec -linet"
|
|
OSDEFS="${OSDEFS} -D_ISC"
|
|
;;
|
|
"unix_sv") echo "Looks like UnixWare"
|
|
AC_DEFINE(SVR4)
|
|
;;
|
|
"ksr"*) echo "Looks like a KSR"
|
|
;;
|
|
"next") echo "Looks like NeXTstep"
|
|
;;
|
|
"bsd/386") echo "Looks like bsdi BSD/386"
|
|
;;
|
|
"mtxinu") echo "Looks like mt Xinu MORE/BSD"
|
|
;;
|
|
"4.3bsd") echo "Looks like HP BSD"
|
|
;;
|
|
*"bsd"*) echo "Looks like some kind of BSD"
|
|
;;
|
|
"unknown") echo "I don't recognize your OS, but that's ok"
|
|
;;
|
|
*) echo "Hmmm, I don't recognize $OS offhand, but that's ok"
|
|
;;
|
|
esac
|
|
dnl
|
|
dnl extra kerberos libs
|
|
dnl
|
|
if test -n "$KERB4" ; then
|
|
LIBS="${LIBS} -L/usr/kerberos/lib -lkrb -ldes"
|
|
INC_FLAGS="${INC_FLAGS} -I/usr/kerberos/include"
|
|
fi
|
|
dnl
|
|
dnl extra AFS libs
|
|
dnl
|
|
if test -n "$AFS" ; then
|
|
LIBS="${LIBS} -L/usr/lib/afs -lkauth -lprot -lauth -lubik -lrxkad -lsys -ldes -lrx -llwp -lcom_err -laudit -lutil"
|
|
fi
|
|
dnl
|
|
dnl extra Skey lib
|
|
if test -n "$SKEY" ; then
|
|
LIBS="${LIBS} -lskey"
|
|
fi
|
|
dnl
|
|
dnl C compiler checks (to be done after os checks)
|
|
dnl
|
|
AC_PROG_GCC_TRADITIONAL
|
|
AC_C_CONST
|
|
dnl
|
|
dnl Program checks
|
|
dnl
|
|
AC_PROG_YACC
|
|
AC_PROG_LEX
|
|
AC_PROG_INSTALL
|
|
SUDO_PROG_SENDMAIL
|
|
SUDO_PROG_PWD
|
|
SUDO_PROG_MV
|
|
SUDO_PROG_VI
|
|
dnl
|
|
dnl Header file checks
|
|
dnl
|
|
AC_HEADER_STDC
|
|
AC_HEADER_DIRENT
|
|
AC_HAVE_HEADERS(string.h strings.h unistd.h malloc.h paths.h sys/sockio.h)
|
|
dnl ultrix termio/termios are broken
|
|
if test "$OS" != "ultrix" ; then
|
|
AC_HAVE_HEADERS(termio.h termios.h)
|
|
fi
|
|
dnl
|
|
dnl typedef checks
|
|
dnl
|
|
AC_TYPE_MODE_T
|
|
AC_TYPE_UID_T
|
|
SUDO_TYPE_SIZE_T
|
|
SUDO_TYPE_SSIZE_T
|
|
SUDO_FULL_VOID
|
|
dnl
|
|
dnl only set RETSIGTYPE if it is not set already
|
|
dnl
|
|
case "$DEFS" in
|
|
*"RETSIGTYPE"*) ;;
|
|
*) AC_TYPE_SIGNAL;;
|
|
esac
|
|
dnl
|
|
dnl Function checks
|
|
dnl
|
|
AC_CHECK_FUNCS(strchr strrchr memcpy memmove memset sysconf sigaction tzset tcsetattr strcasecmp)
|
|
AC_CHECK_FUNC(getwd, AC_DEFINE(HAVE_GETWD), LIBOBJS="$LIBOBJS getwd.o"
|
|
getcwd)
|
|
AC_CHECK_FUNC(strdup, AC_DEFINE(HAVE_STRDUP), LIBOBJS="$LIBOBJS strdup.o")
|
|
AC_CHECK_FUNC(lsearch, AC_DEFINE(HAVE_LSEARCH), LIBOBJS="$LIBOBJS lsearch.o")
|
|
AC_CHECK_FUNC(setenv, AC_DEFINE(HAVE_SETENV), AC_FUNC_CHECK(putenv, AC_DEFINE(HAVE_PUTENV), LIBOBJS="$LIBOBJS putenv.o"))
|
|
AC_CHECK_FUNC(utime, AC_DEFINE(HAVE_UTIME)
|
|
AC_FUNC_UTIME_NULL, LIBOBJS="$LIBOBJS utime.o")
|
|
dnl
|
|
dnl if crypt(3) not in libc, look elsewhere
|
|
dnl
|
|
AC_CHECK_FUNC(crypt, ,AC_CHECK_LIB(crypt, crypt, ,AC_CHECK_LIB(ufc, crypt)))
|
|
dnl
|
|
dnl library checks
|
|
dnl
|
|
dnl Irix 5.2 (at least) has bugs in -lnsl and -lsocket
|
|
if test "$OS" != "irix" -o $OSREV -ne 5 ; then
|
|
AC_CHECK_LIB(nsl, main)
|
|
AC_CHECK_LIB(socket, main)
|
|
fi
|
|
dnl
|
|
dnl OS-dependent libraries
|
|
dnl
|
|
AC_CHECK_LIB(sun, getpwnam)
|
|
dnl
|
|
dnl Check for log file location
|
|
dnl
|
|
SUDO_LOGFILE
|
|
dnl
|
|
dnl Substitute into the Makefiles
|
|
dnl
|
|
AC_OUTPUT(Makefile)
|