Commit a3f44aadbc5797b3e7a5a9f38473985eaf23d4cb

Werner Lemberg 2023-08-22T12:20:56

builds/toplevel.mk: Don't use `\#` in functions. The behaviour changed in GNU make 4.3, where `#` (without the backslash) would be necessary. Using a variable instead the code works with both older and newer GNU make versions. Fixes #1252.

diff --git a/builds/toplevel.mk b/builds/toplevel.mk
index 5a3ff2a..7530be7 100644
--- a/builds/toplevel.mk
+++ b/builds/toplevel.mk
@@ -201,21 +201,23 @@ include $(TOP_DIR)/builds/modules.mk
 # get FreeType version string, using a
 # poor man's `sed' emulation with make's built-in string functions
 #
+hash := \#
+
 work := $(strip $(shell $(CAT) \
                   $(subst /,$(SEP),$(TOP_DIR)/include/freetype/freetype.h)))
 work := $(subst |,x,$(work))
 work := $(subst $(space),|,$(work))
-work := $(subst \#define|FREETYPE_MAJOR|,$(space),$(work))
+work := $(subst $(hash)define|FREETYPE_MAJOR|,$(space),$(work))
 work := $(word 2,$(work))
 major := $(subst |,$(space),$(work))
 major := $(firstword $(major))
 
-work := $(subst \#define|FREETYPE_MINOR|,$(space),$(work))
+work := $(subst $(hash)define|FREETYPE_MINOR|,$(space),$(work))
 work := $(word 2,$(work))
 minor := $(subst |,$(space),$(work))
 minor := $(firstword $(minor))
 
-work := $(subst \#define|FREETYPE_PATCH|,$(space),$(work))
+work := $(subst $(hash)define|FREETYPE_PATCH|,$(space),$(work))
 work := $(word 2,$(work))
 patch := $(subst |,$(space),$(work))
 patch := $(firstword $(patch))