Module Name: src Committed By: sjg Date: Tue Jun 7 00:10:21 UTC 2011
Modified Files: src/usr.bin/make/unit-tests: modts Log Message: Some systems (eg. MirBSD) use a ksh, with an echo which cannot be used for things containing \x: etc. Check for print or printf as builtin and use if available. Note that a builtin will fail, if make decides a shell is not needed. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/usr.bin/make/unit-tests/modts Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/make/unit-tests/modts diff -u src/usr.bin/make/unit-tests/modts:1.1 src/usr.bin/make/unit-tests/modts:1.2 --- src/usr.bin/make/unit-tests/modts:1.1 Fri Feb 20 09:03:26 2004 +++ src/usr.bin/make/unit-tests/modts Tue Jun 7 00:10:20 2011 @@ -9,6 +9,17 @@ all: mod-ts +# Use print or printf iff they are builtin. +# XXX note that this causes problems, when make decides +# there is no need to use a shell, so avoid where possible. +.if ${type print 2> /dev/null || echo:L:sh:Mbuiltin} != "" +PRINT= print -r -- +.elif ${type printf 2> /dev/null || echo:L:sh:Mbuiltin} != "" +PRINT= printf '%s\n' +.else +PRINT= echo +.endif + mod-ts: @echo 'LIST="${LIST}"' @echo 'LIST:ts,="${LIST:ts,}"' @@ -22,11 +33,11 @@ @echo 'LIST:S/two/2/:ts="${LIST:S/two/2/:ts}"' @echo 'LIST:ts/:S/two/2/="${LIST:ts/:S/two/2/}"' @echo "Pretend the '/' in '/n' etc. below are back-slashes." - @echo 'LIST:ts/n="${LIST:ts\n}"' - @echo 'LIST:ts/t="${LIST:ts\t}"' - @echo 'LIST:ts/012:tu="${LIST:ts\012:tu}"' - @echo 'LIST:tx="${LIST:tx}"' - @echo 'LIST:ts/x:tu="${LIST:ts\x:tu}"' - @echo 'FU_$@="${FU_${@:ts}:ts}"' - @echo 'FU_$@:ts:T="${FU_${@:ts}:ts:T}" == cool?' - @echo 'B.$${AAA:ts}="${B.${AAA:ts}}" == Baaa?' + @${PRINT} 'LIST:ts/n="${LIST:ts\n}"' + @${PRINT} 'LIST:ts/t="${LIST:ts\t}"' + @${PRINT} 'LIST:ts/012:tu="${LIST:ts\012:tu}"' + @${PRINT} 'LIST:tx="${LIST:tx}"' + @${PRINT} 'LIST:ts/x:tu="${LIST:ts\x:tu}"' + @${PRINT} 'FU_$@="${FU_${@:ts}:ts}"' + @${PRINT} 'FU_$@:ts:T="${FU_${@:ts}:ts:T}" == cool?' + @${PRINT} 'B.$${AAA:ts}="${B.${AAA:ts}}" == Baaa?'