]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
DGJPP: re-introduce support, on Windows 2000 and later experimental/djgpp-for-WinNT
authorStefano Lattarini <stefano.lattarini@gmail.com>
Wed, 23 Jan 2013 11:52:52 +0000 (12:52 +0100)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Wed, 23 Jan 2013 11:54:54 +0000 (12:54 +0100)
See automake bug#13435.

The problematic DGJPP-related code should no longer be necessary today:

 * the code to support DJGPP-style split info files ('*.i[0-9][0-9]')
   is no longer needed, since we have dropped support for split info
   files anyway (see commit v1.13.1-60-gcdba479 and automake  bug#13351);

 * on Windows 2000 and later, modern version of DJGPP support file names
   starting with dots.

With that, the remaining pieces of code required to support DJGPP on
non-ancient Windows are few and unobtrusive enough that we re-introduce
them, in order to keep DJGPP alive -- the cost/benefit ratio has become
definitely small enough for that.

Note that support for DJGPP on DOS and Windows 95/98/ME is *not*
reintroduced.  That is no longer worth worrying about.

For reference, here are the commits where we removed DJGPP support:
v1.13-6-gad08bbf, "Drop support for DJGPP, MS-DOS, Windows 95/98/ME"
v1.13-7-gff0c7f8, "general: assume dot-starting file names are supported"

* NEWS: Make clear that DJGPP on Windows 2000 and later should still be
supported.
* automake.in (BEGIN): Override $ENV{SHELL} for DJGPP.
* maintainer/syntax-checks.mk (automake_diff_no): Adjust, as there are
now eight (not just seven) different lines between 'automake.in' and
'automake'.
* bootstrap.sh ($BOOTSTRAP_SHELL): Give a more proper default for DJGPP.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS
automake.in
bootstrap.sh
maintainer/syntax-checks.mk

diff --git a/NEWS b/NEWS
index 7a25b80b34b6088a79de740098941deb21ca2862..825d24b9fd5061d6bf52bf57daf21d22f0702260 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -42,7 +42,7 @@ New in 1.14:
     for more information.
 
   - 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
+    Note that Cygwin, MSYS/MinGW and DJGPP on modern Windows versions will
     continue to be fully supported.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
index 4776581c565548e3d7d7137c7a86af4332e28959..f77ab7c5c686bbdba33fd96fd5f57b7dded1214c 100644 (file)
@@ -32,6 +32,15 @@ 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 ();
index bb4221d01563dd23f4ee6056e24426f4de4aa03a..629194870a11b84b05ff2662da5fc6b256fb5392 100755 (executable)
@@ -31,7 +31,13 @@ export AUTOCONF  # might be used by aclocal and/or automake
 export AUTOM4TE  # ditto
 : ${PERL=perl}
 
-BOOTSTRAP_SHELL=${BOOTSTRAP_SHELL-/bin/sh}
+if test -n "$DJDIR"; then
+  # This is required on DJGPP so that Perl's system() uses bash,
+  # not COMMAND.COM which doesn't quote arguments properly.
+  BOOTSTRAP_SHELL=${BOOTSTRAP_SHELL-/dev/env/DJDIR/bin/bash.exe}
+else
+  BOOTSTRAP_SHELL=${BOOTSTRAP_SHELL-/bin/sh}
+fi
 
 # Variables to substitute.
 VERSION=`sed -ne '/AC_INIT/s/^[^[]*\[[^[]*\[\([^]]*\)\].*$/\1/p' configure.ac`
@@ -64,7 +70,7 @@ if test -d automake-$APIVERSION; then
 fi
 rm -rf automake-$APIVERSION
 # Can't use "ln -s lib automake-$APIVERSION", that might not work
-# properly on MinGW/MSYS.
+# properly on MinGW/MSYS or DJGPP.
 mkdir automake-$APIVERSION
 cp -rf lib/* automake-$APIVERSION
 
index e1d5e6b5dd4c04654e7eabc40ba7b0f2084f7d2c..6e50d6888b51fbed9e5da8c45d590e815340b933 100644 (file)
@@ -83,7 +83,7 @@ sc_at_in_texi
 ## 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 = 7
+automake_diff_no = 8
 aclocal_diff_no = 9
 sc_diff_automake sc_diff_aclocal: sc_diff_% :
        @set +e; tmp=$*-diffs.tmp; \