]> granicus.if.org Git - linux-pam/blobdiff - configure.in
Relevant BUGIDs: 433460
[linux-pam] / configure.in
index 15224e72fd5d5cf7ef5815da772cc007fb21b690..99ed8d99f42fbefaa885e5d2030995964bd3bbcc 100644 (file)
@@ -9,7 +9,7 @@ dnl Release specific
 dnl
 
 LIBPAM_VERSION_MAJOR=0
-LIBPAM_VERSION_MINOR=72
+LIBPAM_VERSION_MINOR=76
 
 AC_SUBST(LIBPAM_VERSION_MAJOR)
 AC_SUBST(LIBPAM_VERSION_MINOR)
@@ -30,20 +30,35 @@ CC=gcc                              ; AC_SUBST(CC)
 CONF_CFLAGS=                   ; AC_SUBST(CONF_CFLAGS)
 MKDIR="mkdir -p"               ; AC_SUBST(MKDIR)
 LOCALSRCDIR=`/bin/pwd`         ; AC_SUBST(LOCALSRCDIR)
-OS=`uname|sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXWZ/abcdefghijklmonpqrstuvwxyz/'`
+OS=`uname|sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
 AC_SUBST(OS)
 
+SHLIBMODE=755                  ; AC_SUBST(SHLIBMODE)
+
 dnl These are most likely platform specific - I think HPUX differs
-DYNTYPE=so                     ; AC_SUBST(DYNTYPE)
-LIBDL=-ldl                     ; AC_SUBST(LIBDL)
 USESONAME=yes                  ; AC_SUBST(USESONAME)
-NEEDSONAME=yes                 ; AC_SUBST(NEEDSONAME)
-SHLIBMODE=755                  ; AC_SUBST(SHLIBMODE)
+SOSWITCH=-soname               ; AC_SUBST(SOSWITCH)
+NEEDSONAME=no                  ; AC_SUBST(NEEDSONAME)
+LDCONFIG=/sbin/ldconfig                ; AC_SUBST(LDCONFIG)
 
 dnl ### Should enable this INSTALL detection.
 dnl ### Would need to distribute GNU's config.guess and config.sub
 dnl AC_PROG_INSTALL
-INSTALL=/usr/bin/install       ; AC_SUBST(INSTALL)
+if test "$OS" = "aix"; then
+  INSTALL=/usr/ucb/install -c
+else
+  INSTALL=/usr/bin/install
+fi
+AC_SUBST(INSTALL)
+
+dnl Checks for programs.
+AC_PROG_CC
+dnl ### AC_PROG_CXX
+AC_PROG_YACC
+AC_PROG_LEX
+dnl AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
 
 dnl
 dnl options and defaults
@@ -122,14 +137,27 @@ AC_ARG_ENABLE(lckpwdf,
        WITH_LCKPWDF=no, WITH_LCKPWDF=yes)
 AC_SUBST(WITH_LCKPWDF)
 
-dnl Checks for programs.
-AC_PROG_CXX
-AC_PROG_YACC
-AC_PROG_LEX
-AC_PROG_CC
-dnl AC_PROG_INSTALL
-AC_PROG_LN_S
-AC_PROG_MAKE_SET
+AC_CHECK_HEADERS(paths.h)
+AC_ARG_WITH(mailspool,
+[  --with-mailspool         path to mail spool directory
+                           [default _PATH_MAILDIR if defined in paths.h, otherwise /var/spool/mail]],
+with_mailspool=${withval})
+if test x$with_mailspool != x ; then
+       pam_mail_spool="\"$with_mailspool\""
+else
+       AC_TRY_RUN([
+#include <paths.h>
+int main() {
+#ifdef _PATH_MAILDIR
+exit(0);
+#else
+exit(1);
+#endif
+}], pam_mail_spool="_PATH_MAILDIR",
+pam_mail_spool="\"/var/spool/mail\"",
+pam_mail_spool="\"/var/spool/mail\"")
+fi
+AC_DEFINE_UNQUOTED(PAM_PATH_MAILDIR, $pam_mail_spool)
 
 dnl Checks for libraries.
 AC_CHECK_LIB(c, __libc_sched_setscheduler, PAM_NEEDS_LIBC=, PAM_NEEDS_LIBC=-lc)
@@ -139,6 +167,10 @@ dnl Checks for the existence of lckpwdf in libc
 AC_CHECK_LIB(c, lckpwdf, HAVE_LCKPWDF=yes, HAVE_LCKPWDF=no)
 AC_SUBST(HAVE_LCKPWDF)
 
+dnl Checks for the existence of libdl - on BSD its part of libc
+AC_CHECK_LIB(dl, dlopen, LIBDL=-ldl) 
+AC_SUBST(LIBDL)
+
 dnl
 dnl At least on Solaris, the existing libcrack must be dynamic.
 dnl Ought to introduce a check for this.
@@ -150,6 +182,9 @@ AC_SUBST(HAVE_LIBCRACK)
 AC_CHECK_LIB(crypt, fcrypt, HAVE_LIBCRYPT=yes ; AC_DEFINE(HAVE_LIBCRYPT),
        HAVE_LIBCRYPT=no)
 AC_SUBST(HAVE_LIBCRYPT)
+AC_CHECK_LIB(util, logwtmp, HAVE_LIBUTIL=yes ; AC_DEFINE(HAVE_LIBUTIL),
+       HAVE_LIBUTIL=no)
+AC_SUBST(HAVE_LIBUTIL)
 AC_CHECK_LIB(ndbm, dbm_store, HAVE_LIBNDBM=yes ; AC_DEFINE(HAVE_LIBNDBM),
        HAVE_LIBNDBM=no)
 AC_SUBST(HAVE_LIBNDBM)
@@ -178,6 +213,12 @@ AC_CHECK_HEADERS(features.h)
 dnl For module/pam_cracklib
 AC_CHECK_HEADERS(crypt.h)
 
+dnl For module/pam_userdb
+AC_CHECK_HEADERS(ndbm.h db.h)
+dnl I suspect the following two lines are a hack.
+HAVE_NDBM_H=$ac_cv_header_ndbm_h
+AC_SUBST(HAVE_NDBM_H)
+
 dnl For module/pam_lastlog
 AC_CHECK_HEADERS(lastlog.h utmp.h utmpx.h)
 
@@ -201,7 +242,7 @@ for d in $DICT_DIR_CANDIDATES ; do
               fi
       done
 done
-if test -z $CRACKLIB_DICTPATH ; then
+if test -z "$CRACKLIB_DICTPATH" ; then
       AC_MSG_RESULT(none found)
 else
       AC_MSG_RESULT($CRACKLIB_DICTPATH)
@@ -224,20 +265,50 @@ dnl this should be done selectively.
 
 GCC_WARNINGS="-Wall -Wwrite-strings \
        -Wpointer-arith -Wcast-qual -Wcast-align \
-       -Wtraditional -Wstrict-prototypes -Wmissing-prototypes \
+       -Wstrict-prototypes -Wmissing-prototypes \
        -Wnested-externs -Winline -Wshadow"
 
 if test "$GCC" = yes; then
-###
-### Non-Linux needs attention on per-OS basis
-       OS_CFLAGS="-ansi -D_POSIX_SOURCE -pedantic"
-       WARNINGS="$GCC_WARNINGS"
-       PIC="-fPIC"
-#can/should we use LD=gcc ???
-       LD=ld                           
-       LD_D="gcc -shared -Xlinker -x"
-       LD_L="$LD -x -shared"
-       STRIP=strip
+### May need per-OS attention
+### Example: -D_POSIX_SOURCE: needed on Linux but harms Solaris.
+       case $OS in
+       linux)
+               OS_CFLAGS="-ansi -D_POSIX_SOURCE -pedantic"
+               LD_D="gcc -shared -Xlinker -x"
+               WARNINGS="$GCC_WARNINGS"
+               PIC="-fPIC"
+               DYNTYPE=so
+               LD=ld                           
+               LD_L="$LD -x -shared"
+               RANLIB=ranlib
+               STRIP=strip
+               CC_STATIC="-Xlinker -export-dynamic"
+               ;;
+       sunos)
+               OS_CFLAGS="-ansi -pedantic"
+               LD_D="gcc -shared -Xlinker -x"
+               WARNINGS="$GCC_WARNINGS"
+               PIC="-fPIC"
+               DYNTYPE=so
+               LD=ld                           
+               LD_L="$LD -x -shared"
+               RANLIB=ranlib
+               STRIP=strip
+               CC_STATIC="-Xlinker -export-dynamic"
+               ;;
+       aix)
+               OS_CFLAGS=""
+               DYNTYPE=lo
+               LD=ld                           
+               LD_L=ld -bexpall -bM:SRE -bnoentry
+               LD_D="$LD_L"
+               RANLIB=ranlib
+               STRIP=strip
+               ;;
+       *)
+               OS_CFLAGS=""
+               ;;
+       esac
 else
 ###
 ### Non-gcc needs attention on per-OS basis
@@ -246,19 +317,25 @@ else
        OS_CFLAGS=""
        WARNINGS=""
        PIC="-K pic"
+       DYNTYPE=so
        LD=ld
        LD_D="cc -z text -G -R."
        LD_L="$LD_D"
+       RANLIB=ranlib
        STRIP=strip
+       CC_STATIC=
 fi
 
+AC_SUBST(DYNTYPE)
 AC_SUBST(OS_CFLAGS)
 AC_SUBST(WARNINGS)
 AC_SUBST(PIC)
 AC_SUBST(LD)
 AC_SUBST(LD_D)
 AC_SUBST(LD_L)
+AC_SUBST(RANLIB)
 AC_SUBST(STRIP)
+AC_SUBST(CC_STATIC)
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_BIGENDIAN