=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/share/mk/bsd.obj.mk,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- src/share/mk/bsd.obj.mk 2016/10/06 15:34:18 1.15 +++ src/share/mk/bsd.obj.mk 2016/11/19 14:20:58 1.16 @@ -1,4 +1,4 @@ -# $OpenBSD: bsd.obj.mk,v 1.15 2016/10/06 15:34:18 natano Exp $ +# $OpenBSD: bsd.obj.mk,v 1.16 2016/11/19 14:20:58 tb Exp $ # $NetBSD: bsd.obj.mk,v 1.9 1996/04/10 21:08:05 thorpej Exp $ .if !target(obj) @@ -16,18 +16,23 @@ obj! _SUBDIRUSE @cd ${.CURDIR}; \ + umask ${WOBJUMASK}; \ + here=`/bin/pwd`; bsdsrcdir=`cd ${BSDSRCDIR}; /bin/pwd`; \ + subdir=$${here#$${bsdsrcdir}/}; \ if [[ `id -u` -eq 0 && ${BUILDUSER} != root ]]; then \ - SETOWNER="chown -h ${BUILDUSER}"; \ - _mkdirs() { \ - su ${BUILDUSER} -c "mkdir -p $$1"; \ - }; \ - MKDIRS=_mkdirs; \ + SETOWNER="chown -h ${BUILDUSER}:${WOBJGROUP}"; \ + if [[ $$here != $$subdir ]]; then \ + _mkdirs() { \ + su ${BUILDUSER} -c "mkdir -p $$1"; \ + }; \ + MKDIRS=_mkdirs; \ + fi; \ + elif [[ $$here == $$subdir ]]; then \ + SETOWNER="chown :${WOBJGROUP}"; \ else \ - MKDIRS="mkdir -p"; \ SETOWNER=:; \ fi; \ - here=`/bin/pwd`; bsdsrcdir=`cd ${BSDSRCDIR}; /bin/pwd`; \ - subdir=$${here#$${bsdsrcdir}/}; \ + [[ -z $$MKDIRS ]] && MKDIRS="mkdir -p"; \ if test $$here != $$subdir ; then \ dest=${BSDOBJDIR}/$$subdir ; \ echo "$$here/${__objdir} -> $$dest"; \ @@ -53,6 +58,7 @@ if test ! -d ${__objdir} ; then \ echo "making $$dest" ; \ $$MKDIRS $$dest; \ + $$SETOWNER $$dest; \ fi ; \ fi; . endif