Annotation of src/share/mk/bsd.obj.mk, Revision 1.41
1.41 ! lukem 1: # $NetBSD: bsd.obj.mk,v 1.40 2002/03/14 18:26:32 thorpej Exp $
1.17 lukem 2:
3: .if !target(__initialized_obj__)
4: __initialized_obj__:
5: .include <bsd.own.mk>
1.1 mycroft 6:
1.29 tv 7: __curdir:= ${.CURDIR}
8:
1.16 lukem 9: .if ${MKOBJ} == "no"
1.1 mycroft 10: obj:
11: .else
1.24 itohy 12: .if defined(MAKEOBJDIRPREFIX) || defined(MAKEOBJDIR)
1.23 sjg 13: .if defined(MAKEOBJDIRPREFIX)
1.34 tv 14: __objdir:= ${MAKEOBJDIRPREFIX}${__curdir}
1.23 sjg 15: .else
16: __objdir:= ${MAKEOBJDIR}
17: .endif
18: # MAKEOBJDIR and MAKEOBJDIRPREFIX are env variables supported
19: # by make(1). We simply mkdir -p the specified path.
20: # If that fails - we do a mkdir to get the appropriate error message
21: # before bailing out.
22: obj:
1.37 jmc 23: .if defined(MAKEOBJDIRPREFIX)
24: @if [ ! -d ${MAKEOBJDIRPREFIX} ]; then \
25: echo "MAKEOBJDIRPREFIX ${MAKEOBJDIRPREFIX} does not exist, bailing..."; \
26: exit 1; \
1.41 ! lukem 27: fi;
1.37 jmc 28: .endif
1.30 tv 29: @if [ ! -d ${__objdir} ]; then \
1.23 sjg 30: mkdir -p ${__objdir}; \
1.30 tv 31: if [ ! -d ${__objdir} ]; then \
1.23 sjg 32: mkdir ${__objdir}; exit 1; \
33: fi; \
1.29 tv 34: echo "${__curdir} -> ${__objdir}"; \
1.23 sjg 35: fi
36: .else
1.32 tv 37: PAWD?= /bin/pwd
38:
39: __objdir= obj${OBJMACHINE:D.${MACHINE}}
1.3 cgd 40:
1.33 tv 41: __usrobjdir= ${BSDOBJDIR}${USR_OBJMACHINE:D.${MACHINE}}
1.39 wiz 42: __usrobjdirpf= ${USR_OBJMACHINE:D:U${OBJMACHINE:D.${MACHINE}}}
1.32 tv 43:
1.40 thorpej 44: .if defined(BUILDID)
45: __objdir:= ${__objdir}.${BUILDID}
46: __usrobjdirpf:= ${__usrobjdirpf}.${BUILDID}
47: __need_objdir_target=yes
48: .endif
49:
1.35 tv 50: .if defined(OBJHOSTMACHINE) && (${MKHOSTOBJ:Uno} != "no")
1.32 tv 51: # In case .CURDIR has been twiddled by a .mk file and is now relative,
52: # make it absolute again.
1.34 tv 53: .if ${__curdir:M/*} == ""
54: __curdir!= cd ${__curdir} && ${PAWD}
1.3 cgd 55: .endif
56:
1.32 tv 57: __objdir:= ${__objdir}.${HOST_OSTYPE}
58: __usrobjdirpf:= ${__usrobjdirpf}.${HOST_OSTYPE}
1.40 thorpej 59: __need_objdir_target=yes
60: .endif
61:
62: .if defined(__need_objdir_target)
1.32 tv 63: .OBJDIR: ${__objdir}
64: .endif
1.18 kim 65:
1.12 mycroft 66: obj:
1.28 tv 67: @cd ${__curdir}; \
1.30 tv 68: here=`${PAWD}`/; subdir=$${here#${BSDSRCDIR}/}; \
1.31 tv 69: if [ "$$here" != "$$subdir" ]; then \
1.30 tv 70: if [ ! -d ${__usrobjdir} ]; then \
1.27 mrg 71: echo "BSDOBJDIR ${__usrobjdir} does not exist, bailing..."; \
72: exit 1; \
73: fi; \
1.30 tv 74: subdir=$${subdir%/}; \
75: dest=${__usrobjdir}/$$subdir${__usrobjdirpf}; \
1.31 tv 76: if [ -h $${here}${__objdir} ]; then \
77: curtarg=`ls -ld $${here}${__objdir} | awk '{print $$NF}'` ; \
1.22 sommerfe 78: if [ "$$curtarg" = "$$dest" ]; then \
79: : ; \
80: else \
1.31 tv 81: echo "$${here}${__objdir} -> $$dest"; \
1.22 sommerfe 82: rm -rf ${__objdir}; \
83: ln -s $$dest ${__objdir}; \
84: fi; \
85: else \
1.31 tv 86: echo "$${here}${__objdir} -> $$dest"; \
1.22 sommerfe 87: rm -rf ${__objdir}; \
88: ln -s $$dest ${__objdir}; \
89: fi; \
1.30 tv 90: if [ ! -d $$dest ]; then \
1.1 mycroft 91: mkdir -p $$dest; \
92: else \
93: true; \
94: fi; \
95: else \
96: true ; \
1.31 tv 97: dest=$${here}${__objdir} ; \
1.30 tv 98: if [ ! -d ${__objdir} ] || [ -h ${__objdir} ]; then \
1.1 mycroft 99: echo "making $$dest" ; \
1.22 sommerfe 100: rm -f ${__objdir}; \
1.1 mycroft 101: mkdir $$dest; \
102: fi ; \
103: fi;
1.23 sjg 104: .endif
1.1 mycroft 105: .endif
1.14 tv 106:
1.15 tv 107: print-objdir:
1.14 tv 108: @echo ${.OBJDIR}
1.28 tv 109: .endif
CVSweb <webmaster@jp.NetBSD.org>