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?'