Use cc -E instead of cpp for the preprocessor by default. cc -E is

correct for C sources that are compiled by cc, while cpp (/usr/bin/cpp)
is bogus since it invokes /usr/libexec/cpp with different flags.
1.1.5 uses plain cc.  This should be equivalent after -M is added, but
cc -M foo.s is completely broken (it invokes the assembler) while
cc -E -M foo.s just does nothing instead of generating a foo.o: foo.s
dependency.

IF $MKDEP_CPP is set, use it as the cpp instead of cc -E.  Assembler
sources that are preprocessed using cpp directly should be mkdep'ed
with MKDEP_CPP=cpp.  Such sources shouldn't exist but we still have
lots.  foo.S should be compiled by cc -traditional (cc will invoke the
preprocessor) and foo.s should be compiled by cc (cc won't invoke the
preprocessor).
This commit is contained in:
bde 1994-08-30 16:36:49 +00:00
parent 066424d7d9
commit 199077a743

View File

@ -72,10 +72,15 @@ TMP=/tmp/mkdep$$
trap 'rm -f $TMP ; exit 1' 1 2 3 13 15
# For C sources, mkdep must use exactly the same cpp and predefined flags
# as the compiler would. This is easily arranged by letting the compiler
# pick the cpp. mkdep must be told the cpp to use for exceptional cases.
MKDEP_CPP=${MKDEP_CPP-"cc -E"}
if [ x$pflag = x ]; then
cpp -M $* | sed -e 's; \./; ;g' > $TMP
$MKDEP_CPP -M $* | sed -e 's; \./; ;g' > $TMP
else
cpp -M $* | sed -e 's;\.o :; :;' -e 's; \./; ;g' > $TMP
$MKDEP_CPP -M $* | sed -e 's;\.o :; :;' -e 's; \./; ;g' > $TMP
fi
if [ $? != 0 ]; then