diff --git a/cde/configure.ac b/cde/configure.ac index 07efdac96..1a01b8bf3 100644 --- a/cde/configure.ac +++ b/cde/configure.ac @@ -550,11 +550,25 @@ AM_ICONV dnl figure out pam support dnl Right now this only works on linux and netbsd (9.2 tested) + +dnl PAM configuration directory - configurable for non-root installs +AC_ARG_WITH([pam-dir], + AS_HELP_STRING([--with-pam-dir=DIR], + [directory for PAM configuration files (default: /etc/pam.d, or PREFIX/etc/pam.d if prefix is not /usr)]), + [PAM_CONFDIR="$withval"], + [if test "x$cde_prefix" = "x/usr" -o "x$cde_prefix" = "x/usr/local"; then + PAM_CONFDIR="/etc/pam.d" + else + PAM_CONFDIR="${cde_prefix}/etc/pam.d" + fi]) +AC_SUBST(PAM_CONFDIR) + if test "$supports_pam" = "yes" then AC_CHECK_LIB(pam, pam_start, [SOURCE_CPP_DEFINES="${SOURCE_CPP_DEFINES} -DHAS_PAM_LIBRARY"; - PAMLIB="-lpam"]) + PAMLIB="-lpam"; + AC_MSG_NOTICE([PAM configuration directory: $PAM_CONFDIR])]) AC_SUBST(PAMLIB) else AC_CHECK_LIB(pam, NOTSUPPORTED) diff --git a/cde/programs/dtlogin/config/Makefile.am b/cde/programs/dtlogin/config/Makefile.am index d13e09161..d726edbe2 100644 --- a/cde/programs/dtlogin/config/Makefile.am +++ b/cde/programs/dtlogin/config/Makefile.am @@ -18,18 +18,16 @@ CPP_TARGETS = 0060.dtsysenv Dtlogin Xaccess Xconfig Xconfig.con \ if HAS_PAM_LIBRARY CPP_TARGETS += dtlogin dist_pam_DATA = dtlogin +pamdir = $(PAM_CONFDIR) if FREEBSD -pamdir = /usr/local/etc/pam.d PAM_AUTHENTICATION_MODULE = /usr/local/lib/security/pam_pwauth_suid.so AM_CPPFLAGS += -DPAM_AUTHENTICATION_MODULE=$(PAM_AUTHENTICATION_MODULE) -else -pamdir = /etc/pam.d +endif if NETBSD PAM_AUTHENTICATION_MODULE = /usr/pkg/lib/security/pam_pwauth_suid.so AM_CPPFLAGS += -DPAM_AUTHENTICATION_MODULE=$(PAM_AUTHENTICATION_MODULE) endif endif -endif if LINUX AM_CPPFLAGS += -DXPROJECTROOT="/usr" -Dlinux -D__linux__