Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 8efefa7

Browse files
committed
Increase minimum supported GNU make version to 3.81.
We've long held the minimum at 3.80, but that's required more than one workaround. Commit 0f39b70 broke it again, because it turns out that exporting a target-specific variable didn't work in 3.80. Considering that 3.81 is now old enough to get a driver's license, and that the only remaining buildfarm member testing 3.80 (prairiedog) is likely to be retired soon, let's just stop supporting 3.80. Adjust docs and Makefile.global's minimum-version check to match. There are a couple of comments in the Makefiles suggesting that random things could be done differently after we desupport 3.80, but I couldn't get excited about changing any of them right now. Back-patch to v15, as 0f39b70 was. Discussion: https://postgr.es/m/20220720172321.GL12702@telsasoft.com
1 parent 634a89c commit 8efefa7

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

doc/src/sgml/installation.sgml

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ su - postgres
7777
<primary>make</primary>
7878
</indexterm>
7979

80-
<acronym>GNU</acronym> <application>make</application> version 3.80 or newer is required; other
80+
<acronym>GNU</acronym> <application>make</application> version 3.81 or newer is required; other
8181
<application>make</application> programs or older <acronym>GNU</acronym> <application>make</application> versions will <emphasis>not</emphasis> work.
8282
(<acronym>GNU</acronym> <application>make</application> is sometimes installed under
8383
the name <filename>gmake</filename>.) To test for <acronym>GNU</acronym>

src/Makefile.global.in

+6-7
Original file line numberDiff line numberDiff line change
@@ -635,7 +635,6 @@ submake-libpgfeutils: | submake-generated-headers
635635

636636
ifneq ($(USE_MODULE_DB),)
637637
PL_TESTDB = pl_regression_$(NAME)
638-
# Replace this with $(or ...) if we ever require GNU make 3.81.
639638
ifneq ($(MODULE_big),)
640639
CONTRIB_TESTDB=contrib_regression_$(MODULE_big)
641640
ISOLATION_TESTDB=isolation_regression_$(MODULE_big)
@@ -872,19 +871,19 @@ install-strip:
872871
# allows parallel make across directories and lets make -k and -q work
873872
# correctly.
874873

875-
# We need the $(eval) function and order-only prerequisites, which are
876-
# available in GNU make 3.80. That also happens to be the version
877-
# where the .VARIABLES variable was introduced, so this is a simple check.
878-
ifndef .VARIABLES
879-
$(error GNU make 3.80 or newer is required. You are using version $(MAKE_VERSION))
874+
# We need the ability to export target-specific variables, which was
875+
# added in GNU make 3.81. That also happens to be the version
876+
# where the .FEATURES variable was introduced, so this is a simple check.
877+
ifndef .FEATURES
878+
$(error GNU make 3.81 or newer is required. You are using version $(MAKE_VERSION))
880879
endif
881880

882881
# This function is only for internal use below. It should be called
883882
# using $(eval). It will set up a target so that it recurses into a
884883
# given subdirectory. For the tree-wide all/install/check/installcheck cases,
885884
# ensure we do our one-time tasks before recursing (see targets above).
886885
# Note that to avoid a nasty bug in make 3.80,
887-
# this function has to avoid using any complicated constructs (like
886+
# this function was written to not use any complicated constructs (like
888887
# multiple targets on a line) and also not contain any lines that expand
889888
# to more than about 200 bytes. This is why we make it apply to just one
890889
# subdirectory at a time, rather than to a list of subdirectories.

0 commit comments

Comments
 (0)