aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1994-08-22 18:46:38 +0800
committerjkh <jkh@FreeBSD.org>1994-08-22 18:46:38 +0800
commitca7675fd0fdb4a1e2dd9f027bb8a83501eaa635c (patch)
treebc263ee4a4a0acca7b9e6f54c2757415bc0b74b9
parent41e936aaf77eee4ce4dfbb588437d00512e3d336 (diff)
downloadfreebsd-ports-gnome-ca7675fd0fdb4a1e2dd9f027bb8a83501eaa635c.tar.gz
freebsd-ports-gnome-ca7675fd0fdb4a1e2dd9f027bb8a83501eaa635c.tar.zst
freebsd-ports-gnome-ca7675fd0fdb4a1e2dd9f027bb8a83501eaa635c.zip
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:
-rw-r--r--Mk/bsd.port.mk10
-rw-r--r--Mk/bsd.port.subdir.mk84
2 files changed, 91 insertions, 3 deletions
diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index 5933bc1cec1d..336a818869d1 100644
--- a/Mk/bsd.port.mk
+++ b/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/Mk/bsd.port.subdir.mk b/Mk/bsd.port.subdir.mk
new file mode 100644
index 000000000000..16bba7c802b8
--- /dev/null
+++ b/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