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}" _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"