1# $NetBSD: Makefile,v 1.32 2024/04/05 01:16:00 christos Exp $ 2#- 3# Copyright (c) 1998 Juniper Networks, Inc. 4# All rights reserved. 5# Copyright (c) 2002 Networks Associates Technology, Inc. 6# All rights reserved. 7# 8# Portions of this software was developed for the FreeBSD Project by 9# ThinkSec AS and NAI Labs, the Security Research Division of Network 10# Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 11# ("CBOSS"), as part of the DARPA CHATS research program. 12# 13# Redistribution and use in source and binary forms, with or without 14# modification, are permitted provided that the following conditions 15# are met: 16# 1. Redistributions of source code must retain the above copyright 17# notice, this list of conditions and the following disclaimer. 18# 2. Redistributions in binary form must reproduce the above copyright 19# notice, this list of conditions and the following disclaimer in the 20# documentation and/or other materials provided with the distribution. 21# 3. The name of the author may not be used to endorse or promote 22# products derived from this software without specific prior written 23# permission. 24# 25# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 26# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 27# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 28# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 29# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 30# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 31# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 32# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 34# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 35# SUCH DAMAGE. 36# 37# $FreeBSD: src/lib/libpam/libpam/Makefile,v 1.51 2004/10/24 15:32:32 ru Exp $ 38 39NOPROFILE= # Don't build a profiling library 40 41.include <bsd.own.mk> 42 43.if ${MACHINE} == "vax" 44# On VAX everything is PIC so we don't need to build a separate _pic.a 45# libraries so we set MKPICLIB.vax=no in bsd.own.mk to save time and space. 46# But in libpam.a we include the static modules which we don't want in the 47# shared library, so we force the build system to build a separate _pic.a. 48MKPICLIB=yes 49.endif 50 51SHLIB_MINOR= 1 52 53DIST= ${NETBSDSRCDIR}/external/bsd/openpam/dist 54LIB= pam 55 56WARNS= 6 57LINTFLAGS+= -w 58 59CPPFLAGS+= -DLIB_MAJ=${SHLIB_MAJOR} -DHAVE_CONFIG_H -I${.CURDIR} 60#CPPFLAGS+= -DOPENPAM_DEBUG 61 62SRCS= openpam_borrow_cred.c \ 63 openpam_check_owner_perms.c \ 64 openpam_configure.c \ 65 openpam_constants.c \ 66 openpam_dispatch.c \ 67 openpam_dynamic.c \ 68 openpam_features.c \ 69 openpam_findenv.c \ 70 openpam_free_data.c \ 71 openpam_free_envlist.c \ 72 openpam_get_feature.c \ 73 openpam_get_option.c \ 74 openpam_load.c \ 75 openpam_log.c \ 76 openpam_nullconv.c \ 77 openpam_readline.c \ 78 openpam_readlinev.c \ 79 openpam_readword.c \ 80 openpam_restore_cred.c \ 81 openpam_set_feature.c \ 82 openpam_set_option.c \ 83 openpam_straddch.c \ 84 openpam_strlset.c \ 85 openpam_subst.c \ 86 openpam_ttyconv.c \ 87 pam_acct_mgmt.c \ 88 pam_authenticate.c \ 89 pam_chauthtok.c \ 90 pam_close_session.c \ 91 pam_end.c \ 92 pam_error.c \ 93 pam_get_authtok.c \ 94 pam_get_data.c \ 95 pam_get_item.c \ 96 pam_get_user.c \ 97 pam_getenv.c \ 98 pam_getenvlist.c \ 99 pam_info.c \ 100 pam_open_session.c \ 101 pam_prompt.c \ 102 pam_putenv.c \ 103 pam_set_data.c \ 104 pam_set_item.c \ 105 pam_setcred.c \ 106 pam_setenv.c \ 107 pam_start.c \ 108 pam_strerror.c \ 109 pam_verror.c \ 110 pam_vinfo.c \ 111 pam_vprompt.c 112# Local additions 113SRCS+= pam_debug_log.c 114 115MAN= \ 116 openpam.3 \ 117 openpam_borrow_cred.3 \ 118 openpam_free_data.3 \ 119 openpam_free_envlist.3 \ 120 openpam_get_feature.3 \ 121 openpam_get_option.3 \ 122 openpam_log.3 \ 123 openpam_nullconv.3 \ 124 openpam_readline.3 \ 125 openpam_readlinev.3 \ 126 openpam_readword.3 \ 127 openpam_restore_cred.3 \ 128 openpam_set_feature.3 \ 129 openpam_set_option.3 \ 130 openpam_straddch.3 \ 131 openpam_subst.3 \ 132 openpam_ttyconv.3 \ 133 pam.3 \ 134 pam.conf.5 \ 135 pam_acct_mgmt.3 \ 136 pam_authenticate.3 \ 137 pam_chauthtok.3 \ 138 pam_close_session.3 \ 139 pam_conv.3 \ 140 pam_end.3 \ 141 pam_error.3 \ 142 pam_get_authtok.3 \ 143 pam_get_data.3 \ 144 pam_get_item.3 \ 145 pam_get_user.3 \ 146 pam_getenv.3 \ 147 pam_getenvlist.3 \ 148 pam_info.3 \ 149 pam_open_session.3 \ 150 pam_prompt.3 \ 151 pam_putenv.3 \ 152 pam_set_data.3 \ 153 pam_set_item.3 \ 154 pam_setcred.3 \ 155 pam_setenv.3 \ 156 pam_sm_acct_mgmt.3 \ 157 pam_sm_authenticate.3 \ 158 pam_sm_chauthtok.3 \ 159 pam_sm_close_session.3 \ 160 pam_sm_open_session.3 \ 161 pam_sm_setcred.3 \ 162 pam_start.3 \ 163 pam_strerror.3 \ 164 pam_verror.3 \ 165 pam_vinfo.3 \ 166 pam_vprompt.3 167 168INCS= security/openpam.h \ 169 security/openpam_attr.h \ 170 security/openpam_version.h \ 171 security/pam_appl.h \ 172 security/pam_constants.h \ 173 security/pam_modules.h \ 174 security/pam_types.h \ 175 176INCS+= security/pam_mod_misc.h 177INCSDIR=/usr/include 178 179CLEANFILES+= openpam_static.o openpam_static_modules.o 180STOBJS+= openpam_static_modules.o 181 182# Static module support. These go ONLY in the static libpam.a 183STATIC_MODULES= pam_chroot pam_deny pam_echo pam_exec pam_ftpusers pam_group \ 184 pam_guest pam_lastlog pam_login_access pam_nologin pam_permit pam_radius \ 185 pam_rhosts pam_rootok pam_securetty pam_self pam_unix 186 187.if (${MKKERBEROS} != "no") 188STATIC_MODULES+= pam_afslog pam_krb5 pam_ksu 189.endif 190 191.if (${MKSKEY} != "no") 192STATIC_MODULES+= pam_skey 193.endif 194 195STATIC_MODULES+= pam_ssh 196 197MODULE_DIR=../modules 198# XXX 199.ifdef _CURDIR 200PAM_DIR=${_CURDIR} 201.else 202PAM_DIR=${.CURDIR} 203.endif 204.for MOD in ${STATIC_MODULES} 205MODOBJDIR!= cd ${PAM_DIR}/${MODULE_DIR}/${MOD} && ${PRINTOBJDIR} 206STATIC_MODULE_LIBS:= ${STATIC_MODULE_LIBS} ${MODOBJDIR}/${MOD}.a 207.endfor 208 209# XXX Using ${.ALLSRC} in the ld command causes openpam_static.c to be 210# XXX used. Why??!! --thorpej 211openpam_static_modules.o: openpam_static.o ${STATIC_MODULE_LIBS} 212 ${CC} ${LDFLAGS} -nostdlib -o ${.TARGET} -r -Wl,--whole-archive \ 213 openpam_static.o ${STATIC_MODULE_LIBS} 214 215CWARNFLAGS.clang+= -Wno-error=tautological-pointer-compare 216COPTS.openpam_dynamic.c+= ${CC_WNO_CAST_FUNCTION_TYPE} 217 218.include <bsd.lib.mk> 219.PATH.h: ${DIST}/include 220.PATH.c: ${DIST}/lib/libpam 221.PATH.3: ${DIST}/doc/man 222.PATH.5: ${DIST}/doc/man 223