Reimplement FILES support using bsd.files.mk with the
same set of features as in recently added bsd.incs.mk (FILESGROUPS, accessibility from both bsd.prog.mk and bsd.lib.mk, de-pessimized typical installation path, etc.) New standard targets: buildfiles, installfiles, and files (buildfiles + installfiles).
This commit is contained in:
parent
1114f20173
commit
af2dc86820
2
Makefile
2
Makefile
@ -97,7 +97,7 @@ TGTS= all all-man buildkernel buildworld checkdpadd clean \
|
||||
reinstallkernel installmost installworld libraries lint maninstall \
|
||||
mk most obj objlink regress rerelease tags update
|
||||
|
||||
BITGTS= includes
|
||||
BITGTS= files includes
|
||||
BITGTS:=${BITGTS} ${BITGTS:S/^/build/} ${BITGTS:S/^/install/}
|
||||
|
||||
.ORDER: buildworld installworld
|
||||
|
@ -2,7 +2,8 @@
|
||||
# @(#)Makefile 8.1 (Berkeley) 6/8/93
|
||||
|
||||
FILES= bsd.README
|
||||
FILES+= bsd.cpu.mk bsd.dep.mk bsd.doc.mk bsd.info.mk bsd.incs.mk bsd.init.mk
|
||||
FILES+= bsd.cpu.mk bsd.dep.mk bsd.doc.mk bsd.files.mk
|
||||
FILES+= bsd.info.mk bsd.incs.mk bsd.init.mk
|
||||
FILES+= bsd.kern.mk bsd.kmod.mk
|
||||
FILES+= bsd.lib.mk bsd.libnames.mk bsd.man.mk bsd.nls.mk bsd.obj.mk bsd.own.mk
|
||||
FILES+= bsd.port.mk bsd.port.post.mk bsd.port.pre.mk bsd.port.subdir.mk
|
||||
|
68
share/mk/bsd.files.mk
Normal file
68
share/mk/bsd.files.mk
Normal file
@ -0,0 +1,68 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.if !target(__<bsd.init.mk>__)
|
||||
.error bsd.files.mk cannot be included directly.
|
||||
.endif
|
||||
|
||||
FILESGROUPS?= FILES
|
||||
|
||||
.if !target(buildfiles)
|
||||
.for group in ${FILESGROUPS}
|
||||
buildfiles: ${${group}}
|
||||
.endfor
|
||||
.endif
|
||||
|
||||
all: buildfiles
|
||||
|
||||
.if !target(installfiles)
|
||||
.for group in ${FILESGROUPS}
|
||||
.if defined(${group}) && !empty(${group})
|
||||
|
||||
${group}OWN?= ${SHAREOWN}
|
||||
${group}GRP?= ${SHAREGRP}
|
||||
${group}MODE?= ${SHAREMODE}
|
||||
${group}DIR?= ${BINDIR}
|
||||
|
||||
_${group}FILES=
|
||||
.for file in ${${group}}
|
||||
.if defined(${group}OWN_${file:T}) || defined(${group}GRP_${file:T}) || \
|
||||
defined(${group}MODE_${file:T}) || defined(${group}DIR_${file:T}) || \
|
||||
defined(${group}NAME_${file:T})
|
||||
${group}OWN_${file:T}?= ${${group}OWN}
|
||||
${group}GRP_${file:T}?= ${${group}GRP}
|
||||
${group}MODE_${file:T}?= ${${group}MODE}
|
||||
${group}DIR_${file:T}?= ${${group}DIR}
|
||||
.if defined(${group}NAME)
|
||||
${group}NAME_${file:T}?= ${${group}NAME}
|
||||
.else
|
||||
${group}NAME_${file:T}?= ${file:T}
|
||||
.endif
|
||||
installfiles: _${group}INS_${file:T}
|
||||
_${group}INS_${file:T}: ${file}
|
||||
${INSTALL} ${COPY} -o ${${group}OWN_${.ALLSRC:T}} \
|
||||
-g ${${group}GRP_${.ALLSRC:T}} -m ${${group}MODE_${.ALLSRC:T}} \
|
||||
${.ALLSRC} \
|
||||
${DESTDIR}${${group}DIR_${.ALLSRC:T}}/${${group}NAME_${.ALLSRC:T}}
|
||||
.else
|
||||
_${group}FILES+= ${file}
|
||||
.endif
|
||||
.endfor
|
||||
.if !empty(_${group}FILES)
|
||||
installfiles: _${group}INS
|
||||
_${group}INS: ${_${group}FILES}
|
||||
.if defined(${group}NAME)
|
||||
${INSTALL} ${COPY} -o ${${group}OWN} -g ${${group}GRP} \
|
||||
-m ${${group}MODE} ${.ALLSRC} \
|
||||
${DESTDIR}${${group}DIR}/${${group}NAME}
|
||||
.else
|
||||
${INSTALL} ${COPY} -o ${${group}OWN} -g ${${group}GRP} \
|
||||
-m ${${group}MODE} ${.ALLSRC} ${DESTDIR}${${group}DIR}
|
||||
.endif
|
||||
.endif
|
||||
|
||||
.endif defined(${group}) && !empty(${group})
|
||||
.endfor
|
||||
|
||||
.endif !target(installfiles)
|
||||
|
||||
realinstall: installfiles
|
@ -339,6 +339,7 @@ realinstall:
|
||||
done; true
|
||||
.endif
|
||||
|
||||
.include <bsd.files.mk>
|
||||
.include <bsd.incs.mk>
|
||||
|
||||
.if !defined(NOMAN)
|
||||
|
@ -73,7 +73,7 @@ MAN1= ${MAN}
|
||||
.endif
|
||||
.endif
|
||||
|
||||
all: objwarn ${PROG} ${SCRIPTS} ${FILES}
|
||||
all: objwarn ${PROG} ${SCRIPTS}
|
||||
.if !defined(NOMAN)
|
||||
all: _manpages
|
||||
.endif
|
||||
@ -169,33 +169,7 @@ _SCRIPTSINS_${script:T}: ${script}
|
||||
.endfor
|
||||
.endif
|
||||
|
||||
.if defined(FILES) && !empty(FILES)
|
||||
realinstall: _filesinstall
|
||||
|
||||
FILESDIR?= ${BINDIR}
|
||||
FILESOWN?= ${SHAREOWN}
|
||||
FILESGRP?= ${SHAREGRP}
|
||||
FILESMODE?= ${SHAREMODE}
|
||||
|
||||
.for file in ${FILES}
|
||||
.if defined(FILESNAME)
|
||||
FILESNAME_${file:T}?= ${FILESNAME}
|
||||
.else
|
||||
FILESNAME_${file:T}?= ${file:T}
|
||||
.endif
|
||||
FILESDIR_${file:T}?= ${FILESDIR}
|
||||
FILESOWN_${file:T}?= ${FILESOWN}
|
||||
FILESGRP_${file:T}?= ${FILESGRP}
|
||||
FILESMODE_${file:T}?= ${FILESMODE}
|
||||
_filesinstall: _FILESINS_${file:T}
|
||||
_FILESINS_${file:T}: ${file}
|
||||
${INSTALL} ${COPY} -o ${FILESOWN_${.ALLSRC:T}} \
|
||||
-g ${FILESGRP_${.ALLSRC:T}} -m ${FILESMODE_${.ALLSRC:T}} \
|
||||
${.ALLSRC} \
|
||||
${DESTDIR}${FILESDIR_${.ALLSRC:T}}/${FILESNAME_${.ALLSRC:T}}
|
||||
.endfor
|
||||
.endif
|
||||
|
||||
.include <bsd.files.mk>
|
||||
.include <bsd.incs.mk>
|
||||
|
||||
.if !defined(NOMAN)
|
||||
|
@ -63,7 +63,7 @@ ${SUBDIR}::
|
||||
${__target}: _SUBDIR
|
||||
.endfor
|
||||
|
||||
.for __target in includes
|
||||
.for __target in files includes
|
||||
.for __stage in build install
|
||||
${__stage}${__target}:
|
||||
.if make(${__stage}${__target})
|
||||
|
Loading…
Reference in New Issue
Block a user