Improve the checking of sed by adding some common GNU sed installation
names (gsed/gnused), checking for a basic OS X sed feature in command line option handling, checking the actual result of the sed run against the expected result, and placing common code for the check under toolchain/dependencies/. (Heikki Lindholm)
This commit is contained in:
parent
a9612bfdd9
commit
1506b0cfd5
@ -2,24 +2,10 @@
|
||||
|
||||
# Make sure the host sed supports '-i' (in-place).
|
||||
# If it doesn't, we'll build and use our own.
|
||||
SED=$(toolchain/dependencies/check-host-sed.sh)
|
||||
|
||||
if test -x /usr/bin/sed ; then
|
||||
SED="/usr/bin/sed"
|
||||
else
|
||||
if test -x /bin/sed ; then
|
||||
SED="/bin/sed"
|
||||
else
|
||||
SED="sed"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "HELLO" > .sedtest
|
||||
$SED -i -e "s/HELLO/GOODBYE/" .sedtest >/dev/null 2>&1
|
||||
|
||||
if test $? != 0 ; then
|
||||
if [ -z "$SED" ] ; then
|
||||
echo build-sed-host-binary
|
||||
else
|
||||
echo use-sed-host-binary
|
||||
fi
|
||||
|
||||
rm -f .sedtest
|
||||
|
38
toolchain/dependencies/check-host-sed.sh
Executable file
38
toolchain/dependencies/check-host-sed.sh
Executable file
@ -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
|
@ -86,30 +86,6 @@ fi;
|
||||
|
||||
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# check build system 'sed'
|
||||
#
|
||||
#############################################################
|
||||
if test -x /usr/bin/sed ; then
|
||||
SED="/usr/bin/sed"
|
||||
else
|
||||
if test -x /bin/sed ; then
|
||||
SED="/bin/sed"
|
||||
else
|
||||
SED="sed"
|
||||
fi
|
||||
fi
|
||||
echo "HELLO" > .sedtest
|
||||
$SED -i -e "s/HELLO/GOODBYE/" .sedtest >/dev/null 2>&1
|
||||
if test $? != 0 ; then
|
||||
echo "sed works: No, using buildroot version instead"
|
||||
else
|
||||
echo "sed works: Ok"
|
||||
fi
|
||||
rm -f .sedtest
|
||||
XSED=$HOST_SED_DIR/bin/sed
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# check build system 'which'
|
||||
@ -123,6 +99,25 @@ fi;
|
||||
echo "which installed: Ok"
|
||||
|
||||
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# check build system 'sed'
|
||||
#
|
||||
#############################################################
|
||||
SED=$(toolchain/dependencies/check-host-sed.sh)
|
||||
|
||||
if [ -z "$SED" ] ; then
|
||||
XSED=$HOST_SED_DIR/bin/sed
|
||||
echo "sed works: No, using buildroot version instead"
|
||||
else
|
||||
XSED=$SED
|
||||
echo "sed works: Ok ($SED)"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# check build system 'make'
|
||||
|
Loading…
Reference in New Issue
Block a user