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