Home | History | Annotate | Line # | Download | only in mk
bsd.subdir.mk revision 1.40
      1 #	$NetBSD: bsd.subdir.mk,v 1.40 2001/01/01 15:27:31 sommerfeld Exp $
      2 #	@(#)bsd.subdir.mk	8.1 (Berkeley) 6/8/93
      3 
      4 .if !target(__initialized__)
      5 __initialized__:
      6 .if exists(${.CURDIR}/../Makefile.inc)
      7 .include "${.CURDIR}/../Makefile.inc"
      8 .endif
      9 .include <bsd.own.mk>
     10 .MAIN:		all
     11 .endif
     12 
     13 .for dir in ${SUBDIR}
     14 .if exists(${dir}.${MACHINE})
     15 __REALSUBDIR+=${dir}.${MACHINE}
     16 .else
     17 __REALSUBDIR+=${dir}
     18 .endif
     19 .endfor
     20 
     21 .if defined(DESTDIR) && exists(${DESTDIR}/usr/share/mk/sys.mk)
     22 _M=-m ${DESTDIR}/usr/share/mk
     23 .else
     24 _M=
     25 .endif
     26 
     27 __recurse: .USE
     28 	@targ=${.TARGET:C/-.*$//};dir=${.TARGET:C/^[^-]*-//};		\
     29 	case "$$dir" in /*)						\
     30 		echo "$$targ ===> $$dir";				\
     31 		cd "$$dir";						\
     32 		${MAKE} ${_M} "_THISDIR_=$$dir/" $$targ;		\
     33 		;;							\
     34 	*)								\
     35 		echo "$$targ ===> ${_THISDIR_}$$dir";			\
     36 		cd "${.CURDIR}/$$dir";					\
     37 		${MAKE} ${_M} "_THISDIR_=${_THISDIR_}$$dir/" $$targ;	\
     38 		;;							\
     39 	esac
     40 
     41 # for obscure reasons, we can't do a simple .if ${dir} == ".WAIT"
     42 # but have to assign to __TARGDIR first.
     43 .for targ in ${TARGETS}
     44 .for dir in ${__REALSUBDIR}
     45 __TARGDIR := ${dir}
     46 .if ${__TARGDIR} == ".WAIT"
     47 SUBDIR_${targ} += .WAIT
     48 .else
     49 .PHONY: ${targ}-${dir}
     50 ${targ}-${dir}: .MAKE __recurse
     51 subdir-${targ}: ${targ}-${dir}
     52 .endif
     53 .endfor
     54 .if defined(__REALSUBDIR)
     55 ${targ}: subdir-${targ}
     56 .endif
     57 .endfor
     58 
     59 # Make sure all of the standard targets are defined, even if they do nothing.
     60 ${TARGETS}:
     61