1236769Sobrien#	$Id: subdir.mk,v 1.14 2012/11/12 04:34:33 sjg Exp $
2236769Sobrien#	skip missing directories...
3253883Ssjg
4236769Sobrien#	$NetBSD: bsd.subdir.mk,v 1.11 1996/04/04 02:05:06 jtc Exp $
5236769Sobrien#	@(#)bsd.subdir.mk	5.9 (Berkeley) 2/1/91
6236769Sobrien
7253883Ssjg.if ${.MAKE.LEVEL} == 0 && ${.MAKE.MODE:Uno:Mmeta*} != ""
8236769Sobrien.include <meta.subdir.mk>
9236769Sobrien# keep everyone happy
10246223Ssjg_SUBDIRUSE:
11246223Ssjg.elif !commands(_SUBDIRUSE) && !defined(NO_SUBDIR) && !defined(NOSUBDIR)
12246223Ssjg.if exists(${.CURDIR}/Makefile.inc)
13246223Ssjg.include "Makefile.inc"
14246223Ssjg.endif
15246223Ssjg.if !target(.MAIN)
16236769Sobrien.MAIN: all
17236769Sobrien.endif
18236769Sobrien
19236769SobrienECHO_DIR ?= echo
20236769Sobrien.ifdef SUBDIR_MUST_EXIST
21236769SobrienMISSING_DIR=echo "Missing ===> ${.CURDIR}/$${entry}"; exit 1
22236769Sobrien.else
23236769SobrienMISSING_DIR=echo "Skipping ===> ${.CURDIR}/$${entry}"; continue
24236769Sobrien.endif
25236769Sobrien
26236769Sobrien_SUBDIRUSE: .USE
27236769Sobrien.if defined(SUBDIR)
28236769Sobrien	@Exists() { test -f $$1; }; \
29236769Sobrien	for entry in ${SUBDIR}; do \
30236769Sobrien		(set -e; \
31236769Sobrien		if Exists ${.CURDIR}/$${entry}.${MACHINE}/[mM]akefile; then \
32236769Sobrien			_newdir_="$${entry}.${MACHINE}"; \
33236769Sobrien		elif  Exists ${.CURDIR}/$${entry}/[mM]akefile; then \
34236769Sobrien			_newdir_="$${entry}"; \
35236769Sobrien		else \
36236769Sobrien			${MISSING_DIR}; \
37236769Sobrien		fi; \
38236769Sobrien		if test X"${_THISDIR_}" = X""; then \
39236769Sobrien			_nextdir_="$${_newdir_}"; \
40236769Sobrien		else \
41236769Sobrien			_nextdir_="$${_THISDIR_}/$${_newdir_}"; \
42236769Sobrien		fi; \
43236769Sobrien		${ECHO_DIR} "===> $${_nextdir_}"; \
44236769Sobrien		cd ${.CURDIR}/$${_newdir_}; \
45236769Sobrien		${.MAKE} _THISDIR_="$${_nextdir_}" \
46236769Sobrien		    ${.TARGET:S/realinstall/install/:S/.depend/depend/}) || exit 1; \
47236769Sobrien	done
48237578Sobrien
49236769Sobrien${SUBDIR}::
50236769Sobrien	@set -e; if test -d ${.CURDIR}/${.TARGET}.${MACHINE}; then \
51236769Sobrien		_newdir_=${.TARGET}.${MACHINE}; \
52236769Sobrien	else \
53236769Sobrien		_newdir_=${.TARGET}; \
54236769Sobrien	fi; \
55236769Sobrien	${ECHO_DIR} "===> $${_newdir_}"; \
56236769Sobrien	cd ${.CURDIR}/$${_newdir_}; \
57236769Sobrien	${.MAKE} _THISDIR_="$${_newdir_}" all
58236769Sobrien.endif
59236769Sobrien
60236769Sobrien.if !target(install)
61236769Sobrien.if !target(beforeinstall)
62236769Sobrienbeforeinstall:
63236769Sobrien.endif
64236769Sobrien.if !target(afterinstall)
65236769Sobrienafterinstall:
66236769Sobrien.endif
67236769Sobrieninstall: maninstall
68236769Sobrienmaninstall: afterinstall
69236769Sobrienafterinstall: realinstall
70236769Sobrienrealinstall: beforeinstall _SUBDIRUSE
71236769Sobrien.endif
72236769Sobrien
73236769Sobrien.if defined(SRCS)
74236769Sobrienetags: ${SRCS}
75236769Sobrien	-cd ${.CURDIR}; etags `echo ${.ALLSRC:N*.h} | sed 's;${.CURDIR}/;;'`
76236769Sobrien.endif
77236769Sobrien
78236769SobrienSUBDIR_TARGETS += \
79236769Sobrien	all \
80236769Sobrien	clean \
81236769Sobrien	cleandir \
82236769Sobrien	includes \
83236769Sobrien	depend \
84236769Sobrien	lint \
85236769Sobrien	obj \
86236769Sobrien	tags \
87236769Sobrien	etags
88236769Sobrien
89236769Sobrien.for t in ${SUBDIR_TARGETS:O:u}
90236769Sobrien$t: _SUBDIRUSE
91236769Sobrien.endfor
92236769Sobrien
93236769Sobrien.include <own.mk>
94236769Sobrien.if make(destroy*)
95236769Sobrien.include <obj.mk>
96236769Sobrien.endif
97236769Sobrien.endif
98236769Sobrien# make sure this exists
99236769Sobrienall:
100236769Sobrien