1# $OpenBSD: bsd.obj.mk,v 1.19 2017/01/24 03:22:13 tb Exp $ 2# $NetBSD: bsd.obj.mk,v 1.9 1996/04/10 21:08:05 thorpej Exp $ 3 4.if !target(obj) 5. if defined(NOOBJ) 6obj: 7. else 8 9. if defined(MAKEOBJDIR) 10__objdir= ${MAKEOBJDIR} 11. else 12__objdir= obj 13. endif 14 15_SUBDIRUSE: 16 17obj! _SUBDIRUSE 18 @cd ${.CURDIR}; \ 19 umask ${WOBJUMASK}; \ 20 here=`/bin/pwd`; bsdsrcdir=`cd ${BSDSRCDIR}; /bin/pwd`; \ 21 subdir=$${here#$${bsdsrcdir}/}; \ 22 if [[ `id -u` -eq 0 && ${BUILDUSER} != root ]]; then \ 23 SETOWNER="chown -h ${BUILDUSER}:${WOBJGROUP}"; \ 24 if [[ $$here != $$subdir ]]; then \ 25 _mkdirs() { \ 26 su ${BUILDUSER} -c "mkdir -p $$1"; \ 27 }; \ 28 MKDIRS=_mkdirs; \ 29 fi; \ 30 elif [[ `id` == *'('${WOBJGROUP}')'* && $$here == $$subdir ]]; then \ 31 SETOWNER="chown :${WOBJGROUP}"; \ 32 else \ 33 SETOWNER=:; \ 34 fi; \ 35 [[ -z $$MKDIRS ]] && MKDIRS="mkdir -p"; \ 36 if [[ $$here != $$subdir ]]; then \ 37 dest=${BSDOBJDIR}/$$subdir ; \ 38 echo "$$here/${__objdir} -> $$dest"; \ 39 if [[ ! -L ${__objdir} || `readlink ${__objdir}` != $$dest ]]; \ 40 then \ 41 [[ -e ${__objdir} ]] && rm -rf ${__objdir}; \ 42 ln -sf $$dest ${__objdir}; \ 43 $$SETOWNER ${__objdir}; \ 44 fi; \ 45 if [[ -d ${BSDOBJDIR} ]]; then \ 46 [[ -d $$dest ]] || $$MKDIRS $$dest; \ 47 else \ 48 if [[ -e ${BSDOBJDIR} ]]; then \ 49 echo "${BSDOBJDIR} is not a directory"; \ 50 else \ 51 echo "${BSDOBJDIR} does not exist"; \ 52 fi; \ 53 fi; \ 54 else \ 55 dest=$$here/${__objdir} ; \ 56 if [[ ! -d ${__objdir} ]]; then \ 57 echo "making $$dest" ; \ 58 $$MKDIRS $$dest; \ 59 $$SETOWNER $$dest; \ 60 fi ; \ 61 fi; 62. endif 63.endif 64 65.include <bsd.own.mk> 66