bsd.subdir.mk revision 31177
11844Swollman#	from: @(#)bsd.subdir.mk	5.9 (Berkeley) 2/1/91
231177Swosch#	$Id: bsd.subdir.mk,v 1.18 1997/06/21 15:40:34 jkh Exp $
323549Swosch#
423549Swosch# The include file <bsd.subdir.mk> contains the default targets
523549Swosch# for building subdirectories. It has the same seven targets
623549Swosch# as <bsd.prog.mk>:
723549Swosch#	all, clean, cleandir, depend, install, lint, and tags.
823549Swosch#
923549Swosch# For all of the directories listed in the variable SUBDIRS, the
1023549Swosch# specified directory will be visited and the target made. There is
1123549Swosch# also a default target which allows the command "make subdir" where
1223549Swosch# subdir is any directory listed in the variable SUBDIRS.
1323549Swosch#
1423549Swosch#
1523549Swosch# +++ variables +++
1623549Swosch#
1723549Swosch# DISTRIBUTION	Name of distribution. [bin]
1823549Swosch#
1923549Swosch# SUBDIR	A list of subdirectories that should be built as well.
2023549Swosch#		Each of the targets will execute the same target in the
2123549Swosch#		subdirectories.
2223549Swosch#
2323549Swosch# +++ targets +++
2423549Swosch#
2523549Swosch#	distribute:
2623549Swosch# 		This is a variant of install, which will
2723549Swosch# 		put the stuff into the right "distribution".
2823549Swosch#
2923549Swosch#	afterdistribute, afterinstall, all, beforeinstall, checkdpadd,
3023549Swosch#	clean, cleandepend, cleandir, depend, install, lint, maninstall,
3123549Swosch#	obj, objlink, realinstall, tags
3223549Swosch#
331638Srgrimes
3423549Swosch
351638Srgrimes.MAIN: all
361638Srgrimes
371638Srgrimes_SUBDIRUSE: .USE
381638Srgrimes	@for entry in ${SUBDIR}; do \
391638Srgrimes		(if test -d ${.CURDIR}/$${entry}.${MACHINE}; then \
402352Sbde			${ECHODIR} "===> ${DIRPRFX}$${entry}.${MACHINE}"; \
411844Swollman			edir=$${entry}.${MACHINE}; \
421844Swollman			cd ${.CURDIR}/$${edir}; \
431638Srgrimes		else \
442352Sbde			${ECHODIR} "===> ${DIRPRFX}$$entry"; \
451844Swollman			edir=$${entry}; \
461844Swollman			cd ${.CURDIR}/$${edir}; \
471638Srgrimes		fi; \
4824431Sscrappy		${MAKE} ${.TARGET:realinstall=install} DIRPRFX=${DIRPRFX}$$edir/); \
491638Srgrimes	done
501638Srgrimes
511638Srgrimes${SUBDIR}::
521638Srgrimes	@if test -d ${.TARGET}.${MACHINE}; then \
531638Srgrimes		cd ${.CURDIR}/${.TARGET}.${MACHINE}; \
541638Srgrimes	else \
551638Srgrimes		cd ${.CURDIR}/${.TARGET}; \
561638Srgrimes	fi; \
571638Srgrimes	${MAKE} all
581638Srgrimes
591638Srgrimes
6024861Sjkh.for __target in all checkdpadd clean cleandir depend lint \
6124861Sjkh		 maninstall obj objlink
6231177Swosch.if !target(${__target})
6315061Swosch${__target}: _SUBDIRUSE
641638Srgrimes.endif
6515061Swosch.endfor
661638Srgrimes
6724861Sjkh.if !target(tags)
6824861Sjkh.if defined(TAGS)
6924861Sjkhtags:
7024861Sjkh	@cd ${.CURDIR} && gtags ${GTAGSFLAGS}
7124861Sjkh.if defined(HTML)
7224861Sjkh	@cd ${.CURDIR} && htags ${HTAGSFLAGS}
7324861Sjkh.endif
7424861Sjkh.else
7524861Sjkhtags:	_SUBDIRUSE
7624861Sjkh.endif
7724861Sjkh.endif
7824861Sjkh
7924861Sjkh.if !defined(cleandepend)
8024861Sjkhcleandepend:	_SUBDIRUSE
8124861Sjkh.if defined(TAGS)
8224861Sjkh	@rm -f ${.CURDIR}/GTAGS ${.CURDIR}/GRTAGS
8324861Sjkh.if defined(HTML)
8424861Sjkh	@rm -rf ${.CURDIR}/HTML
8524861Sjkh.endif
8624861Sjkh.endif
8724861Sjkh.endif
8824861Sjkh
891638Srgrimes.if !target(install)
901638Srgrimes.if !target(beforeinstall)
911638Srgrimesbeforeinstall:
921638Srgrimes.endif
931638Srgrimes.if !target(afterinstall)
941638Srgrimesafterinstall:
951638Srgrimes.endif
961638Srgrimesinstall: afterinstall
971638Srgrimesafterinstall: realinstall
981638Srgrimesrealinstall: beforeinstall _SUBDIRUSE
991638Srgrimes.endif
1001638Srgrimes
10115061SwoschDISTRIBUTION?=	bin
10215061Swosch.if !target(afterdistribute)
10315061Swoschafterdistribute:
1041638Srgrimes.endif
10515061Swosch.if !target(distribute)
10623549Swoschdistribute: _SUBDIRUSE
10726760Sjkh.for dist in ${DISTRIBUTION}
10826760Sjkh	cd ${.CURDIR} ; ${MAKE} afterdistribute DESTDIR=${DISTDIR}/${dist}
10926760Sjkh.endfor
1101638Srgrimes.endif
111