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