Add a test to check whether in compat mode make detectes builtins

on the command line and really executes the shell instead of directly
executing the command.
This commit is contained in:
harti 2005-05-20 15:25:04 +00:00
parent b618326a09
commit e533045bcd
6 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,30 @@
#
# In compat mode (the default without -j) a line that contains no shell
# meta characters and no shell builtins is not passed to the shell but
# executed directly. In our example the ls line without meta characters
# will really execute ls, while the line with meta characters will execute
# our special shell.
#
# $FreeBSD$
all: sh
@MAKEFLAGS= ${MAKE} -B no-builtin
@MAKEFLAGS= ${MAKE} -B builtin
sh: sh.sh
@cp ${.CURDIR}/sh.sh ${.OBJDIR}/sh
@chmod +x ${.OBJDIR}/sh
.ifmake builtin || no-builtin
.SHELL: path="${.OBJDIR}/sh"
.PHONY: builtin no-builtin
builtin:
@exec ls -d .
no-builtin:
@ls -d .
.endif

View File

@ -0,0 +1 @@
2

View File

@ -0,0 +1 @@
make: don't know how to make sh.sh. Stop

View File

@ -0,0 +1,6 @@
#!/bin/sh
# $FreeBSD$
echo "$@"
if ! test -t 0 ; then
cat
fi

View File

@ -0,0 +1,13 @@
#!/bin/sh
# $FreeBSD$
cd `dirname $0`
. ../../common.sh
desc_test()
{
echo "Check that a command line with a builtin is passed to the shell."
}
eval_cmd $1