31 lines
555 B
Bash
31 lines
555 B
Bash
#!/bin/rc
|
|
|
|
x=/tmp/mk$pid
|
|
|
|
fn sigexit { rm -f $x }
|
|
fn sigint { rm -f $x }
|
|
|
|
tee $x < $1 | sed -e 's/\$\(([^)]*)\)([ :\/])/$\1\2/g
|
|
s/\$\(([^)]*)\)$/$\1/g
|
|
s/\$\(([^)]*)\)/${\1}/g
|
|
s/^ @/ /
|
|
/^ -/,/[^\\]$/{
|
|
/[^\\]\$/s/$/; set -e/
|
|
}
|
|
/^ -/s/ -/ set +e; /
|
|
s/:\&/:/
|
|
s/\$% /$stem /g
|
|
s/\$%\./$stem\./g
|
|
s/\$%/${stem}/g
|
|
s/\$@([ ]|$)/$target\1/g
|
|
s/\$@/${target}/g
|
|
s/\$\^/${prereq}/g
|
|
s/\$\?/$newprereq/g'
|
|
|
|
if(grep -s 'cd[ ]|make' < $x){
|
|
{
|
|
echo 'Warning: recipes containing cd or make need attention.'
|
|
grep 'cd[ ]|make' < $x
|
|
} >[1=2]
|
|
}
|