From 44204c43cc064b3377b8429dc5abc40c8418f7a8 Mon Sep 17 00:00:00 2001 From: "Jordan K. Hubbard" Date: Mon, 22 Aug 1994 10:46:38 +0000 Subject: [PATCH] I had to bite the bullet: There's now a port.subdir.mk that does the right thing with recursive build, configure, bundle or extract targets. Reviewed by: Submitted by: --- share/mk/bsd.port.mk | 10 +++-- share/mk/bsd.port.subdir.mk | 84 +++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+), 3 deletions(-) create mode 100644 share/mk/bsd.port.subdir.mk diff --git a/share/mk/bsd.port.mk b/share/mk/bsd.port.mk index 5933bc1cec1d..336a818869d1 100644 --- a/share/mk/bsd.port.mk +++ b/share/mk/bsd.port.mk @@ -1,7 +1,7 @@ # bsd.port.mk - 940820 Jordan K. Hubbard. # This file is in the public domain. # -# $Id: bsd.port.mk,v 1.7 1994/08/21 17:42:24 jkh Exp $ +# $Id: bsd.port.mk,v 1.8 1994/08/21 18:26:10 jkh Exp $ # # Supported Variables and their behaviors: @@ -171,6 +171,10 @@ clean: @rm -rf ${WRKDIR} .endif -.if !target(cleandir) -cleandir: clean +# Depend is generally meaningless for arbitrary ports, but if someone wants +# one they can override this. This is just to catch people who've gotten into +# the habit of typing `make depend all install' as a matter of course. +# +.if !target(depend) +depend: .endif diff --git a/share/mk/bsd.port.subdir.mk b/share/mk/bsd.port.subdir.mk new file mode 100644 index 000000000000..16bba7c802b8 --- /dev/null +++ b/share/mk/bsd.port.subdir.mk @@ -0,0 +1,84 @@ +# from: @(#)bsd.subdir.mk 5.9 (Berkeley) 2/1/91 +# $Id$ + +.MAIN: all + +STRIP?= -s + +BINGRP?= bin +BINOWN?= bin +BINMODE?= 555 + +_SUBDIRUSE: .USE + @for entry in ${SUBDIR}; do \ + (if test -d ${.CURDIR}/$${entry}.${MACHINE}; then \ + echo "===> ${DIRPRFX}$${entry}.${MACHINE}"; \ + edir=$${entry}.${MACHINE}; \ + cd ${.CURDIR}/$${edir}; \ + else \ + echo "===> ${DIRPRFX}$$entry"; \ + edir=$${entry}; \ + cd ${.CURDIR}/$${edir}; \ + fi; \ + ${MAKE} ${.TARGET:realinstall=install} DIRPRFX=${DIRPRFX}$$edir/); \ + done + +${SUBDIR}:: + @if test -d ${.TARGET}.${MACHINE}; then \ + cd ${.CURDIR}/${.TARGET}.${MACHINE}; \ + else \ + cd ${.CURDIR}/${.TARGET}; \ + fi; \ + ${MAKE} all + +.if !target(all) +all: _SUBDIRUSE +.endif + +.if !target(extract) +extract: _SUBDIRUSE +.endif + +.if !target(configure) +configure: _SUBDIRUSE +.endif + +.if !target(build) +build: _SUBDIRUSE +.endif + +.if !target(clean) +clean: _SUBDIRUSE +.endif + +.if !target(depend) +depend: _SUBDIRUSE +.endif + +.if !target (maninstall) +maninstall: _SUBDIRUSE +.endif + +.if !target(install) +.if !target(beforeinstall) +beforeinstall: +.endif +.if !target(afterinstall) +afterinstall: +.endif +install: afterinstall +afterinstall: realinstall +realinstall: beforeinstall _SUBDIRUSE +.endif + +.if !target(lint) +lint: _SUBDIRUSE +.endif + +.if !target(obj) +obj: _SUBDIRUSE +.endif + +.if !target(tags) +tags: _SUBDIRUSE +.endif