--- make-doc-non-dfsg-3.81.orig/doc/make/make_7.html
+++ make-doc-non-dfsg-3.81/doc/make/make_7.html
@@ -0,0 +1,454 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This file documents the GNU make utility, which determines
+automatically which pieces of a large program need to be recompiled,
+and issues the commands to recompile them.
+
+This is Edition 0.70, last updated 1 April 2006,
+of The GNU Make Manual, for GNU make version 3.81.
+
+Copyright C 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
+1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006
+Free Software Foundation, Inc.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have freedom to copy and modify
+this GNU Manual, like GNU software.  Copies published by the Free
+Software Foundation raise funds for GNU development."
+
+ -->
+<!-- Created on August, 17 2009 by texi2html 1.78 -->
+<!--
+Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
+            Karl Berry  <karl@freefriends.org>
+            Olaf Bachmann <obachman@mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug@nongnu.org>
+
+-->
+<head>
+<title>GNU make: 7. Conditional Parts of Makefiles</title>
+
+<meta name="description" content="GNU make: 7. Conditional Parts of Makefiles">
+<meta name="keywords" content="GNU make: 7. Conditional Parts of Makefiles">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.78">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Conditionals"></a>
+<a name="SEC88"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="make_6.html#SEC87" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SEC89" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="make_6.html#SEC74" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="make.html#SEC_Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="make_8.html#SEC92" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="make.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="make_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="make_19.html#SEC148" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="make_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="chapter"> 7. Conditional Parts of Makefiles </h1>
+
+<p>A <em>conditional</em> causes part of a makefile to be obeyed or ignored
+depending on the values of variables.  Conditionals can compare the
+value of one variable to another, or the value of a variable to
+a constant string.  Conditionals control what <code>make</code> actually
+&ldquo;sees&rdquo; in the makefile, so they <em>cannot</em> be used to control shell
+commands at the time of execution.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SEC89">7.1 Example of a Conditional</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         Example of a conditional
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SEC90">7.2 Syntax of Conditionals</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          The syntax of conditionals.
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SEC91">7.3 Conditionals that Test Flags</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               Conditionals that test flags.
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Conditional-Example"></a>
+<a name="SEC89"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SEC88" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SEC90" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#SEC88" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SEC88" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="make_8.html#SEC92" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="make.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="make_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="make_19.html#SEC148" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="make_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h2 class="section"> 7.1 Example of a Conditional </h2>
+
+<p>The following example of a conditional tells <code>make</code> to use one set
+of libraries if the <code>CC</code> variable is &lsquo;<samp>gcc</samp>&rsquo;, and a different
+set of libraries otherwise.  It works by controlling which of two
+command lines will be used as the command for a rule.  The result is
+that &lsquo;<samp>CC=gcc</samp>&rsquo; as an argument to <code>make</code> changes not only which
+compiler is used but also which libraries are linked.
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example">libs_for_gcc = -lgnu
+normal_libs =
+
+foo: $(objects)
+ifeq ($(CC),gcc)
+        $(CC) -o foo $(objects) $(libs_for_gcc)
+else
+        $(CC) -o foo $(objects) $(normal_libs)
+endif
+</pre></td></tr></table>
+
+<p>This conditional uses three directives: one <code>ifeq</code>, one <code>else</code>
+and one <code>endif</code>.
+</p>
+<p>The <code>ifeq</code> directive begins the conditional, and specifies the
+condition.  It contains two arguments, separated by a comma and surrounded
+by parentheses.  Variable substitution is performed on both arguments and
+then they are compared.  The lines of the makefile following the
+<code>ifeq</code> are obeyed if the two arguments match; otherwise they are
+ignored.
+</p>
+<p>The <code>else</code> directive causes the following lines to be obeyed if the
+previous conditional failed.  In the example above, this means that the
+second alternative linking command is used whenever the first alternative
+is not used.  It is optional to have an <code>else</code> in a conditional.
+</p>
+<p>The <code>endif</code> directive ends the conditional.  Every conditional must
+end with an <code>endif</code>.  Unconditional makefile text follows.
+</p>
+<p>As this example illustrates, conditionals work at the textual level:
+the lines of the conditional are treated as part of the makefile, or
+ignored, according to the condition.  This is why the larger syntactic
+units of the makefile, such as rules, may cross the beginning or the
+end of the conditional.
+</p>
+<p>When the variable <code>CC</code> has the value &lsquo;<samp>gcc</samp>&rsquo;, the above example has
+this effect:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example">foo: $(objects)
+        $(CC) -o foo $(objects) $(libs_for_gcc)
+</pre></td></tr></table>
+
+<p>When the variable <code>CC</code> has any other value, the effect is this:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example">foo: $(objects)
+        $(CC) -o foo $(objects) $(normal_libs)
+</pre></td></tr></table>
+
+<p>Equivalent results can be obtained in another way by conditionalizing a
+variable assignment and then using the variable unconditionally:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example">libs_for_gcc = -lgnu
+normal_libs =
+
+ifeq ($(CC),gcc)
+  libs=$(libs_for_gcc)
+else
+  libs=$(normal_libs)
+endif
+
+foo: $(objects)
+        $(CC) -o foo $(objects) $(libs)
+</pre></td></tr></table>
+
+<hr size="6">
+<a name="Conditional-Syntax"></a>
+<a name="SEC90"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SEC89" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SEC91" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#SEC88" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SEC88" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="make_8.html#SEC92" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="make.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="make_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="make_19.html#SEC148" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="make_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h2 class="section"> 7.2 Syntax of Conditionals </h2>
+
+<p>The syntax of a simple conditional with no <code>else</code> is as follows:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example"><var>conditional-directive</var>
+<var>text-if-true</var>
+endif
+</pre></td></tr></table>
+
+<p>The <var>text-if-true</var> may be any lines of text, to be considered as part
+of the makefile if the condition is true.  If the condition is false, no
+text is used instead.
+</p>
+<p>The syntax of a complex conditional is as follows:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example"><var>conditional-directive</var>
+<var>text-if-true</var>
+else
+<var>text-if-false</var>
+endif
+</pre></td></tr></table>
+
+<p>or:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example"><var>conditional-directive</var>
+<var>text-if-one-is-true</var>
+else <var>conditional-directive</var>
+<var>text-if-true</var>
+else
+<var>text-if-false</var>
+endif
+</pre></td></tr></table>
+
+<p>There can be as many &ldquo;<code>else</code> <var>conditional-directive</var>&rdquo;
+clauses as necessary.  Once a given condition is true,
+<var>text-if-true</var> is used and no other clause is used; if no
+condition is true then <var>text-if-false</var> is used.  The
+<var>text-if-true</var> and <var>text-if-false</var> can be any number of lines
+of text.
+</p>
+<p>The syntax of the <var>conditional-directive</var> is the same whether the
+conditional is simple or complex; after an <code>else</code> or not.  There
+are four different directives that test different conditions.  Here is
+a table of them:
+</p>
+<dl compact="compact">
+<dt> <code>ifeq (<var>arg1</var>, <var>arg2</var>)</code></dt>
+<dt> <code>ifeq '<var>arg1</var>' '<var>arg2</var>'</code></dt>
+<dt> <code>ifeq &quot;<var>arg1</var>&quot; &quot;<var>arg2</var>&quot;</code></dt>
+<dt> <code>ifeq &quot;<var>arg1</var>&quot; '<var>arg2</var>'</code></dt>
+<dt> <code>ifeq '<var>arg1</var>' &quot;<var>arg2</var>&quot;</code></dt>
+<dd><p>Expand all variable references in <var>arg1</var> and <var>arg2</var> and
+compare them.  If they are identical, the <var>text-if-true</var> is
+effective; otherwise, the <var>text-if-false</var>, if any, is effective.
+</p>
+<p>Often you want to test if a variable has a non-empty value.  When the
+value results from complex expansions of variables and functions,
+expansions you would consider empty may actually contain whitespace
+characters and thus are not seen as empty.  However, you can use the
+<code>strip</code> function (see section <a href="make_8.html#SEC94">Functions for String Substitution and Analysis</a>) to avoid interpreting
+whitespace as a non-empty value.  For example:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example">ifeq ($(strip $(foo)),)
+<var>text-if-empty</var>
+endif
+</pre></td></tr></table>
+
+<p>will evaluate <var>text-if-empty</var> even if the expansion of
+<code>$(foo)</code> contains whitespace characters.
+</p>
+</dd>
+<dt> <code>ifneq (<var>arg1</var>, <var>arg2</var>)</code></dt>
+<dt> <code>ifneq '<var>arg1</var>' '<var>arg2</var>'</code></dt>
+<dt> <code>ifneq &quot;<var>arg1</var>&quot; &quot;<var>arg2</var>&quot;</code></dt>
+<dt> <code>ifneq &quot;<var>arg1</var>&quot; '<var>arg2</var>'</code></dt>
+<dt> <code>ifneq '<var>arg1</var>' &quot;<var>arg2</var>&quot;</code></dt>
+<dd><p>Expand all variable references in <var>arg1</var> and <var>arg2</var> and
+compare them.  If they are different, the <var>text-if-true</var> is
+effective; otherwise, the <var>text-if-false</var>, if any, is effective.
+</p>
+</dd>
+<dt> <code>ifdef <var>variable-name</var></code></dt>
+<dd><p>The <code>ifdef</code> form takes the <em>name</em> of a variable as its
+argument, not a reference to a variable.  The value of that variable
+has a non-empty value, the <var>text-if-true</var> is effective; otherwise,
+the <var>text-if-false</var>, if any, is effective.  Variables that have
+never been defined have an empty value.  The text <var>variable-name</var>
+is expanded, so it could be a variable or function that expands
+to the name of a variable.  For example:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example">bar = true
+foo = bar
+ifdef $(foo)
+frobozz = yes
+endif
+</pre></td></tr></table>
+
+<p>The variable reference <code>$(foo)</code> is expanded, yielding <code>bar</code>,
+which is considered to be the name of a variable.  The variable
+<code>bar</code> is not expanded, but its value is examined to determine if
+it is non-empty.
+</p>
+<p>Note that <code>ifdef</code> only tests whether a variable has a value.  It
+does not expand the variable to see if that value is nonempty.
+Consequently, tests using <code>ifdef</code> return true for all definitions
+except those like <code>foo =</code>.  To test for an empty value, use
+<code>ifeq ($(foo),)</code>.  For example,
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example">bar =
+foo = $(bar)
+ifdef foo
+frobozz = yes
+else
+frobozz = no
+endif
+</pre></td></tr></table>
+
+<p>sets &lsquo;<samp>frobozz</samp>&rsquo; to &lsquo;<samp>yes</samp>&rsquo;, while:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example">foo =
+ifdef foo
+frobozz = yes
+else
+frobozz = no
+endif
+</pre></td></tr></table>
+
+<p>sets &lsquo;<samp>frobozz</samp>&rsquo; to &lsquo;<samp>no</samp>&rsquo;.
+</p>
+</dd>
+<dt> <code>ifndef <var>variable-name</var></code></dt>
+<dd><p>If the variable <var>variable-name</var> has an empty value, the
+<var>text-if-true</var> is effective; otherwise, the <var>text-if-false</var>,
+if any, is effective.  The rules for expansion and testing of
+<var>variable-name</var> are identical to the <code>ifdef</code> directive.
+</p></dd>
+</dl>
+
+<p>Extra spaces are allowed and ignored at the beginning of the conditional
+directive line, but a tab is not allowed.  (If the line begins with a tab,
+it will be considered a command for a rule.)  Aside from this, extra spaces
+or tabs may be inserted with no effect anywhere except within the directive
+name or within an argument.  A comment starting with &lsquo;<samp>#</samp>&rsquo; may appear at
+the end of the line.
+</p>
+<p>The other two directives that play a part in a conditional are <code>else</code>
+and <code>endif</code>.  Each of these directives is written as one word, with no
+arguments.  Extra spaces are allowed and ignored at the beginning of the
+line, and spaces or tabs at the end.  A comment starting with &lsquo;<samp>#</samp>&rsquo; may
+appear at the end of the line.
+</p>
+<p>Conditionals affect which lines of the makefile <code>make</code> uses.  If
+the condition is true, <code>make</code> reads the lines of the
+<var>text-if-true</var> as part of the makefile; if the condition is false,
+<code>make</code> ignores those lines completely.  It follows that syntactic
+units of the makefile, such as rules, may safely be split across the
+beginning or the end of the conditional.
+</p>
+<p><code>make</code> evaluates conditionals when it reads a makefile.
+Consequently, you cannot use automatic variables in the tests of
+conditionals because they are not defined until commands are run
+(see section <a href="make_10.html#SEC121">Automatic Variables</a>).
+</p>
+<p>To prevent intolerable confusion, it is not permitted to start a
+conditional in one makefile and end it in another.  However, you may
+write an <code>include</code> directive within a conditional, provided you do
+not attempt to terminate the conditional inside the included file.
+</p>
+<hr size="6">
+<a name="Testing-Flags"></a>
+<a name="SEC91"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SEC90" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="make_8.html#SEC92" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#SEC88" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SEC88" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="make_8.html#SEC92" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="make.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="make_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="make_19.html#SEC148" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="make_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h2 class="section"> 7.3 Conditionals that Test Flags </h2>
+
+<p>You can write a conditional that tests <code>make</code> command flags such as
+&lsquo;<samp>-t</samp>&rsquo; by using the variable <code>MAKEFLAGS</code> together with the
+<code>findstring</code> function
+(see section <a href="make_8.html#SEC94">Functions for String Substitution and Analysis</a>).
+This is useful when <code>touch</code> is not enough to make a file appear up
+to date.
+</p>
+<p>The <code>findstring</code> function determines whether one string appears as a
+substring of another.  If you want to test for the &lsquo;<samp>-t</samp>&rsquo; flag,
+use &lsquo;<samp>t</samp>&rsquo; as the first string and the value of <code>MAKEFLAGS</code> as
+the other.
+</p>
+<p>For example, here is how to arrange to use &lsquo;<samp>ranlib -t</samp>&rsquo; to finish
+marking an archive file up to date:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="example">archive.a: &hellip;
+ifneq (,$(findstring t,$(MAKEFLAGS)))
+        +touch archive.a
+        +ranlib -t archive.a
+else
+        ranlib archive.a
+endif
+</pre></td></tr></table>
+
+<p>The &lsquo;<samp>+</samp>&rsquo; prefix marks those command lines as &ldquo;recursive&rdquo; so
+that they will be executed despite use of the &lsquo;<samp>-t</samp>&rsquo; flag.
+See section <a href="make_5.html#SEC67">Recursive Use of <code>make</code></a>.
+</p>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SEC88" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="make_8.html#SEC92" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="make.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="make_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="make_19.html#SEC148" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="make_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Manoj Srivastava</em> on <em>August, 17 2009</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
