svn commit: r272282 - head/share/mk
Will Andrews
will at FreeBSD.org
Mon Sep 29 15:05:24 UTC 2014
Author: will
Date: Mon Sep 29 15:05:23 2014
New Revision: 272282
URL: http://svnweb.freebsd.org/changeset/base/272282
Log:
Search for the nearest PORTSDIR where Mk/bsd.ports.mk exists, from .CURDIR.
This will only take effect if PORTSDIR is not set, as previously supported.
Use .if exists(), for four specific possibilities relative to .CURDIR:
., .., ../.., and ../../.. The fourth possibility is primarily in case
ports ever grows a third level. If none of these paths exist, fall back to
the old default of /usr/ports.
This removes the need to set PORTSDIR explicitly (or via wrapper script) if
one is running out of a ports tree that is not in /usr/ports, but in a
home directory.
Reviewed by: bapt, bdrewery (older version)
CR: D799
MFC after: 1 week
Sponsored by: Spectra Logic
Modified:
head/share/mk/bsd.port.mk
head/share/mk/bsd.port.subdir.mk
Modified: head/share/mk/bsd.port.mk
==============================================================================
--- head/share/mk/bsd.port.mk Mon Sep 29 10:36:14 2014 (r272281)
+++ head/share/mk/bsd.port.mk Mon Sep 29 15:05:23 2014 (r272282)
@@ -1,6 +1,22 @@
# $FreeBSD$
-PORTSDIR?= /usr/ports
+.if !defined(PORTSDIR)
+# Autodetect if the command is being run in a ports tree that's not rooted
+# in the default /usr/ports. The ../../.. case is in case ports ever grows
+# a third level.
+.if exists(${.CURDIR}/Mk/bsd.port.mk)
+PORTSDIR= ${.CURDIR}
+.elif exists(${.CURDIR}/../Mk/bsd.port.mk)
+PORTSDIR= ${.CURDIR}/..
+.elif exists(${.CURDIR}/../../Mk/bsd.port.mk)
+PORTSDIR= ${.CURDIR}/../..
+.elif exists(${.CURDIR}/../../../Mk/bsd.port.mk)
+PORTSDIR= ${.CURDIR}/../../..
+.else
+PORTSDIR= /usr/ports
+.endif
+.endif
+
BSDPORTMK?= ${PORTSDIR}/Mk/bsd.port.mk
# Needed to keep bsd.own.mk from reading in /etc/src.conf
Modified: head/share/mk/bsd.port.subdir.mk
==============================================================================
--- head/share/mk/bsd.port.subdir.mk Mon Sep 29 10:36:14 2014 (r272281)
+++ head/share/mk/bsd.port.subdir.mk Mon Sep 29 15:05:23 2014 (r272282)
@@ -1,6 +1,22 @@
# $FreeBSD$
-PORTSDIR?= /usr/ports
+.if !defined(PORTSDIR)
+# Autodetect if the command is being run in a ports tree that's not rooted
+# in the default /usr/ports. The ../../.. case is in case ports ever grows
+# a third level.
+.if exists(${.CURDIR}/Mk/bsd.port.mk)
+PORTSDIR= ${.CURDIR}
+.elif exists(${.CURDIR}/../Mk/bsd.port.mk)
+PORTSDIR= ${.CURDIR}/..
+.elif exists(${.CURDIR}/../../Mk/bsd.port.mk)
+PORTSDIR= ${.CURDIR}/../..
+.elif exists(${.CURDIR}/../../../Mk/bsd.port.mk)
+PORTSDIR= ${.CURDIR}/../../..
+.else
+PORTSDIR= /usr/ports
+.endif
+.endif
+
BSDPORTSUBDIRMK?= ${PORTSDIR}/Mk/bsd.port.subdir.mk
.include "${BSDPORTSUBDIRMK}"
More information about the svn-src-head
mailing list