aboutsummaryrefslogtreecommitdiff
path: root/Mk/bsd.port.subdir.mk
diff options
context:
space:
mode:
authorSatoshi Asami <asami@FreeBSD.org>1999-07-23 09:36:55 +0000
committerSatoshi Asami <asami@FreeBSD.org>1999-07-23 09:36:55 +0000
commita163079f0d26f857c023dc7f21ed9acaeeb8590c (patch)
tree76e97537a2030bd95501b69d988c7beee0db6f72 /Mk/bsd.port.subdir.mk
parentcd7e9ffb8c14a1b7981b7087c7317d6978df808a (diff)
downloadports-a163079f0d26f857c023dc7f21ed9acaeeb8590c.tar.gz
ports-a163079f0d26f857c023dc7f21ed9acaeeb8590c.zip
Makefile:
(1) Sort INDEX lines since with the new parallel patch, the lines can come in out of order. (see 2) Mk/bsd.port.subdir.mk: (2) Make the targets parallelizable. Submitted by: hoek Reviewed by: steve, among others Mk/bsd.port.mk: (3) Serious speedup of bsd.port.mk startup. In particular, this helps cut down "make index" time from an hour and a half to 8 minutes on our system with a parallel make describe (see 2). Try to pass unchanged variables down from parent makes instead of rerunning commands to define them, etc. Submitted by: hoek Reviewed by: steve, among others (4) Change a bunch of "FreeBSD.ORG"s and "freebsd.org"s to "FreeBSD.org". (5) XFree86 is now at version 3.3.4. (6) Update for gnome master sites. Submitted by: mharo (7) Remove old system tcl check, I don't think people with systems from way back are still submitting ports. (8) Fix comment on "make describe" line description (www site was missing).
Notes
Notes: svn path=/head/; revision=20327
Diffstat (limited to 'Mk/bsd.port.subdir.mk')
-rw-r--r--Mk/bsd.port.subdir.mk140
1 files changed, 91 insertions, 49 deletions
diff --git a/Mk/bsd.port.subdir.mk b/Mk/bsd.port.subdir.mk
index 88f3c56f01a3..b42277f68887 100644
--- a/Mk/bsd.port.subdir.mk
+++ b/Mk/bsd.port.subdir.mk
@@ -1,5 +1,5 @@
# from: @(#)bsd.subdir.mk 5.9 (Berkeley) 2/1/91
-# $Id: bsd.port.subdir.mk,v 1.29 1999/04/12 09:03:41 asami Exp $
+# $Id: bsd.port.subdir.mk,v 1.30 1999/04/28 06:20:15 asami Exp $
#
# The include file <bsd.port.subdir.mk> contains the default targets
# for building ports subdirectories.
@@ -42,55 +42,88 @@
STRIP?= -s
.endif
-.if !defined(OPSYS) # XXX !!
-OPSYS!= uname -s
+.if !defined(NOPRECIOUSMAKEVARS)
+.if !defined(ARCH)
+ARCH!= /usr/bin/uname -m
+.endif
+.if !defined(OSREL)
+OSREL!= /usr/bin/uname -r | sed -e 's/[-(].*//'
+.endif
+.if !defined(OSVERSION)
+.if exists(/sbin/sysctl)
+OSVERSION!= /sbin/sysctl -n kern.osreldate
+.else
+OSVERSION!= /usr/sbin/sysctl -n kern.osreldate
+.endif
+.endif
+.if !defined(PORTOBJFORMAT)
+PORTOBJFORMAT!= test -x /usr/bin/objformat && /usr/bin/objformat || echo aout
+.endif
+.endif
+
+.if !defined(OPSYS)
+OPSYS!= /usr/bin/uname -s
.endif
ECHO_MSG?= echo
+TARGETS+= all
+TARGETS+= build
+TARGETS+= checksum
+TARGETS+= clean
+TARGETS+= clean-for-cdrom
+TARGETS+= clean-for-cdrom-list
+TARGETS+= clean-restricted
+TARGETS+= clean-restricted-list
+TARGETS+= configure
+TARGETS+= deinstall
+TARGETS+= depend
+TARGETS+= depends
+TARGETS+= describe
+TARGETS+= distclean
+TARGETS+= extract
+TARGETS+= fetch
+TARGETS+= fetch-list
+TARGETS+= ignorelist
+TARGETS+= package
+TARGETS+= package-loop
+TARGETS+= reinstall
+TARGETS+= tags
+
+.for __target in ${TARGETS}
+.if !target(${__target})
+${__target}: ${SUBDIR:S/$/.${__target}/}
+.endif
+.endfor
+
+.for __target in ${TARGETS} checksubdirs readmes
+${SUBDIR:S/$/.${__target}/}: _SUBDIRUSE
+.endfor
+
_SUBDIRUSE: .USE
- @for entry in ${SUBDIR}; do \
- OK=""; \
- for dud in $$DUDS; do \
- if [ $${dud} = $${entry} ]; then \
- OK="false"; \
- ${ECHO_MSG} "===> ${DIRPRFX}$${entry} skipped"; \
- fi; \
- done; \
- if test -d ${.CURDIR}/$${entry}.${MACHINE}; then \
- edir=$${entry}.${MACHINE}; \
- elif test -d ${.CURDIR}/$${entry}; then \
- edir=$${entry}; \
- else \
+ @OK=""; sub=${.TARGET:R}; \
+ for dud in $$DUDS; do \
+ if [ $${dud} = $$sub ]; then \
OK="false"; \
- ${ECHO_MSG} "===> ${DIRPRFX}$${entry} non-existent"; \
- fi; \
- if [ "$$OK" = "" ]; then \
- ${ECHO_MSG} "===> ${DIRPRFX}$${edir}"; \
- cd ${.CURDIR}/$${edir}; \
- ${MAKE} ${.TARGET:realinstall=install} \
- DIRPRFX=${DIRPRFX}$$edir/; \
+ ${ECHO_MSG} "===> ${DIRPRFX}$$sub skipped"; \
fi; \
- done
-
-${SUBDIR}::
- @if test -d ${.TARGET}.${MACHINE}; then \
- cd ${.CURDIR}/${.TARGET}.${MACHINE}; \
+ done; \
+ if test -d ${.CURDIR}/${.TARGET:R}.${MACHINE}; then \
+ edir=$${sub}.${MACHINE}; \
+ elif test -d ${.CURDIR}/$${sub}; then \
+ edir=$${sub}; \
else \
- cd ${.CURDIR}/${.TARGET}; \
+ OK="false"; \
+ ${ECHO_MSG} "===> ${DIRPRFX}$${sub} non-existent"; \
fi; \
- ${MAKE} all
-
-.for __target in all fetch fetch-list package package-loop extract configure \
- build clean clean-for-cdrom clean-restricted \
- clean-for-cdrom-list clean-restricted-list \
- deinstall depend depends describe distclean \
- reinstall tags checksum \
- ignorelist
-.if !target(${__target})
-${__target}: _SUBDIRUSE
-.endif
-.endfor
+ if [ "$$OK" = "" ]; then \
+ ${ECHO_MSG} "===> ${DIRPRFX}$${edir}"; \
+ cd ${.CURDIR}/$${edir}; \
+ ${MAKE} -B ${.TARGET:E:realinstall=install} \
+ DIRPRFX=${DIRPRFX}$$edir/; \
+ fi
+
+${SUBDIR}:: ${SUBDIR:S/$/.all/}
.if !target(install)
.if !target(beforeinstall)
@@ -101,14 +134,14 @@ afterinstall:
.endif
install: afterinstall
afterinstall: realinstall
-realinstall: beforeinstall _SUBDIRUSE
+realinstall: beforeinstall ${SUBDIR:S/$/.realinstall/}
.endif
IGNOREDIR= CVS Mk Templates Tools distfiles packages pkg
.if !target(checksubdirs)
.if defined(PORTSTOP)
-checksubdirs: checksubdir _SUBDIRUSE
+checksubdirs: checksubdir ${SUBDIR:S/$/.checksubdirs/}
.else
checksubdirs: checksubdir
.endif
@@ -130,15 +163,15 @@ checksubdir:
fi; \
fi; \
done
-.for s in ${SUBDIR}
-.if !exists(${.CURDIR}/$s/)
- @${ECHO} "Warning: directory $s in SUBDIR does not exist"
-.endif
-.endfor
+ @for s in ${SUBDIR}; do \
+ if ! [ -d ${.CURDIR}/$$s ]; then \
+ ${ECHO} "Warning: directory $s in SUBDIR does not exist"; \
+ fi \
+ done
.endif
.if !target(readmes)
-readmes: readme _SUBDIRUSE
+readmes: readme ${SUBDIR:S/$/.readmes/}
.endif
.if !target(readme)
@@ -190,3 +223,12 @@ README.html:
-e '/%%SUBDIR%%/d' \
> $@
@rm -f $@.tmp $@.tmp2 $@.tmp3
+
+.if !defined(NOPRECIOUSMAKEVARS)
+.MAKEFLAGS: \
+ ARCH="${ARCH:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
+ OPSYS="${OPSYS:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
+ OSREL="${OSREL:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
+ OSVERSION="${OSVERSION:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \
+ PORTOBJFORMAT="${PORTOBJFORMAT:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}"
+.endif