[PATCH] include/prereq-build.mk: macOS cross build improvements

Mark Mentovai mark at moxienet.com
Thu Jun 9 08:00:58 PDT 2022

This updates prereq-build.mk to find a suitable realpath utility, and
adds another place to look for a suitable getopt utility.

realpath has been used most notably by scripts/ipkg-build since
bb95be9265a9e (2021-02-04), and there are assorted other uses of it
during a build. It is ordinarily provided by GNU coreutils. This adds a
SetupHostCommand to locate it either under its own name or under
grealpath, the name that it will be available as under MacPorts or
Homebrew, which use --program-prefix=g.

Similarly, update the SetupHostCommand for getopt to be able to locate a
util-linux getopt at the default path used by MacPorts, in the same
fashion that cc16f5d73e770 (2020-11-14) did for Homebrew. As there is no
standard alternative --program-prefix for util-linux utilities in the
way that GNU packages often use a "g" prefix, this path-based approach
is required in case a non-util-linux getopt (such as one provided by an
OS) shadows the util-linux getopt in the PATH.

Signed-off-by: Mark Mentovai <mark at moxienet.com>
 include/prereq-build.mk | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/include/prereq-build.mk b/include/prereq-build.mk
index e1918f002787..1b7088456c27 100644
--- a/include/prereq-build.mk
+++ b/include/prereq-build.mk
@@ -130,7 +130,12 @@ $(eval $(call SetupHostCommand,getopt, \
 	Please install an extended getopt version that supports --long, \
 	gnugetopt -o t --long test -- --test | grep '^ *--test *--', \
 	getopt -o t --long test -- --test | grep '^ *--test *--', \
-	/usr/local/opt/gnu-getopt/bin/getopt -o t --long test -- --test | grep '^ *--test *--'))
+	/usr/local/opt/gnu-getopt/bin/getopt -o t --long test -- --test | grep '^ *--test *--', \
+	/opt/local/bin/getopt -o t --long test -- --test | grep '^ *--test *--'))
+$(eval $(call SetupHostCommand,realpath,Please install a 'realpath' utility, \
+	grealpath /, \
+	realpath /))
 $(eval $(call SetupHostCommand,stat,Cannot find a file stat utility, \
 	gnustat -c%s $(TOPDIR)/Makefile, \

More information about the openwrt-devel mailing list