1 1.31 tv # $NetBSD: bsd.obj.mk,v 1.31 2001/11/11 23:07:26 tv Exp $ 2 1.17 lukem 3 1.17 lukem .if !target(__initialized_obj__) 4 1.17 lukem __initialized_obj__: 5 1.17 lukem .include <bsd.own.mk> 6 1.1 mycroft 7 1.29 tv __curdir:= ${.CURDIR} 8 1.29 tv 9 1.16 lukem .if ${MKOBJ} == "no" 10 1.1 mycroft obj: 11 1.1 mycroft .else 12 1.24 itohy .if defined(MAKEOBJDIRPREFIX) || defined(MAKEOBJDIR) 13 1.23 sjg .if defined(MAKEOBJDIRPREFIX) 14 1.23 sjg __objdir:= ${MAKEOBJDIRPREFIX}${.CURDIR} 15 1.23 sjg .else 16 1.23 sjg __objdir:= ${MAKEOBJDIR} 17 1.23 sjg .endif 18 1.23 sjg # MAKEOBJDIR and MAKEOBJDIRPREFIX are env variables supported 19 1.23 sjg # by make(1). We simply mkdir -p the specified path. 20 1.23 sjg # If that fails - we do a mkdir to get the appropriate error message 21 1.23 sjg # before bailing out. 22 1.23 sjg obj: 23 1.30 tv @if [ ! -d ${__objdir} ]; then \ 24 1.23 sjg mkdir -p ${__objdir}; \ 25 1.30 tv if [ ! -d ${__objdir} ]; then \ 26 1.23 sjg mkdir ${__objdir}; exit 1; \ 27 1.23 sjg fi; \ 28 1.29 tv echo "${__curdir} -> ${__objdir}"; \ 29 1.23 sjg fi 30 1.23 sjg .else 31 1.23 sjg .if defined(OBJMACHINE) 32 1.3 cgd __objdir= obj.${MACHINE} 33 1.3 cgd .else 34 1.3 cgd __objdir= obj 35 1.3 cgd .endif 36 1.3 cgd 37 1.3 cgd .if defined(USR_OBJMACHINE) 38 1.4 cgd __usrobjdir= ${BSDOBJDIR}.${MACHINE} 39 1.3 cgd __usrobjdirpf= 40 1.3 cgd .else 41 1.4 cgd __usrobjdir= ${BSDOBJDIR} 42 1.3 cgd .if defined(OBJMACHINE) 43 1.3 cgd __usrobjdirpf= .${MACHINE} 44 1.3 cgd .else 45 1.3 cgd __usrobjdirpf= 46 1.3 cgd .endif 47 1.3 cgd .endif 48 1.3 cgd 49 1.20 kim PAWD?= /bin/pwd 50 1.18 kim 51 1.12 mycroft obj: 52 1.28 tv @cd ${__curdir}; \ 53 1.30 tv here=`${PAWD}`/; subdir=$${here#${BSDSRCDIR}/}; \ 54 1.31 tv if [ "$$here" != "$$subdir" ]; then \ 55 1.30 tv if [ ! -d ${__usrobjdir} ]; then \ 56 1.27 mrg echo "BSDOBJDIR ${__usrobjdir} does not exist, bailing..."; \ 57 1.27 mrg exit 1; \ 58 1.27 mrg fi; \ 59 1.30 tv subdir=$${subdir%/}; \ 60 1.30 tv dest=${__usrobjdir}/$$subdir${__usrobjdirpf}; \ 61 1.31 tv if [ -h $${here}${__objdir} ]; then \ 62 1.31 tv curtarg=`ls -ld $${here}${__objdir} | awk '{print $$NF}'` ; \ 63 1.22 sommerfe if [ "$$curtarg" = "$$dest" ]; then \ 64 1.22 sommerfe : ; \ 65 1.22 sommerfe else \ 66 1.31 tv echo "$${here}${__objdir} -> $$dest"; \ 67 1.22 sommerfe rm -rf ${__objdir}; \ 68 1.22 sommerfe ln -s $$dest ${__objdir}; \ 69 1.22 sommerfe fi; \ 70 1.22 sommerfe else \ 71 1.31 tv echo "$${here}${__objdir} -> $$dest"; \ 72 1.22 sommerfe rm -rf ${__objdir}; \ 73 1.22 sommerfe ln -s $$dest ${__objdir}; \ 74 1.22 sommerfe fi; \ 75 1.30 tv if [ ! -d $$dest ]; then \ 76 1.1 mycroft mkdir -p $$dest; \ 77 1.1 mycroft else \ 78 1.1 mycroft true; \ 79 1.1 mycroft fi; \ 80 1.1 mycroft else \ 81 1.1 mycroft true ; \ 82 1.31 tv dest=$${here}${__objdir} ; \ 83 1.30 tv if [ ! -d ${__objdir} ] || [ -h ${__objdir} ]; then \ 84 1.1 mycroft echo "making $$dest" ; \ 85 1.22 sommerfe rm -f ${__objdir}; \ 86 1.1 mycroft mkdir $$dest; \ 87 1.1 mycroft fi ; \ 88 1.1 mycroft fi; 89 1.23 sjg .endif 90 1.1 mycroft .endif 91 1.14 tv 92 1.15 tv print-objdir: 93 1.14 tv @echo ${.OBJDIR} 94 1.28 tv .endif 95