BUILD: makefile: work around an old bug in GNU make-3.80

GNU make-3.80 fails on the .build_opts target, expecting the closing
brace before the first semi-colon in the shell command, it probably
uses a more limited parser for dependencies. Actually it appears it's
enough to place this command in a variable and reference the variable
there. Since it doesn't affect later versions (and the resulting string
is always empty anyway), let's apply the minor change to continue to
comply with the announced dependencies.

This could be backported as far as 1.6.
This commit is contained in:
Willy Tarreau 2019-03-29 17:17:52 +01:00
parent 4bccea9891
commit 509a009c5d
1 changed files with 2 additions and 1 deletions

View File

@ -810,7 +810,8 @@ help:
$(Q)sed -ne "/^[^#]*$$/q;s/^#\(.*\)/\1/p" Makefile
# Used only to force a rebuild if some build options change
.build_opts: $(shell rm -f .build_opts.new; echo \'$(TARGET) $(BUILD_OPTIONS) $(VERBOSE_CFLAGS)\' > .build_opts.new; if cmp -s .build_opts .build_opts.new; then rm -f .build_opts.new; else mv -f .build_opts.new .build_opts; fi)
build_opts = $(shell rm -f .build_opts.new; echo \'$(TARGET) $(BUILD_OPTIONS) $(VERBOSE_CFLAGS)\' > .build_opts.new; if cmp -s .build_opts .build_opts.new; then rm -f .build_opts.new; else mv -f .build_opts.new .build_opts; fi)
.build_opts: $(build_opts)
haproxy: $(OPTIONS_OBJS) $(OBJS) $(EBTREE_OBJS)
$(cmd_LD) $(LDFLAGS) -o $@ $^ $(LDOPTS)