Basically a backport and squash-in of three Automake-NG commits: v1.12.1-447-g041fe15, v1.12-343-g4526363, v1.12-341-gc853c20, plus proper simplifications of the ylwrap script.
See also: <http://lists.gnu.org/archive/html/automake-ng/2012-05/msg00104.html> * automake.in (BEGIN): Don't override $ENV{SHELL} for DJGPP. (handle_libtool): Do not bother cleaning '_libs' directories, they are only used by Libtool on MS-DOS (and we no longer support that setup). * syntax-checks.mk (automake_diff_no): Adjust, as now there are only seven (not eight) different lines between 'automake.in' and 'automake'. * bootstrap.sh: Don't special case the default value for BOOTSTRAP_SHELL on DJGPP. While we are at, allow that variable to be overridden from the environment. Also, adjust comments: we don't use "ln -s" not because it's not properly supported by DJGPP, but because it might not be properly supported by MinGW/MSYS. * configure.ac (MODIFICATION_DELAY): Define to '2' unconditionally, as we no longer have to cater to quirks of Windows 95/98/ME. * lib/am/texibuild.am: Remove support for '*.iNN' files used on DJGPP. * lib/am/texinfos.am: Likewise. * lib/ylwrap: Remove support for DOS-specific filenames for bison output. * t/txinfo19.sh: Remove as obsolete. * t/list-of-tests.mk: Adjust. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattar...@gmail.com> --- NEWS | 10 ++++++++ automake.in | 11 +------- bootstrap.sh | 15 +++-------- configure.ac | 14 ++++------- lib/am/texibuild.am | 3 +-- lib/am/texinfos.am | 25 ++++--------------- lib/ylwrap | 17 +------------ syntax-checks.mk | 4 +-- t/list-of-tests.mk | 1 - t/txinfo19.sh | 72 ----------------------------------------------------- 10 files changed, 29 insertions(+), 143 deletions(-) delete mode 100755 t/txinfo19.sh diff --git a/NEWS b/NEWS index bdafaed..745ee7b 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,13 @@ +New in 1.14: + +* Removed support for obsolete systems: + + - Support for DJGPP on MS-DOS and/or Windows 95/98/ME has been removed. + Note that both Cygwin and MSYS/MinGW on modern Windows versions will + continue to be fully supported. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + New in 1.13: * WARNING: Future backward-incompatibilities! diff --git a/automake.in b/automake.in index 35aefd3..2ed64fb 100644 --- a/automake.in +++ b/automake.in @@ -32,15 +32,6 @@ BEGIN @Automake::perl_libdirs = ('@datadir@/@PACKAGE@-@APIVERSION@') unless @Automake::perl_libdirs; unshift @INC, @Automake::perl_libdirs; - - # Override SHELL. This is required on DJGPP so that system() uses - # bash, not COMMAND.COM which doesn't quote arguments properly. - # Other systems aren't expected to use $SHELL when Automake - # runs, but it should be safe to drop the "if DJGPP" guard if - # it turns up other systems need the same thing. After all, - # if SHELL is used, ./configure's SHELL is always better than - # the user's SHELL (which may be something like tcsh). - $ENV{'SHELL'} = '@SHELL@' if exists $ENV{'DJDIR'}; } use Class::Struct (); @@ -2463,7 +2454,7 @@ sub handle_libtool { my $dir = ($item eq '.') ? '' : "$item/"; # .libs is for Unix, _libs for DOS. - push (@libtool_rms, "\t-rm -rf ${dir}.libs ${dir}_libs"); + push (@libtool_rms, "\t-rm -rf ${dir}.libs"); } check_user_variables 'LIBTOOLFLAGS'; diff --git a/bootstrap.sh b/bootstrap.sh index 4b12d2d..b30d375 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -31,6 +31,8 @@ export AUTOCONF # might be used by aclocal and/or automake export AUTOM4TE # ditto : ${PERL=perl} +BOOTSTRAP_SHELL=${BOOTSTRAP_SHELL-/bin/sh} + # Variables to substitute. VERSION=`sed -ne '/AC_INIT/s/^[^[]*\[[^[]*\[\([^]]*\)\].*$/\1/p' configure.ac` PACKAGE=automake @@ -40,15 +42,6 @@ PERL_THREADS=0 # rule of our Makefile. RELEASE_YEAR=2012 -# Override SHELL. This is required on DJGPP so that Perl's system() -# uses bash, not COMMAND.COM which doesn't quote arguments properly. -# It's not used otherwise. -if test -n "$DJDIR"; then - BOOTSTRAP_SHELL=/dev/env/DJDIR/bin/bash.exe -else - BOOTSTRAP_SHELL=/bin/sh -fi - # Read the rule for calculating APIVERSION and execute it. apiver_cmd=`sed -ne 's/\[\[/[/g;s/\]\]/]/g;/^APIVERSION=/p' configure.ac` eval "$apiver_cmd" @@ -71,8 +64,8 @@ if test -d automake-$APIVERSION; then find automake-$APIVERSION -exec chmod u+wx '{}' ';' fi rm -rf automake-$APIVERSION -# Can't use "ln -s lib automake-$APIVERSION", that would create a -# lib.exe stub under DJGPP 2.03. +# Can't use "ln -s lib automake-$APIVERSION", that might not work +# properly on MinGW/MSYS. mkdir automake-$APIVERSION cp -rf lib/* automake-$APIVERSION diff --git a/configure.ac b/configure.ac index f97ec87..280727e 100644 --- a/configure.ac +++ b/configure.ac @@ -198,16 +198,12 @@ result=no test "x$am_cv_prog_ln" = xln && result=yes AC_MSG_RESULT([$result]) -# The amount we should wait after modifying files depends on the platform. -# On Windows '95, '98 and ME, files modifications have 2-seconds -# granularity and can be up to 3 seconds in the future w.r.t. the -# system clock. When it is important to ensure one file is older +# The amount we should wait after modifying files. +# FIXME: for file systems with sub-second timestamp resolutions, this +# FIXME: might be just one second (or even less if 'sleep' supports +# FIXME: non-integer arguments); is it worth pursuing that road? # than another we wait at least 5 seconds between creations. -case $build in - *-pc-msdosdjgpp) MODIFICATION_DELAY=5;; - *) MODIFICATION_DELAY=2;; -esac -AC_SUBST([MODIFICATION_DELAY]) +AC_SUBST([MODIFICATION_DELAY], [2]) ## ------------------------------------------- ## ## Test for things needed by the test suite. ## diff --git a/lib/am/texibuild.am b/lib/am/texibuild.am index 0fe09b1..b60a3c9 100644 --- a/lib/am/texibuild.am +++ b/lib/am/texibuild.am @@ -30,14 +30,13 @@ ## 2) If the texinfo file has some minor mistakes which cause makeinfo ## to fail, the info files are not removed. (They are needed by the ## developer while he writes documentation.) -## *.iNN files are used on DJGPP. See the comments in install-info-am %AM_V_MAKEINFO%restore=: && backupdir="$(am__leading_dot)am$$$$" && \ ?INSRC? am__cwd=`pwd` && $(am__cd) $(srcdir) && \ rm -rf $$backupdir && mkdir $$backupdir && \ ## If makeinfo is not installed we must not backup the files so ## 'missing' can do its job and touch $@ if it exists. if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ - for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ + for f in $@ $@-[0-9] $@-[0-9][0-9]; do \ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ done; \ else :; fi && \ diff --git a/lib/am/texinfos.am b/lib/am/texinfos.am index 6d45c95..c7b794f 100644 --- a/lib/am/texinfos.am +++ b/lib/am/texinfos.am @@ -194,18 +194,7 @@ install-info-am: $(INFO_DEPS) $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ -## 8+3 filesystems cannot deal with foo.info-N filenames: they all -## conflict. DJGPP comes with a tool, DJTAR, that will rename these -## files to foo.iNN while extracting the archive. DJGPP's makeinfo -## is patched to grok these filenames. However we have to account -## for the renaming when installing the info files. -## -## If $file == foo.info, then $file_i == foo.i. The reason we use two -## shell commands instead of one ('s|\.info$$|.i|') is so that a suffix-less -## 'foo' becomes 'foo.i' too. - file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ - for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ - $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ + for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9]; do \ if test -f $$ifile; then \ echo "$$ifile"; \ else : ; fi; \ @@ -323,11 +312,9 @@ uninstall-info-am: @list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ -## DJGPP-style info files. See comment in install-info-am. - relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ - echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ - rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ + echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9]"; \ + rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9]; \ else :; fi); \ done @@ -400,10 +387,8 @@ clean-aminfo: .PHONY maintainer-clean-am: maintainer-clean-aminfo maintainer-clean-aminfo: @list='$(INFO_DEPS)'; for i in $$list; do \ -## .iNN files are DJGPP-style info files. - i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ - echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ - rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ + echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9]"; \ + rm -f $$i $$i-[0-9] $$i-[0-9][0-9]; \ done ## Use '-rf', not just '-f'; see comments in 'mostlyclean-aminfo' ## above for details. diff --git a/lib/ylwrap b/lib/ylwrap index b5c673d..d59f6aa 100755 --- a/lib/ylwrap +++ b/lib/ylwrap @@ -1,7 +1,7 @@ #! /bin/sh # ylwrap - wrapper for lex/yacc invocations. -scriptversion=2012-12-21.17; # UTC +scriptversion=2012-12-28.20; # UTC # Copyright (C) 1996-2012 Free Software Foundation, Inc. # @@ -111,14 +111,6 @@ case "$input" in esac input_rx=`get_dirname "$input" | quote_for_sed` -# Since DOS filename conventions don't allow two dots, -# the DOS version of Bison writes out y_tab.c instead of y.tab.c -# and y_tab.h instead of y.tab.h. Test to see if this is the case. -y_tab_nodot=false -if test -f y_tab.c || test -f y_tab.h; then - y_tab_nodot=true -fi - # The parser itself, the first file, is the destination of the .y.c # rule in the Makefile. parser=$1 @@ -138,13 +130,6 @@ while test "$#" -ne 0; do break fi from=$1 - # Handle y_tab.c and y_tab.h output by DOS - if $y_tab_nodot; then - case $from in - "y.tab.c") from=y_tab.c;; - "y.tab.h") from=y_tab.h;; - esac - fi shift to=$1 shift diff --git a/syntax-checks.mk b/syntax-checks.mk index 042e092..1801767 100644 --- a/syntax-checks.mk +++ b/syntax-checks.mk @@ -80,10 +80,10 @@ sc_tabs_in_texi \ sc_at_in_texi ## These check avoids accidental configure substitutions in the source. -## There are exactly 8 lines that should be modified from automake.in to +## There are exactly 7 lines that should be modified from automake.in to ## automake, and 9 lines that should be modified from aclocal.in to ## aclocal. -automake_diff_no = 8 +automake_diff_no = 7 aclocal_diff_no = 9 sc_diff_automake sc_diff_aclocal: sc_diff_% : @set +e; tmp=$*-diffs.tmp; \ diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk index 4612d3d..28b520a 100644 --- a/t/list-of-tests.mk +++ b/t/list-of-tests.mk @@ -1167,7 +1167,6 @@ t/txinfo10.sh \ t/txinfo13.sh \ t/txinfo16.sh \ t/txinfo17.sh \ -t/txinfo19.sh \ t/txinfo20.sh \ t/txinfo21.sh \ t/txinfo22.sh \ diff --git a/t/txinfo19.sh b/t/txinfo19.sh deleted file mode 100755 index 1fbc79e..0000000 --- a/t/txinfo19.sh +++ /dev/null @@ -1,72 +0,0 @@ -#! /bin/sh -# Copyright (C) 2003-2012 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -# Test support for DJGPP's .iNN info files. - -required=makeinfo -. test-init.sh - -echo AC_OUTPUT >> configure.ac - -cat > Makefile.am << 'END' -info_TEXINFOS = main.texi -END - -cat > main.texi << 'END' -\input texinfo -@setfilename main.info -@settitle main -@node Top -Hello walls. -@bye -END - -$ACLOCAL -$AUTOMAKE --add-missing -$AUTOCONF - -./configure "--infodir=$(pwd)/_inst" -$MAKE - -# Make sure .iNN files are installed. -: > main.i1 -: > main.i21 -$MAKE install -test -f _inst/main.i1 -test -f _inst/main.i21 - -# They should be uninstalled too. -$MAKE uninstall -test ! -e _inst/main.i1 -test ! -e _inst/main.i21 - -# Make sure rebuild rules erase old .iNN files when they run makeinfo. -$sleep -touch main.texi -test -f main.i1 -test -f main.i21 -$MAKE -test ! -e main.i1 -test ! -e main.i21 - -# Finally, we also want them erased by maintainer-clean. -: > main.i7 -: > main.i39 -$MAKE maintainer-clean -test ! -e main.i7 -test ! -e main.i39 - -: -- 1.8.0.1.409.g252f922