ports/167850: [PATCH] Mk: Add a Makefile for quick 'make -V' lookups

Bryan Drewery bryan at shatow.net
Sun May 13 22:00:14 UTC 2012


>Number:         167850
>Category:       ports
>Synopsis:       [PATCH] Mk: Add a Makefile for quick 'make -V' lookups
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sun May 13 22:00:14 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Bryan Drewery
>Release:        FreeBSD 8.3-RELEASE i386
>Organization:
>Environment:

	
>Description:
	This patch simply adds a no-op Makefile to /usr/ports/Mk. It's intended to allow
	scripts to lookup global make.conf variables, including bsd.port.mk vars, in a quick
	way without depending on a port.

	For example, if a script wanted see if WITH_PKGNG was defined, it typically would do:
	WITH_PKGNG=`make -C /usr/ports -VWITH_PKGNG`

	This works, but is slow due to all of the subdir code, and takes 6 seconds on my machine.
	The patch makes this 0.19 seconds to process.

	Additionally, /usr/ports/Makefile doesn't pull in all of the bsd.port.mk variables, so
	it is more challenging to lookup variables such as MAKE_JOBS_NUMBER without using a port.
	`FORCE_MAKE_JOBS=yes make -C /usr/ports -VMAKE_JOBS_NUMBER` does not work
	`FORCE_MAKE_JOBS=yes make -C /usr/ports/$someport -VMAKE_JOBS_NUMBER` does work, but adds an
	unnecessary port dependency.

	The Makefile defines 1 target which tells the user there is nothing to do.

	The patch would benefit scripts such as ports-mgmt/portupgrade, ports-mgmt/portmaster
	ports-mgmt/poudriere as they check for various variables in /usr/ports using this method.

>How-To-Repeat:
	
>Fix:

	Patch is relative to Mk dir.

--- patch-Mk-Makefile.txt begins here ---
--- /dev/null	2012-05-13 16:23:20.000000000 -0500
+++ Makefile	2012-05-13 16:22:58.513083080 -0500
@@ -0,0 +1,8 @@
+# $FreeBSD$
+# This file is just meant to give a quick way to get
+# make variables for shell scripts.
+# CC=`make -C /usr/ports/Mk -VCC`
+all:
+	@echo "Nothing to build here."
+
+.include <bsd.port.mk>
--- patch-Mk-Makefile.txt ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list