bsd.subdir.mk revision 134904
155714Skris# from: @(#)bsd.subdir.mk 5.9 (Berkeley) 2/1/91 255714Skris# $FreeBSD: head/share/mk/bsd.subdir.mk 134903 2004-09-07 15:19:40Z imp $ 355714Skris# 455714Skris# The include file <bsd.subdir.mk> contains the default targets 555714Skris# for building subdirectories. 655714Skris# 755714Skris# For all of the directories listed in the variable SUBDIRS, the 855714Skris# specified directory will be visited and the target made. There is 955714Skris# also a default target which allows the command "make subdir" where 1055714Skris# subdir is any directory listed in the variable SUBDIRS. 1155714Skris# 1255714Skris# 1355714Skris# +++ variables +++ 1455714Skris# 1555714Skris# DISTRIBUTION Name of distribution. [base] 1655714Skris# 1755714Skris# SUBDIR A list of subdirectories that should be built as well. 1855714Skris# Each of the targets will execute the same target in the 1955714Skris# subdirectories. 2055714Skris# 2155714Skris# +++ targets +++ 2255714Skris# 2355714Skris# distribute: 2455714Skris# This is a variant of install, which will 2555714Skris# put the stuff into the right "distribution". 2655714Skris# 2755714Skris# afterinstall, all, all-man, beforeinstall, checkdpadd, 2855714Skris# clean, cleandepend, cleandir, depend, install, lint, maninstall, 2955714Skris# obj, objlink, realinstall, regress, tags 3055714Skris# 3155714Skris 3255714Skris.include <bsd.init.mk> 3355714Skris 3455714SkrisDISTRIBUTION?= base 3555714Skris.if !target(distribute) 3655714Skrisdistribute: 3755714Skris.for dist in ${DISTRIBUTION} 3855714Skris ${_+_}cd ${.CURDIR}; \ 3955714Skris ${MAKE} install -DNO_SUBDIR DESTDIR=${DISTDIR}/${dist} SHARED=copies 4055714Skris.endfor 4155714Skris.endif 4255714Skris 4355714Skris_SUBDIR: .USE 4455714Skris.if defined(SUBDIR) && !empty(SUBDIR) && !defined(NO_SUBDIR) 4555714Skris @${_+_}for entry in ${SUBDIR}; do \ 4655714Skris if test -d ${.CURDIR}/$${entry}.${MACHINE_ARCH}; then \ 4755714Skris ${ECHODIR} "===> ${DIRPRFX}$${entry}.${MACHINE_ARCH} (${.TARGET:realinstall=install})"; \ 4855714Skris edir=$${entry}.${MACHINE_ARCH}; \ 4955714Skris cd ${.CURDIR}/$${edir}; \ 5055714Skris else \ 5155714Skris ${ECHODIR} "===> ${DIRPRFX}$$entry (${.TARGET:realinstall=install})"; \ 5255714Skris edir=$${entry}; \ 5355714Skris cd ${.CURDIR}/$${edir}; \ 5455714Skris fi; \ 5555714Skris ${MAKE} ${.TARGET:realinstall=install} \ 5655714Skris DIRPRFX=${DIRPRFX}$$edir/; \ 5755714Skris done 5855714Skris.endif 5959191Skris 6055714Skris${SUBDIR}:: 6155714Skris ${_+_}@if test -d ${.TARGET}.${MACHINE_ARCH}; then \ 6255714Skris cd ${.CURDIR}/${.TARGET}.${MACHINE_ARCH}; \ 63109998Smarkm else \ 6455714Skris cd ${.CURDIR}/${.TARGET}; \ 6555714Skris fi; \ 6655714Skris ${_+_}${MAKE} all 6755714Skris 6855714Skris 6955714Skris.for __target in all all-man checkdpadd clean cleandepend cleandir \ 7055714Skris depend distribute lint maninstall \ 7155714Skris obj objlink realinstall regress tags 7255714Skris${__target}: _SUBDIR 7355714Skris.endfor 7455714Skris 7555714Skris.for __target in files includes 76160814Ssimon.for __stage in build install 77160814Ssimon${__stage}${__target}: 78160814Ssimon.if make(${__stage}${__target}) 79160814Ssimon${__stage}${__target}: _SUBDIR 80160814Ssimon.endif 81160814Ssimon.endfor 8255714Skris${__target}: 8355714Skris ${_+_}cd ${.CURDIR}; ${MAKE} build${__target}; ${MAKE} install${__target} 8455714Skris.endfor 8555714Skris 8655714Skris.if !target(install) 8755714Skris.if !target(beforeinstall) 8855714Skrisbeforeinstall: 8955714Skris.endif 90160814Ssimon.if !target(afterinstall) 9155714Skrisafterinstall: 9255714Skris.endif 9355714Skrisinstall: beforeinstall realinstall afterinstall 9455714Skris.ORDER: beforeinstall realinstall afterinstall 9555714Skris.endif 9655714Skris