diff options
| author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2007-03-09 08:33:34 +0000 | 
|---|---|---|
| committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2007-03-09 08:33:34 +0000 | 
| commit | 1506b0cfd5708c81fe286549d63843c5030c0e8a (patch) | |
| tree | 46ed27097f9ccc05feaa4e021534519a50235ee4 | |
| parent | a9612bfdd90268cf065b09e8a0ff1b6c8a99b399 (diff) | |
| download | buildroot-novena-1506b0cfd5708c81fe286549d63843c5030c0e8a.tar.gz buildroot-novena-1506b0cfd5708c81fe286549d63843c5030c0e8a.zip | |
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)
| -rwxr-xr-x | package/sed/sedcheck.sh | 18 | ||||
| -rwxr-xr-x | toolchain/dependencies/check-host-sed.sh | 38 | ||||
| -rwxr-xr-x | toolchain/dependencies/dependencies.sh | 43 | 
3 files changed, 59 insertions, 40 deletions
| diff --git a/package/sed/sedcheck.sh b/package/sed/sedcheck.sh index 535ad6023..3fe44e85e 100755 --- a/package/sed/sedcheck.sh +++ b/package/sed/sedcheck.sh @@ -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 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 diff --git a/toolchain/dependencies/dependencies.sh b/toolchain/dependencies/dependencies.sh index 084e835cb..40bfd9a2a 100755 --- a/toolchain/dependencies/dependencies.sh +++ b/toolchain/dependencies/dependencies.sh @@ -88,30 +88,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' | 
