From 8694a1ce406d58873e7332fa725baeeff18f57b2 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Thu, 9 Aug 2018 15:21:09 -0400
Subject: [PATCH] Document need to clear MAKELEVEL when invoking PG build from
 a makefile.

Since commit 3b8f6e75f, failure to do this would lead to
submake-generated-headers not doing anything, so that references to
generated or symlinked headers would fail.  Previous to that, the
omission only led to temp-install not doing anything, which apparently
affects many fewer people (doesn't anybody use "make check" in their
build rules??).  Hence, backpatch to v11 but not further.

Per complaints from Christoph Berg, Jakob Egger, and others.
---
 doc/src/sgml/installation.sgml | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index fa90e9104ae..a88cd21f453 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -1599,12 +1599,13 @@ su - postgres
    <title>Build</title>
 
    <para>
-    To start the build, type:
+    To start the build, type either of:
 <screen>
 <userinput>make</userinput>
+<userinput>make all</userinput>
 </screen>
-    (Remember to use <acronym>GNU</acronym> <application>make</application>.) The build
-    will take a few minutes depending on your
+    (Remember to use <acronym>GNU</acronym> <application>make</application>.)
+    The build will take a few minutes depending on your
     hardware. The last line displayed should be:
 <screen>
 All of PostgreSQL successfully made. Ready to install.
@@ -1623,6 +1624,18 @@ All of PostgreSQL successfully made. Ready to install.
 PostgreSQL, contrib, and documentation successfully made. Ready to install.
 </screen>
    </para>
+
+   <para>
+    If you want to invoke the build from another makefile rather than
+    manually, you must unset <varname>MAKELEVEL</varname> or set it to zero,
+    for instance like this:
+<programlisting>
+build-postgresql:
+        $(MAKE) -C postgresql MAKELEVEL=0 all
+</programlisting>
+    Failure to do that can lead to strange error messages, typically about
+    missing header files.
+   </para>
   </step>
 
   <step>