automake-patches
[Top][All Lists]
Advanced

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

[FYI 1/2] {master} Drop support for DJGPP, MS-DOS, Windows 95/98/ME


From: Stefano Lattarini
Subject: [FYI 1/2] {master} Drop support for DJGPP, MS-DOS, Windows 95/98/ME
Date: Fri, 28 Dec 2012 21:55:43 +0100

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 <address@hidden>
---
 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@/@address@hidden@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 $@ address@hidden address@hidden $(@:.info=).i[0-9] 
$(@:.info=).i[0-9][0-9]; do \
+         for f in $@ address@hidden address@hidden; 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
address@hidden main.info
address@hidden main
address@hidden Top
-Hello walls.
address@hidden
-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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]