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@xxxxxxxxxx> --- 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