automake-patches
[Top][All Lists]
Advanced

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

[FYI] {maint} tests: reimplement wrappers for automake and aclocal in pe


From: Stefano Lattarini
Subject: [FYI] {maint} tests: reimplement wrappers for automake and aclocal in perl
Date: Sat, 4 Aug 2012 18:40:32 +0200

This will allow us to avoid one extra shell invocation per automake
and aclocal invocation in our testsuite, and, more importantly, will
allow us not to worry about potential shell portability issues, at
least in those wrappers.  For an example of such a portability issue,
refer to the recent commit v1.12.2-80-g65dadf6 "tests: work around a
ksh bug w.r.t. ${1+"$@"}".

* t/wrap/automake.in, t/wrap/aclocal.in: Rewritten in perl.

Signed-off-by: Stefano Lattarini <address@hidden>
---
 t/wrap/aclocal.in  | 29 ++++++++++++++---------------
 t/wrap/automake.in | 31 ++++++++++++-------------------
 2 files changed, 26 insertions(+), 34 deletions(-)

diff --git a/t/wrap/aclocal.in b/t/wrap/aclocal.in
index 18ee13a..a3defa9 100644
--- a/t/wrap/aclocal.in
+++ b/t/wrap/aclocal.in
@@ -1,4 +1,4 @@
-#!/bin/sh
address@hidden@ -w
 # @configure_input@
 
 # Copyright (C) 2012 Free Software Foundation, Inc.
@@ -16,17 +16,16 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-fi
-
-perllibdir="@abs_top_builddir@/address@hidden@@abs_top_srcdir@/lib"
-export perllibdir
-
-exec "@abs_top_builddir@/aclocal" "address@hidden@/m4" \
-     "address@hidden@/m4/acdir" ${1+"$@"}
+BEGIN
+{
+  use strict;
+  my $libdir;
+  $libdir = '@abs_top_srcdir@/lib';
+  $libdir = '@abs_top_builddir@/lib' . '@PATH_SEPARATOR@' . $libdir
+    if '@srcdir@' ne '.';
+  $ENV{perllibdir} = $libdir;
+  unshift @ARGV,
+    'address@hidden@/m4',
+    'address@hidden@/m4/acdir';
+}
+require '@abs_top_builddir@/aclocal';
diff --git a/t/wrap/automake.in b/t/wrap/automake.in
index b77177c..8417360 100644
--- a/t/wrap/automake.in
+++ b/t/wrap/automake.in
@@ -1,4 +1,4 @@
-#!/bin/sh
address@hidden@ -w
 # @configure_input@
 
 # Copyright (C) 2012 Free Software Foundation, Inc.
@@ -16,21 +16,14 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-fi
-
-perllibdir="@abs_top_builddir@/address@hidden@@abs_top_srcdir@/lib"
-export perllibdir
-# Don't trust ${1+"$@"}: it has subtle bugs in some Korn shells (for very
-# corner case only admittedly, but those have already bitten us -- see
-# automake bug#10898).
-case $# in
-  0) exec "@abs_top_builddir@/automake" "address@hidden@/lib";;
-  *) exec "@abs_top_builddir@/automake" "address@hidden@/lib" "$@";;
-esac
+BEGIN
+{
+  use strict;
+  my $libdir;
+  $libdir = '@abs_top_srcdir@/lib';
+  $libdir = '@abs_top_builddir@/lib' . '@PATH_SEPARATOR@' . $libdir
+    if '@srcdir@' ne '.';
+  $ENV{perllibdir} = $libdir;
+  unshift @ARGV, 'address@hidden@/lib';
+}
+require '@abs_top_builddir@/automake';
-- 
1.7.12.rc0




reply via email to

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