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:
parent
066424d7d9
commit
199077a743
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user