During distributeworld we call distribute on subdirectories, which in turn calls installconfig. However, this recursive installconfig call appends the distribution name (in these cases, "base") to DESTDIR. For install(1) this works fine as its -D argument comes from the top-level Makefile.inc1, which passes the original DESTDIR, thereby resulting in the METALOG entry having the distribution name as a prefix representing its true installed path relative to the root, but for the hand-rolled entries they do not use install(1) and thus do not have access to what the original DESTDIR was, resulting in the METALOG missing this prefix. Thus, pass down the name of the distribution via a new variable DISTBASE (chosen as Makefile.inc1 already uses that to convey this exact same information to etc's distrib-dirs during distributeworld) and prepend this to the handful of manually-generated METALOG entries. For the installworld case this variable will be empty and so this behaves as before. Note that we need to be careful to avoid double slashes in the METALOG; distributeworld uses find | awk to split the single METALOG up into multiple dist.meta files, and this relies on the paths in the METALOG having the exact prefix ./dist (or ./dist/usr/lib/debug). Reviewed by: brooks, emaste Differential Revision: https://reviews.freebsd.org/D33997
38 lines
713 B
Makefile
38 lines
713 B
Makefile
# @(#)Makefile 8.1 (Berkeley) 7/19/93
|
|
# $FreeBSD$
|
|
|
|
.include <src.opts.mk>
|
|
.include <src.tools.mk>
|
|
|
|
PACKAGE= runtime
|
|
|
|
CONFS= fbtab login.conf motd.template login.access
|
|
PROG= login
|
|
SRCS= login.c login_fbtab.c
|
|
CFLAGS+=-DLOGALL
|
|
LIBADD= util pam
|
|
|
|
WARNS?= 5
|
|
|
|
.if ${MK_AUDIT} != "no"
|
|
SRCS+= login_audit.c
|
|
CFLAGS+= -DUSE_BSM_AUDIT
|
|
LIBADD+= bsm
|
|
.endif
|
|
|
|
.if ${MK_SETUID_LOGIN} != "no"
|
|
BINOWN= root
|
|
BINMODE=4555
|
|
PRECIOUSPROG=
|
|
.endif
|
|
|
|
.include <bsd.endian.mk>
|
|
afterinstallconfig:
|
|
${CAP_MKDB_CMD} ${CAP_MKDB_ENDIAN} ${DESTDIR}/etc/login.conf
|
|
.if defined(NO_ROOT) && defined(METALOG)
|
|
echo ".${DISTBASE}/etc/login.conf.db type=file mode=0644 uname=root gname=wheel" | \
|
|
cat -l >> ${METALOG}
|
|
.endif
|
|
|
|
.include <bsd.prog.mk>
|