]> granicus.if.org Git - postgresql/commitdiff
Document usage of COPT environment variable for adjusting configure flags.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 17 Feb 2017 21:11:02 +0000 (16:11 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 17 Feb 2017 21:11:02 +0000 (16:11 -0500)
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

doc/src/sgml/installation.sgml
src/Makefile.global.in

index 4431ed75a933c58e058ce65c2a6cf98824213991..182c801bd5271a3d41ad450a4ba73fc3847968a6 100644 (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>
 
index 59bd7996d182586a9da7b5f51cc6fd28e7894f70..44bfe28f5717db2465389c2a8800c12f3e2db1b8 100644 (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)