diff options
author | ru <ru@FreeBSD.org> | 2002-06-03 14:49:34 +0000 |
---|---|---|
committer | ru <ru@FreeBSD.org> | 2002-06-03 14:49:34 +0000 |
commit | f24282207af24197e2a44168f11aad864ba3a1dd (patch) | |
tree | de796cd01f625eac67ff08f9b8f94b359475f5f0 | |
parent | 22070ef7190bd598b0d904db2e88a67743b8a962 (diff) | |
download | FreeBSD-src-f24282207af24197e2a44168f11aad864ba3a1dd.zip FreeBSD-src-f24282207af24197e2a44168f11aad864ba3a1dd.tar.gz |
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).
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | share/mk/Makefile | 3 | ||||
-rw-r--r-- | share/mk/bsd.files.mk | 68 | ||||
-rw-r--r-- | share/mk/bsd.lib.mk | 1 | ||||
-rw-r--r-- | share/mk/bsd.prog.mk | 30 | ||||
-rw-r--r-- | share/mk/bsd.subdir.mk | 2 |
6 files changed, 75 insertions, 31 deletions
@@ -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 diff --git a/share/mk/Makefile b/share/mk/Makefile index 9dd75ce..563bd39 100644 --- a/share/mk/Makefile +++ b/share/mk/Makefile @@ -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 diff --git a/share/mk/bsd.files.mk b/share/mk/bsd.files.mk new file mode 100644 index 0000000..daa8c88 --- /dev/null +++ b/share/mk/bsd.files.mk @@ -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 diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk index 701d3f4..a340982 100644 --- a/share/mk/bsd.lib.mk +++ b/share/mk/bsd.lib.mk @@ -339,6 +339,7 @@ realinstall: done; true .endif +.include <bsd.files.mk> .include <bsd.incs.mk> .if !defined(NOMAN) diff --git a/share/mk/bsd.prog.mk b/share/mk/bsd.prog.mk index 6ecbf50..505a5f9 100644 --- a/share/mk/bsd.prog.mk +++ b/share/mk/bsd.prog.mk @@ -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) diff --git a/share/mk/bsd.subdir.mk b/share/mk/bsd.subdir.mk index 20a38d7..4925035 100644 --- a/share/mk/bsd.subdir.mk +++ b/share/mk/bsd.subdir.mk @@ -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}) |