Document usage of COPT environment variable for adjusting configure flags.

Also add to the existing rather half-baked description of PROFILE,
which does exactly the same thing, but I think people use it differently.

Discussion: https://postgr.es/m/16461.1487361849@sss.pgh.pa.us
This commit is contained in:
Tom Lane 2017-02-17 16:11:02 -05:00
parent 39370e6a0a
commit a029d2cf42
2 changed files with 33 additions and 0 deletions

View File

@ -1494,6 +1494,26 @@ su - postgres
</variablelist>
</para>
<para>
Sometimes it is useful to add compiler flags after-the-fact to the set
that were chosen by <filename>configure</>. An important example is
that <application>gcc</>'s <option>-Werror</> option cannot be included
in the <envar>CFLAGS</envar> passed to <filename>configure</>, because
it will break many of <filename>configure</>'s built-in tests. To add
such flags, include them in the <envar>COPT</envar> environment variable
while running <filename>make</>. The contents of <envar>COPT</envar>
are added to both the <envar>CFLAGS</envar> and <envar>LDFLAGS</envar>
options set up by <filename>configure</>. For example, you could do
<screen>
<userinput>make COPT='-Werror'</>
</screen>
or
<screen>
<userinput>export COPT='-Werror'</>
<userinput>make</>
</screen>
</para>
<note>
<para>
When developing code inside the server, it is recommended to
@ -1514,6 +1534,14 @@ su - postgres
<option>-O0</>. An easy way to do this is by passing an option
to <application>make</>: <command>make PROFILE=-O0 file.o</>.
</para>
<para>
The <envar>COPT</> and <envar>PROFILE</> environment variables are
actually handled identically by the <productname>PostgreSQL</>
makefiles. Which to use is a matter of preference, but a common habit
among developers is to use <envar>PROFILE</> for one-time flag
adjustments, while <envar>COPT</> might be kept set all the time.
</para>
</note>
</step>

View File

@ -582,6 +582,11 @@ ifneq ($(CUSTOM_COPT),)
COPT= $(CUSTOM_COPT)
endif
#
# These variables are meant to be set in the environment of "make"
# to add flags to whatever configure picked. Unlike the ones above,
# they are documented.
#
ifdef COPT
CFLAGS += $(COPT)
LDFLAGS += $(COPT)