From b4b5c4503ace33a9ae972ac6fef3dbec7130b489 Mon Sep 17 00:00:00 2001 From: "Tobias S. Josefowitz" <tobij@tobij.de> Date: Tue, 12 Jan 2021 23:45:27 +0100 Subject: [PATCH] [build] Use pattern rules for rules with additional deps Suffix rules (according to GNU make at least) cannot have dependencies of their own, old versions of GNU make ignored such dependencies, current versions of GNU make warn about them (and ignore them), and future versions of GNU make are announced to treat them as non-suffix rules, i.e. .c.o: foo.h would describe a rule to build .c.o from foo.h. GNU make claims that pattern rules are what needs to be used in case such rules have dependencies, so we shall give that a try. --- src/Makefile.in | 6 +++--- src/modules/common_module_makefile.in | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Makefile.in b/src/Makefile.in index 73a9dfd85c..8517f6bed7 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -468,13 +468,13 @@ undump_modules: delete_dumped_modules -rm dumpversion 2>/dev/null .SUFFIXES: -.SUFFIXES: .c .h .o .m .mmod .cmod .symlist .pp .pph .protos .h_src .wxs .wixobj .msi .msm +.SUFFIXES: .c .h .o .m .mmod .cmod .pp .pph .h_src .wxs .wixobj .msi .msm .c.pp: $(CPP) $(PREFLAGS) -DPMOD_EXPORT=PMOD_EXPORT \ -DPMOD_PROTO=PMOD_PROTO "$<" >"$@" -.c.protos: precompile.sh-stamp +%.protos: %.c precompile.sh-stamp ./precompile.sh --cache fake_dynamic_load.pike >"$@" --cpp --protos \ $(CPP) $(PREFLAGS) -DPMOD_EXPORT=PMOD_EXPORT \ -DPMOD_PROTO=PMOD_PROTO -DPIKE_PRECOMPILER=1 "$<" || \ @@ -520,7 +520,7 @@ $(PMOD_TARGETS): precompile.sh-stamp $(TMP_BINDIR)/precompile.pike $(PIKE_SRC_DI ./precompile.sh --cache precompile.pike $(PRECOMPILER_ARGS) >"$@" "$<" || { rm "$@"; exit 1; } # The same applies to this. -.symlist.c: precompile.sh-stamp $(SRCDIR)/mklibpike.pike +%.c: %.symlist precompile.sh-stamp $(SRCDIR)/mklibpike.pike ./precompile.sh --cache $(SRCDIR)/mklibpike.pike -I. -I "$(SRCDIR)" -S "$<" -o "$@" || { rm "$@"; exit 1; } # This rule is used for some header files that are generated from the diff --git a/src/modules/common_module_makefile.in b/src/modules/common_module_makefile.in index e6a5cff162..d3d805ff8a 100644 --- a/src/modules/common_module_makefile.in +++ b/src/modules/common_module_makefile.in @@ -39,7 +39,7 @@ $(MODULE_ARCHIVES) ThisIsAPhonyTargetBlaBlaBla: force ) || exit $$? .SUFFIXES: -.SUFFIXES: .c .o .cmod .protos .m .mmod .cc .ccmod +.SUFFIXES: .c .o .cmod .m .mmod .cc .ccmod $(PMOD_TARGETS): $(wildcard $(BUILD_BASE)/precompile.sh-stamp) $(TMP_BINDIR)/precompile.pike $(wildcard $(PIKE_SRC_DIR)/../lib/modules/Tools.pmod/Standalone.pmod/precompile.pike) Makefile.in @@ -65,7 +65,7 @@ $(PMOD_TARGETS): $(wildcard $(BUILD_BASE)/precompile.sh-stamp) $(TMP_BINDIR)/pre exit $$status; \ fi -.c.protos: $(BUILD_BASE)/precompile.sh-stamp +%.protos: %.c $(BUILD_BASE)/precompile.sh-stamp ./precompile.sh --cache fake_dynamic_load.pike >"$@" --cpp --protos \ $(CPP) $(PREFLAGS) -DPMOD_EXPORT=PMOD_EXPORT \ -DPMOD_PROTO=PMOD_PROTO -DPIKE_PRECOMPILER=1 "$<" || \ @@ -96,7 +96,7 @@ $(PMOD_TARGETS): $(wildcard $(BUILD_BASE)/precompile.sh-stamp) $(TMP_BINDIR)/pre exit $$status; \ fi -.cc.protos: $(BUILD_BASE)/precompile.sh-stamp +%.protos: %.cc $(BUILD_BASE)/precompile.sh-stamp ./precompile.sh --cache fake_dynamic_load.pike >"$@" --cpp --protos \ $(CXXCPP) $(PREFLAGS) -DPMOD_EXPORT=PMOD_EXPORT \ -DPMOD_PROTO=PMOD_PROTO -DPIKE_PRECOMPILER=1 "$<" || \ -- GitLab