[BACK]Return to bsd.obj.mk CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / share / mk

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>