bsd.subdir.mk revision 1.38 1 # $NetBSD: bsd.subdir.mk,v 1.38 2000/06/06 08:54:06 mycroft Exp $
2 # @(#)bsd.subdir.mk 8.1 (Berkeley) 6/8/93
3
4 .if !target(__initialized__)
5 __initialized__:
6 .if exists(${.CURDIR}/../Makefile.inc)
7 .include "${.CURDIR}/../Makefile.inc"
8 .endif
9 .include <bsd.own.mk>
10 .MAIN: all
11 .endif
12
13 .for dir in ${SUBDIR}
14 .if exists(${dir}.${MACHINE})
15 __REALSUBDIR+=${dir}.${MACHINE}
16 .else
17 __REALSUBDIR+=${dir}
18 .endif
19 .endfor
20
21 .if defined(DESTDIR) && exists(${DESTDIR}/usr/share/mk/sys.mk)
22 _M=-m ${DESTDIR}/usr/share/mk
23 .else
24 _M=
25 .endif
26
27 __recurse: .USE
28 @targ=${.TARGET:C/-.*$//};dir=${.TARGET:C/^[^-]*-//}; \
29 case "$$dir" in /*) \
30 echo "$$targ ===> $$dir"; \
31 cd "$$dir"; \
32 ${MAKE} ${_M} "_THISDIR_=$$dir/" $$targ; \
33 ;; \
34 *) \
35 echo "$$targ ===> ${_THISDIR_}$$dir"; \
36 cd "${.CURDIR}/$$dir"; \
37 ${MAKE} ${_M} "_THISDIR_=${_THISDIR_}$$dir/" $$targ; \
38 ;; \
39 esac
40
41 .for targ in ${TARGETS}
42 .for dir in ${__REALSUBDIR}
43 .PHONY: ${targ}-${dir}
44 ${targ}-${dir}: .MAKE __recurse
45 subdir-${targ}: ${targ}-${dir}
46 .endfor
47 .if defined(__REALSUBDIR)
48 ${targ}: subdir-${targ}
49 .endif
50 .endfor
51
52 # Make sure all of the standard targets are defined, even if they do nothing.
53 ${TARGETS}:
54