From c74ace92a47b97a722d5f04de24b2b08bd36bd7b Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Wed, 9 May 2018 13:44:54 +0000 Subject: [PATCH] Enable directory creation with FILESDIR. This is part of packaging base work. Reviewed by: will Approved by: bapt (mentor), allanjude (mentor) Differential Revision: https://reviews.freebsd.org/D15130 --- share/mk/bsd.files.mk | 18 ++++++++++++++++-- share/mk/bsd.own.mk | 11 +++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/share/mk/bsd.files.mk b/share/mk/bsd.files.mk index 2eac6221406f..a294db10589a 100644 --- a/share/mk/bsd.files.mk +++ b/share/mk/bsd.files.mk @@ -67,7 +67,7 @@ STAGE_AS_${file:T}= ${${group}NAME_${file:T}} STAGE_DIR.${file:T}= ${STAGE_OBJTOP}${${group}DIR_${file:T}} stage_as.${file:T}: ${file} -installfiles-${group}: _${group}INS_${file:T} +installfiles-${group}: installdirs-${group} _${group}INS_${file:T} _${group}INS_${file:T}: ${file} ${INSTALL} ${${group}TAG_ARGS} -o ${${group}OWN_${.ALLSRC:T}} \ -g ${${group}GRP_${.ALLSRC:T}} -m ${${group}MODE_${.ALLSRC:T}} \ @@ -77,10 +77,24 @@ _${group}INS_${file:T}: ${file} _${group}FILES+= ${file} .endif .endfor + + +installdirs-${group}: + @echo installing dirs ${group}DIR ${${group}DIR} +.for dir in ${${group}DIR} +.if defined(NO_ROOT) + ${INSTALL} ${${group}TAG_ARGS} -d ${DESTDIR}${dir} +.else + ${INSTALL} ${${group}TAG_ARGS} -d -o ${DIROWN} -g ${DIRGRP} \ + -m ${DIRMODE} ${DESTDIR}${dir} +.endif +.endfor + + .if !empty(_${group}FILES) stage_files.${group}: ${_${group}FILES} -installfiles-${group}: _${group}INS +installfiles-${group}: installdirs-${group} _${group}INS _${group}INS: ${_${group}FILES} .if defined(${group}NAME) ${INSTALL} ${${group}TAG_ARGS} -o ${${group}OWN} -g ${${group}GRP} \ diff --git a/share/mk/bsd.own.mk b/share/mk/bsd.own.mk index fd48256f7941..644e54f1bceb 100644 --- a/share/mk/bsd.own.mk +++ b/share/mk/bsd.own.mk @@ -75,6 +75,13 @@ # CONFMODE Configuration file mode. [644] # # +# DIROWN Directory owner. [root] +# +# DIRGRP Directory group. [wheel] +# +# DIRMODE Directory mode. [755] +# +# # DOCDIR Base path for system documentation (e.g. PSD, USD, # handbook, FAQ etc.). [${SHAREDIR}/doc] # @@ -186,6 +193,10 @@ MANOWN?= ${SHAREOWN} MANGRP?= ${SHAREGRP} MANMODE?= ${NOBINMODE} +DIROWN?= root +DIRGRP?= wheel +DIRMODE?= 755 + DOCDIR?= ${SHAREDIR}/doc DOCOWN?= ${SHAREOWN} DOCGRP?= ${SHAREGRP}