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