summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJess Robinson <castaway@desert-island.me.uk>2013-01-31 14:15:17 +0000
committerBrian Fraser <fraserbn@gmail.com>2014-01-23 19:46:03 +0100
commit871414daa45a66933057dd318494c425c88dbbdc (patch)
treee7259734c01c70bf6863b277f713f2fe9eee4354
parentabfe20b253058027fdc5ed265d0981c14e51285d (diff)
downloadperl-871414daa45a66933057dd318494c425c88dbbdc.tar.gz
Separate SH used to run Configure from SH used on target system
This is because, for example, on the host system, sh might be /bin/sh, but on the target system, it's /system/bin/sh. The new variable is "targetsh" and defaults to "sh" unless changed by the hints file/Configure params.
-rwxr-xr-xConfigure6
-rwxr-xr-xconfig_h.SH2
2 files changed, 7 insertions, 1 deletions
diff --git a/Configure b/Configure
index a81e3a4e63..e4e5570ee3 100755
--- a/Configure
+++ b/Configure
@@ -217,6 +217,7 @@ usecrosscompile=''
hostperl=''
hostgenerate=''
hostosname=''
+targetsh=''
extern_C=''
mistrustnm=''
usedevel=''
@@ -1439,6 +1440,10 @@ EOM
;;
esac
+: When cross-compiling we need to separate the sh-to-run-Configure-with from the sh-to-use-in-Perl
+: default both to the same thing, cross-compilers can then set targetsh differently if they like
+targetsh=$sh
+
: see if sh knows # comments
if `$sh -c '#' >/dev/null 2>&1`; then
shsharp=true
@@ -23817,6 +23822,7 @@ targetdir='$targetdir'
targethost='$targethost'
targetmkdir='$targetmkdir'
targetport='$targetport'
+targetsh='$targetsh'
tbl='$tbl'
tee='$tee'
test='$test'
diff --git a/config_h.SH b/config_h.SH
index 010bb6aae0..c027ac4707 100755
--- a/config_h.SH
+++ b/config_h.SH
@@ -3141,7 +3141,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
* /bin/pdksh, /bin/ash, /bin/bash, or even something such as
* D:/bin/sh.exe.
*/
-#define SH_PATH "$sh" /**/
+#define SH_PATH "$targetsh" /**/
/* SIG_NAME:
* This symbol contains a list of signal names in order of