1# $MirOS: src/share/mk/bsd.obj.mk,v 1.9 2008/07/11 11:33:20 tg Exp $ 2# $OpenBSD: bsd.obj.mk,v 1.12 2003/10/28 17:09:33 espie Exp $ 3# $NetBSD: bsd.obj.mk,v 1.9 1996/04/10 21:08:05 thorpej Exp $ 4 5.if !defined(BSD_OBJ_MK) 6BSD_OBJ_MK=1 7 8.if !defined(BSD_OWN_MK) 9. include <bsd.own.mk> 10.endif 11 12.if !target(obj) 13. if ${NOOBJ:L} != "no" 14obj: 15. else 16 17. if defined(MAKEOBJDIR) && !empty(MAKEOBJDIR) 18__baseobjdir= ${MAKEOBJDIR} 19. else 20__baseobjdir= obj 21. endif 22 23. if defined(OBJMACHINE) 24__objdir= ${__baseobjdir}.${MACHINE} 25. else 26__objdir= ${__baseobjdir} 27. endif 28 29. if defined(USR_OBJMACHINE) 30__usrobjdir!= realpath ${BSDOBJDIR}.${MACHINE} 2>&- || \ 31 print -nr -- ${BSDOBJDIR:Q}.${MACHINE:Q} 32__usrobjdirpf= 33. else 34__usrobjdir!= realpath ${BSDOBJDIR} 2>&- || print -nr -- ${BSDOBJDIR:Q} 35. if defined(OBJMACHINE) 36__usrobjdirpf= .${MACHINE} 37. else 38__usrobjdirpf= 39. endif 40. endif 41 42_SUBDIRUSE: 43 44obj! _SUBDIRUSE 45 @cd ${.CURDIR}; \ 46 tryobjdir=0; here=.; \ 47 if bsdsrcdir=$$(realpath ${BSDSRCDIR} 2>&-); then \ 48 here=$$(realpath .); \ 49 subdir=$${here#$${bsdsrcdir}/}; \ 50 [[ $$here = $$subdir ]] || tryobjdir=1; \ 51 fi; \ 52 if [[ $$tryobjdir = 1 ]]; then \ 53 dest=${__usrobjdir}/$$subdir${__usrobjdirpf}; \ 54 print -r "$$here/${__objdir} -> $$dest"; \ 55 if [[ ! -L ${__objdir} \ 56 || $$(readlink ${__objdir}) != $$dest ]]; then \ 57 [[ ! -e ${__objdir} ]] || rm -rf ${__objdir}; \ 58 ln -sf $$dest ${__objdir}; \ 59 fi; \ 60 [[ ! -d ${__usrobjdir} || -d $$dest ]] || mkdir -p $$dest; \ 61 elif [[ ! -d ${__objdir} ]]; then \ 62 print -r "making $$here/${__objdir}"; \ 63 mkdir ${__objdir}; \ 64 fi 65. endif 66.endif # ! not target obj 67 68.endif 69