[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] GNU Autoconf source repository branch, master, updated. v2.69-181-
From: |
Eric Blake |
Subject: |
[SCM] GNU Autoconf source repository branch, master, updated. v2.69-181-g78ad1b0 |
Date: |
Wed, 21 Dec 2016 16:47:21 +0000 (UTC) |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Autoconf source repository".
http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=78ad1b0b2cea606bf401ed0262540b503db73e1c
The branch, master has been updated
via 78ad1b0b2cea606bf401ed0262540b503db73e1c (commit)
from 0e2eecedb12dd472c9a008748be6edd6ea68fa0e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 78ad1b0b2cea606bf401ed0262540b503db73e1c
Author: Daniel Elstner <address@hidden>
Date: Wed Dec 21 17:15:46 2016 +0100
autoheader: check templates of all config headers
* bin/autoheader.in: When checking for missing templates, take
all config headers into account, not just the one generated by
autoheader. This makes it possible to use AC_DEFINE() for
secondary headers without duplicating the template into the
first header.
* tests/tools.at: Add a check for autoheader with multiple
config headers.
* NEWS: Document the new behavior.
Message-Id: <address@hidden>
Signed-off-by: Eric Blake <address@hidden>
-----------------------------------------------------------------------
Summary of changes:
NEWS | 5 +++++
bin/autoheader.in | 37 ++++++++++++++++++++++++++-----------
tests/tools.at | 25 +++++++++++++++++++++++++
3 files changed, 56 insertions(+), 11 deletions(-)
diff --git a/NEWS b/NEWS
index b82c1e3..a1f741f 100644
--- a/NEWS
+++ b/NEWS
@@ -27,6 +27,11 @@ GNU Autoconf NEWS - User visible changes.
is now deprecated. If you really need that behavior use
AC_PREPROC_IFELSE.
+** When checking for missing templates, autoheader now takes any
+ templates defined in the inputs of secondary config headers into
+ account. This makes it possible to use AC_DEFINE for secondary
+ headers without duplicating the template in the main config header.
+
** Macros
- New macro AC_C__GENERIC.
diff --git a/bin/autoheader.in b/bin/autoheader.in
index 528e22c..2d2f943 100644
--- a/bin/autoheader.in
+++ b/bin/autoheader.in
@@ -191,11 +191,21 @@ unless ($config_h)
exit 1;
}
-# We template only the first CONFIG_HEADER.
-$config_h =~ s/ .*//;
# Support "outfile[:infile]", defaulting infile="outfile.in".
-($config_h, $config_h_in) = split (':', $config_h, 2);
-$config_h_in ||= "$config_h.in";
+sub templates_for_header
+{
+ my ($spec) = @_;
+ my ($header, @templates) = split(':', $spec);
+
+ return @templates if @templates;
+ return $header . '.in';
+}
+
+my @config_templates = map(templates_for_header($_), split(' ', $config_h));
+
+# We template only the first CONFIG_HEADER.
+$config_h_in = shift(@config_templates);
+$config_h =~ s/[ :].*//;
# %SYMBOL might contain things like 'F77_FUNC(name,NAME)', but we keep
# only the name of the macro.
@@ -261,14 +271,20 @@ $out->close;
# Check that all the symbols have a template.
{
- my $in = new Autom4te::XFile ("$tmp/config.hin", "<");
- my $suggest_ac_define = 1;
- while ($_ = $in->getline)
+ foreach my $template ("$tmp/config.hin", @config_templates)
{
- my ($symbol) = /^\#\s*\w+\s+(\w+)/
- or next;
- delete $symbol{$symbol};
+ my $in = new Autom4te::XFile ($template, "<");
+
+ while ($_ = $in->getline)
+ {
+ my ($sym) = /^\#\s*\w+\s+(\w+)/
+ or next;
+ delete $symbol{$sym};
+ }
}
+
+ my $suggest_ac_define = 1;
+
foreach (sort keys %symbol)
{
msg 'syntax', "warning: missing template: $_";
@@ -277,7 +293,6 @@ $out->close;
msg 'syntax', "Use AC_DEFINE([$_], [], [Description])";
$suggest_ac_define = 0;
}
-
}
exit 1
if keys %symbol;
diff --git a/tests/tools.at b/tests/tools.at
index 4993b3f..2592a20 100644
--- a/tests/tools.at
+++ b/tests/tools.at
@@ -860,6 +860,31 @@ config.h.in:0
AT_CLEANUP
+# autoheader should take all config header inputs into account when
+# checking for missing templates.
+AT_SETUP([autoheader with multiple headers])
+
+AT_DATA([config-extra.h.in],
+[[/* Define this to whatever you want. */
+#undef HANNA
+]])
+AT_DATA([configure.ac],
+[[AC_INIT
+AC_CONFIG_HEADERS([config.h config-extra.h])
+AC_DEFINE([HANNA], ["Hanna"])
+AC_DEFINE([SEAN], ["Sean"], [Sean's name])
+AC_OUTPUT
+]])
+
+AT_CHECK_AUTOCONF
+AT_CHECK_AUTOHEADER
+AT_CHECK([grep HANNA configure], [0], [ignore], [ignore])
+AT_CHECK([grep HANNA config.h.in], [1], [ignore], [ignore])
+AT_CHECK([grep SEAN configure], [0], [ignore], [ignore])
+AT_CHECK([grep SEAN config.h.in], [0], [ignore], [ignore])
+
+AT_CLEANUP
+
## ------------ ##
hooks/post-receive
--
GNU Autoconf source repository
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] GNU Autoconf source repository branch, master, updated. v2.69-181-g78ad1b0,
Eric Blake <=