Commit 1506b0cf authored by Bernhard Reutner-Fischer's avatar Bernhard Reutner-Fischer
Browse files

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)
parent a9612bfd
Loading
Loading
Loading
Loading
+2 −16
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
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
+19 −24
Original line number Diff line number Diff line
@@ -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'