--- a/bin/autoheader.in
+++ b/bin/autoheader.in
@@ -30,9 +30,12 @@ use 5.006;
 use strict;
 use warnings FATAL => 'all';
 
+$^W = 1;
+
 BEGIN
 {
-  my $pkgdatadir = $ENV{'autom4te_perllibdir'} || '@pkgdatadir@';
+  my $pkgdatadir = $ENV{'autom4te_perllibdir'} ||
+	($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/autoconf' : '@pkgdatadir@');
   unshift @INC, "$pkgdatadir";
 
   # Override SHELL.  On DJGPP SHELL may not be set to a shell
@@ -54,7 +57,7 @@ use Autom4te::XFile;
 our ($config_h, %symbol, %verbatim);
 
 # Lib files.
-my $autom4te = $ENV{'AUTOM4TE'} || '@bindir@/@autom4te-name@';
+my $autom4te = $ENV{'AUTOM4TE'} || ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/bin/@autom4te-name@' : '@bindir@/@autom4te-name@');
 my $config_h_in;
 my @prepend_include;
 my @include;
--- a/bin/autom4te.in
+++ b/bin/autom4te.in
@@ -26,9 +26,12 @@ use 5.006;
 use strict;
 use warnings FATAL => 'all';
 
+$^W = 1;
+
 BEGIN
 {
-  my $pkgdatadir = $ENV{'autom4te_perllibdir'} || '@pkgdatadir@';
+  my $pkgdatadir = $ENV{'autom4te_perllibdir'} ||
+	($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/autoconf' : '@pkgdatadir@');
   unshift @INC, $pkgdatadir;
 
   # Override SHELL.  On DJGPP SHELL may not be set to a shell
@@ -48,7 +51,8 @@ use Autom4te::General;
 use Autom4te::XFile;
 
 # Data directory.
-my $pkgdatadir = $ENV{'AC_MACRODIR'} || '@pkgdatadir@';
+my $pkgdatadir = $ENV{'AC_MACRODIR'} ||
+	($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/autoconf' : '@pkgdatadir@');
 
 # $LANGUAGE{LANGUAGE} -- Automatic options for LANGUAGE.
 my %language;
@@ -91,7 +95,7 @@ my @include;
 my $freeze = 0;
 
 # $M4.
-my $m4 = $ENV{"M4"} || '@M4@';
+my $m4 = $ENV{"M4"} || ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/bin/m4' : '@M4@');
 # Some non-GNU m4's don't reject the --help option, so give them /dev/null.
 fatal "need GNU m4 1.4 or later: $m4"
   if system "$m4 --help </dev/null 2>&1 | grep reload-state >/dev/null";
@@ -272,6 +276,12 @@ sub load_configuration ($)
 
       my @words = shellwords ($_);
       my $type = shift @words;
+
+      if ($ENV{'STAGING_DIR_HOST'})
+      {
+        @words = map { s!^@pkgdatadir@!$ENV{'STAGING_DIR_HOST'}/share/autoconf!; $_ } @words;
+      }
+
       if ($type eq 'begin-language:')
 	{
 	  fatal "$file:$.: end-language missing for: $lang"
--- a/bin/autoreconf.in
+++ b/bin/autoreconf.in
@@ -29,10 +29,13 @@ use 5.006;
 use strict;
 use warnings FATAL => 'all';
 
+$^W = 1;
+
 my $buildauxdir;
 BEGIN
 {
-  my $pkgdatadir = $ENV{'autom4te_perllibdir'} || '@pkgdatadir@';
+  my $pkgdatadir = $ENV{'autom4te_perllibdir'} ||
+	($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/autoconf' : '@pkgdatadir@');
   unshift @INC, $pkgdatadir;
 
   $buildauxdir = $ENV{'autom4te_buildauxdir'} || $pkgdatadir . '/build-aux';
@@ -117,9 +120,9 @@ Written by David J. MacKenzie and Akim D
 ";
 
 # Lib files.
-my $autoconf    = $ENV{'AUTOCONF'}    || '@bindir@/@autoconf-name@';
-my $autoheader  = $ENV{'AUTOHEADER'}  || '@bindir@/@autoheader-name@';
-my $autom4te    = $ENV{'AUTOM4TE'}    || '@bindir@/@autom4te-name@';
+my $autoconf    = $ENV{'AUTOCONF'}    || ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/bin/@autoconf-name@' : '@bindir@/@autoconf-name@');
+my $autoheader  = $ENV{'AUTOHEADER'}  || ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/bin/@autoheader-name@' : '@bindir@/@autoheader-name@');
+my $autom4te    = $ENV{'AUTOM4TE'}    || ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/bin/@autom4te-name@' : '@bindir@/@autom4te-name@');
 my $automake    = $ENV{'AUTOMAKE'}    || 'automake';
 my $aclocal     = $ENV{'ACLOCAL'}     || 'aclocal';
 my $libtoolize  = $ENV{'LIBTOOLIZE'}  || 'libtoolize';
--- a/bin/autoscan.in
+++ b/bin/autoscan.in
@@ -28,9 +28,12 @@ use 5.006;
 use strict;
 use warnings FATAL => 'all';
 
+$^W = 1;
+
 BEGIN
 {
-  my $pkgdatadir = $ENV{'autom4te_perllibdir'} || '@pkgdatadir@';
+  my $pkgdatadir = $ENV{'autom4te_perllibdir'} ||
+	($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/autoconf' : '@pkgdatadir@');
   unshift @INC, $pkgdatadir;
 
   # Override SHELL.  On DJGPP SHELL may not be set to a shell
@@ -95,10 +98,10 @@ my %needed_macros =
 my $log;
 
 # Autoconf and lib files.
-my $autom4te = $ENV{'AUTOM4TE'} || '@bindir@/@autom4te-name@';
+my $autom4te = $ENV{'AUTOM4TE'} || ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/bin/@autom4te-name@' : '@bindir@/@autom4te-name@');
 my $autoconf = "$autom4te --language=autoconf";
 my @prepend_include;
-my @include = ('@pkgdatadir@');
+my @include = ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/autoconf' : '@pkgdatadir@');
 
 # $help
 # -----
--- a/bin/autoupdate.in
+++ b/bin/autoupdate.in
@@ -29,9 +29,12 @@ use 5.006;
 use strict;
 use warnings FATAL => 'all';
 
+$^W = 1;
+
 BEGIN
 {
-  my $pkgdatadir = $ENV{'autom4te_perllibdir'} || '@pkgdatadir@';
+  my $pkgdatadir = $ENV{'autom4te_perllibdir'} ||
+	($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/autoconf' : '@pkgdatadir@');
   unshift @INC, $pkgdatadir;
 
   # Override SHELL.  On DJGPP SHELL may not be set to a shell
@@ -55,10 +58,10 @@ my $autom4te = $ENV{'AUTOM4TE'} || '@bin
 my $autoconf = "$autom4te --language=autoconf";
 # We need to find m4sugar.
 my @prepend_include;
-my @include = ('@pkgdatadir@');
+my @include = ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/autoconf' : '@pkgdatadir@');
 my $force = 0;
 # m4.
-my $m4 = $ENV{"M4"} || '@M4@';
+my $m4 = $ENV{"M4"} || ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/bin/m4' : '@M4@');
 
 
 # $HELP
--- a/bin/ifnames.in
+++ b/bin/ifnames.in
@@ -33,9 +33,12 @@ use 5.006;
 use strict;
 use warnings FATAL => 'all';
 
+$^W = 1;
+
 BEGIN
 {
-  my $pkgdatadir = $ENV{'autom4te_perllibdir'} || '@pkgdatadir@';
+  my $pkgdatadir = $ENV{'autom4te_perllibdir'} ||
+	($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/autoconf' : '@pkgdatadir@');
   unshift @INC, $pkgdatadir;
 
   # Override SHELL.  On DJGPP SHELL may not be set to a shell
--- a/bin/autoconf.as
+++ b/bin/autoconf.as
@@ -89,8 +89,13 @@ exit_missing_arg='
 # restore font-lock: '
 
 # Variables.
-: ${AUTOM4TE='@bindir@/@autom4te-name@'}
-: ${trailer_m4='@pkgdatadir@/autoconf/trailer.m4'}
+if test -n "$STAGING_DIR_HOST"; then
+	: ${AUTOM4TE="$STAGING_DIR_HOST/bin/@autom4te-name@"}
+	: ${trailer_m4="$STAGING_DIR_HOST/share/autoconf/autoconf/trailer.m4"}
+else
+	: ${AUTOM4TE='@bindir@/@autom4te-name@'}
+	: ${trailer_m4='@pkgdatadir@/autoconf/trailer.m4'}
+fi
 autom4te_options=
 outfile=
 verbose=false
