Re: AC_CONFIG_HEADERS and autoheader

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

On Tue, Dec 05, 2006 at 10:17:57AM -0800, Paul Eggert wrote:
> Patrick Welche <prlw1@xxxxxxxxxxxxxx> writes:
> > Is that AC_CONFIG_HEADERS syntax simply not allowed? (missing file name)
> 
> The documentation doesn't seem to allow it.
>
> But also, the documentation seems to say that you can have as many files
> as you like, not just 3.  [...]

Indeed, you can have any number of input files for AC_CONFIG_HEADERS,
as for AC_CONFIG_FILES.
So you can have
	AC_CONFIG_HEADERS([defines.h:def1.h:def2.h:def3.h:def4.h])

And if this is the first config header in the configure.ac, which of
the input files should be picked by autoheader?
I do not see a better answer than what the current implementation
has: autoheader picks the first one.

Consequently, I think Patrick's patch should not be accepted.

But I think we should improve the documentation; most importantly, we
should point out that AH_BOTTOM is usually better that multiple input
files.

Attached please find a first approximation of the documentation
patch.  Wdyt?

Have a nice day,
	Stepan Kasal
2006-12-05  Stepan Kasal  <kasal@xxxxxx>

	* doc/autoconf.texi (Configuration Headers): Remove the
	example with multiple input files.
	(autoheader Invocation): Encourage `AH_BOTTOM', discouraging
	multiple input files.

Index: doc/autoconf.texi
===================================================================
RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v
retrieving revision 1.1112
diff -u -r1.1112 autoconf.texi
--- doc/autoconf.texi	28 Nov 2006 03:29:47 -0000	1.1112
+++ doc/autoconf.texi	5 Dec 2006 19:34:44 -0000
@@ -2934,17 +2934,13 @@
 
 Usually the input file is named @file{@var{header}.in}; however, you can
 override the input file name by appending to @var{header} a
-colon-separated list of input files.  Examples:
+colon-separated list of input files.  For example, you might need to make
+the input file name acceptable to @acronym{DOS} variants:
 
 @example
 AC_CONFIG_HEADERS([config.h:config.hin])
-AC_CONFIG_HEADERS([defines.h:defs.pre:defines.h.in:defs.post])
 @end example
 
-@noindent
-Doing this allows you to keep your file names acceptable to
-@acronym{DOS} variants, or
-to prepend and/or append boilerplate to the file.
 @end defmac
 
 @defmac AH_HEADER
@@ -3028,11 +3024,18 @@
 @cindex @command{autoheader}
 
 The @command{autoheader} program can create a template file of C
-@samp{#define} statements for @command{configure} to use.  If
-@file{configure.ac} invokes @code{AC_CONFIG_HEADERS(@var{file})},
-@command{autoheader} creates @file{@var{file}.in}; if multiple file
-arguments are given, the first one is used.  Otherwise,
-@command{autoheader} creates @file{config.h.in}.
+@samp{#define} statements for @command{configure} to use.
+It searches for the first invocation of @code{AC_CONFIG_HEADERS} in
+@file{configure} sources to determine the name of the template.
+(If the first call of @code{AC_CONFIG_HEADERS} specifies more than one
+input file name, @command{autoheader} uses the first one.)
+
+It is recommended that only one input file is used.  If you want to append
+a boilerplate code, it is preferable to use
+@samp{AH_BOTTOM([[#include <conf_post.h>]])}.
+File @file{conf_post.h} is not processed during the configuration then,
+which make things clearer.  Analogically, @code{AH_TOP} can be used to
+prepend a boilerplate code.
 
 In order to do its job, @command{autoheader} needs you to document all
 of the symbols that you might use.  Typically this is done via an
_______________________________________________
Autoconf mailing list
Autoconf@xxxxxxx
http://lists.gnu.org/mailman/listinfo/autoconf

[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux