As explained in the comment in build-aux/Makefile.in, the
version of sed included in the FreeBSD base system is not GNU
sed, which our syntax-check rules expect; as a result, many
checks will fail with
gmake: gsed: No such file or directory
/bin/sh: gsed: not found
Similarly to what we're already doing with GNU make and GNU
grep, look for GNU sed during the configuration step and fail
early if it's not available.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
build-aux/Makefile.in | 1 +
build-aux/meson.build | 3 +++
build-aux/syntax-check.mk | 9 ---------
3 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/build-aux/Makefile.in b/build-aux/Makefile.in
index 415a8df305..9ccbec7b1b 100644
--- a/build-aux/Makefile.in
+++ b/build-aux/Makefile.in
@@ -6,6 +6,7 @@ FLAKE8 = @flake8_path@
RUNUTF8 = @runutf8@
PYTHON = @PYTHON3@
GREP = @GREP@
+SED = @SED@
# include syntax-check.mk file
include $(top_srcdir)/build-aux/syntax-check.mk
diff --git a/build-aux/meson.build b/build-aux/meson.build
index c56a348946..fe88d6b736 100644
--- a/build-aux/meson.build
+++ b/build-aux/meson.build
@@ -12,8 +12,10 @@ syntax_check_conf.set('PYTHON3', python3_prog.path())
if host_machine.system() == 'freebsd'
make_prog = find_program('gmake')
+ sed_prog = find_program('gsed')
else
make_prog = find_program('make')
+ sed_prog = find_program('sed')
endif
if host_machine.system() == 'freebsd'
@@ -34,6 +36,7 @@ else
endif
syntax_check_conf.set('GREP', grep_prog.path())
+syntax_check_conf.set('SED', sed_prog.path())
configure_file(
input: 'Makefile.in',
diff --git a/build-aux/syntax-check.mk b/build-aux/syntax-check.mk
index 51a498a897..7f4a23c048 100644
--- a/build-aux/syntax-check.mk
+++ b/build-aux/syntax-check.mk
@@ -27,15 +27,6 @@ ME := build-aux/syntax-check.mk
# of the module description. But some packages import this file directly,
# ignoring the module description.
AWK ?= awk
-# FreeBSD (and probably some other OSes too) ships own version of sed(1), not
-# compatible with the GNU sed. GNU sed is available as gsed(1), so use this
-# instead
-UNAME := $(shell uname)
-ifeq ($(UNAME),FreeBSD)
-SED ?= gsed
-else
-SED ?= sed
-endif
# Helper variables.
_empty =
--
2.26.3