include/prereq-build.mk: macOS cross build improvements
authorMark Mentovai <mark@moxienet.com>
Thu, 9 Jun 2022 15:00:58 +0000 (11:00 -0400)
committerChristian Lamparter <chunkeey@gmail.com>
Fri, 24 Jun 2022 15:07:56 +0000 (17:07 +0200)
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
commit bb95be9265a9 ("scripts,ipkg-build: use realpath for pkg_dir")
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
commit cc16f5d73e77 ("build: try to find getopt in macOS homebrew's standard location")'
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@moxienet.com>
include/prereq-build.mk

index 4a8c2b063a8a4c64df52a642ae689afbcc668f2d..80d549af39ba8002a7a2be25e03fcca39fdaa1a8 100644 (file)
@@ -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, \