bsd.subdir.mk revision 90311
179455Sobrien# from: @(#)bsd.subdir.mk 5.9 (Berkeley) 2/1/91 279455Sobrien# $FreeBSD: head/share/mk/bsd.subdir.mk 90311 2002-02-06 18:05:53Z ru $ 379455Sobrien# 479455Sobrien# The include file <bsd.subdir.mk> contains the default targets 579455Sobrien# for building subdirectories. 679455Sobrien# 779455Sobrien# For all of the directories listed in the variable SUBDIRS, the 879455Sobrien# specified directory will be visited and the target made. There is 979455Sobrien# also a default target which allows the command "make subdir" where 1079455Sobrien# subdir is any directory listed in the variable SUBDIRS. 1179455Sobrien# 1279455Sobrien# 1379455Sobrien# +++ variables +++ 1479455Sobrien# 1579455Sobrien# DISTRIBUTION Name of distribution. [bin] 1679455Sobrien# 1779455Sobrien# SUBDIR A list of subdirectories that should be built as well. 1879455Sobrien# Each of the targets will execute the same target in the 1979455Sobrien# subdirectories. 2079455Sobrien# 2179455Sobrien# +++ targets +++ 2279455Sobrien# 2379455Sobrien# distribute: 2479455Sobrien# This is a variant of install, which will 2579455Sobrien# put the stuff into the right "distribution". 2679455Sobrien# 2779455Sobrien# afterdistribute, afterinstall, all, all-man, beforeinstall, checkdpadd, 2879455Sobrien# clean, cleandepend, cleandir, depend, install, lint, maninstall, 29128463Stjr# obj, objlink, realinstall, regress, tags 3079455Sobrien# 3179455Sobrien 3279455Sobrien.if !target(__initialized__) 3379455Sobrien__initialized__: 3479455Sobrien.if exists(${.CURDIR}/../Makefile.inc) 3579455Sobrien.include "${.CURDIR}/../Makefile.inc" 3679455Sobrien.endif 3779455Sobrien.endif 3879455Sobrien 3979455Sobrien.MAIN: all 4079455Sobrien 4179455Sobrien_SUBDIRUSE: .USE 4279455Sobrien @for entry in ${SUBDIR}; do \ 43203872Skib (if test -d ${.CURDIR}/$${entry}.${MACHINE_ARCH}; then \ 4479455Sobrien ${ECHODIR} "===> ${DIRPRFX}$${entry}.${MACHINE_ARCH}"; \ 4579455Sobrien edir=$${entry}.${MACHINE_ARCH}; \ 4679455Sobrien cd ${.CURDIR}/$${edir}; \ 4779455Sobrien else \ 4879455Sobrien ${ECHODIR} "===> ${DIRPRFX}$$entry"; \ 49203872Skib edir=$${entry}; \ 5079455Sobrien cd ${.CURDIR}/$${edir}; \ 51203872Skib fi; \ 5279455Sobrien ${MAKE} ${.TARGET:realinstall=install} \ 5379455Sobrien DIRPRFX=${DIRPRFX}$$edir/); \ 5479455Sobrien done 5579455Sobrien 5679455Sobrien${SUBDIR}:: 5779455Sobrien @if test -d ${.TARGET}.${MACHINE_ARCH}; then \ 5879455Sobrien cd ${.CURDIR}/${.TARGET}.${MACHINE_ARCH}; \ 5979455Sobrien else \ 6079455Sobrien cd ${.CURDIR}/${.TARGET}; \ 6179455Sobrien fi; \ 6279455Sobrien ${MAKE} all 6379455Sobrien 6479455Sobrien 65203874Skib.for __target in all all-man checkdpadd clean cleandepend cleandir depend lint \ 66203874Skib maninstall obj objlink regress tags \ 67203874Skib install.debug reinstall.debug 68203874Skib.if !target(${__target}) 69203874Skib${__target}: _SUBDIRUSE 70203874Skib.endif 71203874Skib.endfor 72203874Skib 7379455Sobrien.if !target(install) 74203874Skib.if !target(beforeinstall) 75203874Skibbeforeinstall: 76203874Skib.endif 7779455Sobrien.if !target(afterinstall) 78203874Skibafterinstall: 7979455Sobrien.endif 80203874Skibinstall: afterinstall 8179455Sobrienafterinstall: realinstall 8279455Sobrienrealinstall: beforeinstall _SUBDIRUSE 8379455Sobrien.endif 8479455Sobrien 8579455SobrienDISTRIBUTION?= bin 8679455Sobrien.if !target(afterdistribute) 8779455Sobrienafterdistribute: 8879455Sobrien.endif 8979455Sobrien.if !target(distribute) 9079455Sobriendistribute: _SUBDIRUSE 91102231Strhodes.for dist in ${DISTRIBUTION} 9279455Sobrien cd ${.CURDIR} ; ${MAKE} afterdistribute DESTDIR=${DISTDIR}/${dist} 9379455Sobrien.endfor 9479455Sobrien.endif 95203874Skib