bsd.subdir.mk revision 1.18
1#	$OpenBSD: bsd.subdir.mk,v 1.18 2012/08/18 10:36:51 espie Exp $
2#	$NetBSD: bsd.subdir.mk,v 1.11 1996/04/04 02:05:06 jtc Exp $
3#	@(#)bsd.subdir.mk	5.9 (Berkeley) 2/1/91
4
5.if !target(.MAIN)
6.MAIN: all
7.endif
8
9# Make sure this is defined
10SKIPDIR?=
11
12_SUBDIRUSE: .USE
13.if defined(SUBDIR)
14	@for entry in ${SUBDIR}; do \
15		(set -e; if test -d ${.CURDIR}/$${entry}.${MACHINE}; then \
16			_newdir_="$${entry}.${MACHINE}"; \
17		else \
18			_newdir_="$${entry}"; \
19		fi; \
20		if test X"${_THISDIR_}" = X""; then \
21			_nextdir_="$${_newdir_}"; \
22		else \
23			_nextdir_="$${_THISDIR_}/$${_newdir_}"; \
24		fi; \
25		_makefile_spec_=""; \
26		if [ -e ${.CURDIR}/$${_newdir_}/Makefile.bsd-wrapper ]; then \
27			_makefile_spec_="-f Makefile.bsd-wrapper"; \
28		fi; \
29		subskipdir=''; \
30		for skipdir in ${SKIPDIR}; do \
31			subentry=$${skipdir#$${entry}}; \
32			if [ X$${subentry} != X$${skipdir} ]; then \
33				if [ X$${subentry} = X ]; then \
34					echo "($${_nextdir_} skipped)"; \
35					break; \
36				fi; \
37				subskipdir="$${subskipdir} $${subentry#/}"; \
38			fi; \
39		done; \
40		if [ X$${skipdir} = X -o X$${subentry} != X ]; then \
41			echo "===> $${_nextdir_}"; \
42			cd ${.CURDIR}/$${_newdir_}; \
43			exec ${MAKE} SKIPDIR="$${subskipdir}" \
44			    $${_makefile_spec_} _THISDIR_="$${_nextdir_}" \
45			    ${MAKE_FLAGS} \
46			    ${.TARGET:S/^real//:S/subdirdepend/depend/}; \
47		fi); \
48	done
49
50${SUBDIR}::
51	@set -e; if test -d ${.CURDIR}/${.TARGET}.${MACHINE}; then \
52		_newdir_=${.TARGET}.${MACHINE}; \
53	else \
54		_newdir_=${.TARGET}; \
55	fi; \
56	_makefile_spec_=""; \
57	if [ -f ${.CURDIR}/$${_newdir_}/Makefile.bsd-wrapper ]; then \
58		_makefile_spec_="-f Makefile.bsd-wrapper"; \
59	fi; \
60	echo "===> $${_newdir_}"; \
61	cd ${.CURDIR}/$${_newdir_}; \
62	exec ${MAKE} ${MAKE_FLAGS} $${_makefile_spec_} _THISDIR_="$${_newdir_}" all
63.endif
64
65.if !target(install)
66.  if !target(beforeinstall)
67beforeinstall:
68.  endif
69.  if !target(afterinstall)
70afterinstall:
71.  endif
72install: maninstall
73maninstall: afterinstall
74afterinstall: realinstall
75realinstall: beforeinstall _SUBDIRUSE
76.endif
77
78
79.for t in all clean cleandir includes depend obj tags regress
80.  if !target($t)
81$t: _SUBDIRUSE
82.  endif
83.endfor
84
85.if !defined(BSD_OWN_MK)
86.  include <bsd.own.mk>
87.endif
88