Annotation of src/share/mk/bsd.obj.mk, Revision 1.15
1.15 ! natano 1: # $OpenBSD: bsd.obj.mk,v 1.14 2013/11/22 15:43:18 espie Exp $
1.3 deraadt 2: # $NetBSD: bsd.obj.mk,v 1.9 1996/04/10 21:08:05 thorpej Exp $
1.1 deraadt 3:
4: .if !target(obj)
1.12 espie 5: . if defined(NOOBJ)
1.1 deraadt 6: obj:
1.12 espie 7: . else
1.1 deraadt 8:
1.12 espie 9: . if defined(MAKEOBJDIR)
1.14 espie 10: __objdir= ${MAKEOBJDIR}
1.12 espie 11: . else
1.14 espie 12: __objdir= obj
1.12 espie 13: . endif
14:
15: _SUBDIRUSE:
1.1 deraadt 16:
1.5 niklas 17: obj! _SUBDIRUSE
1.10 grr 18: @cd ${.CURDIR}; \
1.15 ! natano 19: if [[ `id -u` -eq 0 && ${BUILDUSER} != root ]]; then \
! 20: SETOWNER="chown -h ${BUILDUSER}"; \
! 21: _mkdirs() { \
! 22: su ${BUILDUSER} -c "mkdir -p $$1"; \
! 23: }; \
! 24: MKDIRS=_mkdirs; \
! 25: else \
! 26: MKDIRS="mkdir -p"; \
! 27: SETOWNER=:; \
! 28: fi; \
1.7 niklas 29: here=`/bin/pwd`; bsdsrcdir=`cd ${BSDSRCDIR}; /bin/pwd`; \
30: subdir=$${here#$${bsdsrcdir}/}; \
1.1 deraadt 31: if test $$here != $$subdir ; then \
1.14 espie 32: dest=${BSDOBJDIR}/$$subdir ; \
1.1 deraadt 33: echo "$$here/${__objdir} -> $$dest"; \
1.6 deraadt 34: if test ! -L ${__objdir} -o \
1.9 kstailey 35: X`readlink ${__objdir}` != X$$dest; \
1.6 deraadt 36: then \
1.8 niklas 37: if test -e ${__objdir}; then rm -rf ${__objdir}; fi; \
1.11 flipk 38: ln -sf $$dest ${__objdir}; \
1.15 ! natano 39: $$SETOWNER ${__objdir}; \
1.6 deraadt 40: fi; \
1.14 espie 41: if test -d ${BSDOBJDIR}; then \
1.15 ! natano 42: test -d $$dest || $$MKDIRS $$dest; \
1.1 deraadt 43: else \
1.14 espie 44: if test -e ${BSDOBJDIR}; then \
45: echo "${BSDOBJDIR} is not a directory"; \
1.13 espie 46: else \
1.14 espie 47: echo "${BSDOBJDIR} does not exist"; \
1.13 espie 48: fi; \
1.1 deraadt 49: fi; \
50: else \
51: true ; \
52: dest=$$here/${__objdir} ; \
53: if test ! -d ${__objdir} ; then \
54: echo "making $$dest" ; \
1.15 ! natano 55: $$MKDIRS $$dest; \
1.1 deraadt 56: fi ; \
57: fi;
1.12 espie 58: . endif
1.1 deraadt 59: .endif
1.15 ! natano 60:
! 61: .include <bsd.own.mk>