diff --git a/Makefile.inc1 b/Makefile.inc1 index 2fc9b11e6be0..82e4acfb42b6 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -729,7 +729,8 @@ _generic_libs+= kerberosIV/lib .endif _prebuild_libs+= lib/libcom_err lib/libcrypt lib/libkvm lib/libmd \ - lib/libncurses lib/libopie lib/libradius lib/librpcsvc \ + lib/libncurses lib/libopie lib/libpam lib/libradius \ + lib/librpcsvc \ lib/libsbuf lib/libtacplus lib/libutil lib/libypclnt \ lib/libz lib/msun @@ -755,7 +756,7 @@ _generic_libs+= usr.bin/lex/lib _generic_libs+= usr.sbin/pcvt/keycap .endif -.for _lib in ${_startup_libs} ${_prebuild_libs} ${_generic_libs} +.for _lib in ${_startup_libs} ${_prebuild_libs:Nlib/libpam} ${_generic_libs} ${_lib}__L: .PHONY .if exists(${.CURDIR}/${_lib}) ${ECHODIR} "===> ${_lib}"; \ @@ -766,6 +767,16 @@ ${_lib}__L: .PHONY .endif .endfor +# libpam is special: we need to build static PAM modules before +# static PAM library, and dynamic PAM library before dynamic PAM +# modules. +lib/libpam__L: .PHONY + ${ECHODIR} "===> lib/libpam"; \ + cd ${.CURDIR}/lib/libpam; \ + ${MAKE} DIRPRFX=lib/libpam/ depend; \ + ${MAKE} DIRPRFX=lib/libpam/ -D_NO_LIBPAM_SO_YET all; \ + ${MAKE} DIRPRFX=lib/libpam/ -D_NO_LIBPAM_SO_YET install + _startup_libs: ${_startup_libs:S/$/__L/} _prebuild_libs: ${_prebuild_libs:S/$/__L/} _generic_libs: ${_generic_libs:S/$/__L/} diff --git a/lib/libpam/modules/Makefile.inc b/lib/libpam/modules/Makefile.inc index 2b06deadb404..cdfe5990cf6d 100644 --- a/lib/libpam/modules/Makefile.inc +++ b/lib/libpam/modules/Makefile.inc @@ -4,7 +4,6 @@ PAMDIR= ${.CURDIR}/../../../../contrib/openpam NOINSTALLLIB= yes NOPROFILE= yes -SHLIB_NAME?= ${LIB}.so.${SHLIB_MAJOR} CFLAGS+= -I${PAMDIR}/include CFLAGS+= -I${.CURDIR}/../../libpam @@ -14,8 +13,12 @@ NO_WERROR= yes # This is nasty. # For the static case, libpam.a depends on the modules. # For the dynamic case, the modules depend on libpam.so.N -# Punt for the time being until I can figure out how to do it. -#DPADD+= ${LIBPAM} -#LDADD+= -lpam +.if defined(_NO_LIBPAM_SO_YET) +NOPIC= YES +.else +SHLIB_NAME?= ${LIB}.so.${SHLIB_MAJOR} +DPADD+= ${LIBPAM} +LDADD+= -lpam +.endif .include "../Makefile.inc"