summaryrefslogtreecommitdiffstats
path: root/toolchain/dependencies/check-host-sed.sh
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/dependencies/check-host-sed.sh')
-rwxr-xr-xtoolchain/dependencies/check-host-sed.sh38
1 files changed, 38 insertions, 0 deletions
diff --git a/toolchain/dependencies/check-host-sed.sh b/toolchain/dependencies/check-host-sed.sh
new file mode 100755
index 000000000..ba99a4258
--- /dev/null
+++ b/toolchain/dependencies/check-host-sed.sh
@@ -0,0 +1,38 @@
+SEDLIST="/usr/bin/sed /bin/sed sed gnused gsed"
+
+DIFF=$(which diff)
+if ! test -x "$DIFF" ; then
+ /bin/echo -e "\n\ntesting for sed needs 'diff' on your build machine\n";
+ exit 1;
+fi;
+
+for SED in $SEDLIST
+do
+ if ! test -x $SED ; then
+ SED=$(which $SED)
+ if ! test -x "$SED" > /dev/null ; then
+ SED=""
+ continue
+ fi
+ fi
+
+ echo "HELLO" > .sedtest
+ echo "GOODBYE" > .sedtest-correct
+ $SED -i -e "s/HELLO/GOODBYE/" .sedtest >/dev/null 2>&1
+
+ if test $? != 0 ; then
+ SED=""
+ elif test -e ".sedtest-e" ; then
+ rm -f ".sedtest-e"
+ SED=""
+ elif ! $DIFF ".sedtest" ".sedtest-correct" > /dev/null ; then
+ echo "diff failed"
+ SED=""
+ fi
+
+ rm -f .sedtest .sedtest-correct
+ if [ ! -z "$SED" ] ; then
+ break
+ fi
+done
+echo $SED