On 12/30/2012 07:08 PM, Paolo Bonzini wrote: > Il 30/12/2012 11:23, Stefano Lattarini ha scritto: >> +AC_DEFUN([AM_CONFIG_HEADER], >> +[AC_FATAL(['$0': this macro is obsolete. >> + You should use the 'AC][_CONFIG_HEADERS' macro instead.])]) >> + > > What's the point in doing this instead of > > m4_defun([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS]) > > or something like that? > Issuing a fatal error will force users to upgrade to AC_CONFIG_HEADERS, thus allowing us to remove AM_CONFIG_HEADER altogether in future Automake versions (probably 1.15). 4, or maybe 1.15).
> Your patch is even longer than keeping backwards-compatibility... > While this is true, consider that my new code is only meant to be temporary, lasting few releases in order to smooth the transition to the "blessed" AC_CONFIG_HEADERS. It is probably worth to add comments explaining this to the definitions in 'm4/obsolete-err.m4' file. And do the same for other obsolete/obsolescent constructs. I intend to push the patch below for that purpose. ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- >From 3324c4a67dfc1643cfbb3c2262ffe75c7b04205d Mon Sep 17 00:00:00 2001 Message-Id: <3324c4a67dfc1643cfbb3c2262ffe75c7b04205d.1356944561.git.stefano.lattar...@gmail.com> From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Mon, 31 Dec 2012 09:53:43 +0100 Subject: [PATCH] maint: state when compatibility cruft should be removed or warned about * automake.in: Here. * lib/Automake/Options.pm: And here. * m4/obsolete-err.m4: And here. Signed-off-by: Stefano Lattarini <stefano.lattar...@gmail.com> --- automake.in | 6 ++++++ lib/Automake/Options.pm | 3 +++ m4/obsolete-err.m4 | 3 +++ 3 files changed, 12 insertions(+) diff --git a/automake.in b/automake.in index 3194c99..2c5e803 100644 --- a/automake.in +++ b/automake.in @@ -2131,6 +2131,7 @@ sub handle_source_transform ($$$$%) msg_var ('unsupported', $ext_var, $ext_var->name . " can assume at most one value") if $default_source_ext =~ /[\t ]/; (my $default_source = $unxformed) =~ s,(\.[^./\\]*)?$,$default_source_ext,; + # TODO: Remove this backward-compatibility hack in Automake 1.14. if ($old_default_source ne $default_source && !$ext_var && (rule $old_default_source @@ -3014,6 +3015,8 @@ sub scan_texinfo_file ($) } my $infobase = basename ($filename); + # TODO: In Automake 1.14 (or even 1.13.2), start warning against + # TODO: suffixes =! ".texi", to ease transition to Automake-NG. $infobase =~ s/\.te?xi(nfo)?$//; return ($outfile, $vfile); } @@ -4134,6 +4137,9 @@ sub handle_configure ($$$@) # Distribute and define mkinstalldirs only if it is already present # in the package, for backward compatibility (some people may still # use $(mkinstalldirs)). + # TODO: start warning abut this in Automake 1.13.2, and have + # TODO: Automake 1.14 or 1.15 drop it (and the mkinstalldirs script + # TODO: as well). my $mkidpath = "$config_aux_dir/mkinstalldirs"; if (-f $mkidpath) { diff --git a/lib/Automake/Options.pm b/lib/Automake/Options.pm index 186d4ca..9e06599 100644 --- a/lib/Automake/Options.pm +++ b/lib/Automake/Options.pm @@ -315,16 +315,19 @@ sub _process_option_list (\%@) { set_strictness ($_); } + # TODO: Remove this special check in Automake 1.14 or 1.15. elsif (/^(.*\/)?ansi2knr$/) { # Obsolete (and now removed) de-ANSI-fication support. error ($where, "automatic de-ANSI-fication support has been removed"); } + # TODO: Remove this special check in Automake 1.15. elsif ($_ eq 'cygnus') { error $where, "support for Cygnus-style trees has been removed"; } + # TODO: Remove this special check in Automake 1.14 or 1.15. elsif ($_ eq 'dist-lzma') { error ($where, "support for lzma-compressed distribution " . diff --git a/m4/obsolete-err.m4 b/m4/obsolete-err.m4 index eb23dc4..01c2d6e 100644 --- a/m4/obsolete-err.m4 +++ b/m4/obsolete-err.m4 @@ -8,16 +8,19 @@ # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +dnl TODO: Remove in Automake 1.15. AC_DEFUN([AM_CONFIG_HEADER], [AC_FATAL(['$0': this macro is obsolete. You should use the 'AC][_CONFIG_HEADERS' macro instead.])]) +dnl TODO: Remove in Automake 1.15. AC_DEFUN([AM_PROG_CC_STDC], [AC_FATAL(['$0': this macro is obsolete. You should simply use the 'AC][_PROG_CC' macro instead. Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', but upon 'ac_cv_prog_cc_stdc'.])]) +dnl TODO: Remove in Automake 1.14. AC_DEFUN([AM_C_PROTOTYPES], [AC_FATAL([automatic de-ANSI-fication support has been removed])]) AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) -- 1.8.1.rc3.27.g3b73c7d