Use gcc's built-in dependency generation, thanks to Adam Strzelecki
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403958
This commit is contained in:
parent
7f26231261
commit
361d31ae06
3 changed files with 35 additions and 117 deletions
|
@ -1,87 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Generate dependencies from a list of source files
|
||||
|
||||
# Check to make sure our environment variables are set
|
||||
if test x"$INCLUDE" = x -o x"$SOURCES" = x -o x"$output" = x; then
|
||||
echo "SOURCES, INCLUDE, and output needs to be set"
|
||||
exit 1
|
||||
fi
|
||||
cache_prefix=".#$$"
|
||||
|
||||
generate_var()
|
||||
{
|
||||
echo $1 | sed -e 's|^.*/||' -e 's|\.|_|g'
|
||||
}
|
||||
|
||||
search_deps()
|
||||
{
|
||||
base=`echo $1 | sed 's|/[^/]*$||'`
|
||||
grep '#include "' <$1 | sed -e 's|.*"\([^"]*\)".*|\1|' | \
|
||||
while read file
|
||||
do cache=${cache_prefix}_`generate_var $file`
|
||||
if test -f $cache; then
|
||||
: # We already ahve this cached
|
||||
else
|
||||
: >$cache
|
||||
for path in $base `echo $INCLUDE | sed 's|-I||g'`
|
||||
do dep="$path/$file"
|
||||
if test -f "$dep"; then
|
||||
echo " $dep \\" >>$cache
|
||||
search_deps $dep >>$cache
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
cat $cache
|
||||
done
|
||||
}
|
||||
|
||||
:>${output}.new
|
||||
for src in $SOURCES
|
||||
do echo "Generating dependencies for $src"
|
||||
ext=`echo $src | sed 's|.*\.\(.*\)|\1|'`
|
||||
if test x"$ext" = x"rc"; then
|
||||
obj=`echo $src | sed "s|^.*/\([^ ]*\)\..*|\1.o|g"`
|
||||
else
|
||||
obj=`echo $src | sed "s|^.*/\([^ ]*\)\..*|\1.lo|g"`
|
||||
fi
|
||||
echo "\$(objects)/$obj: $src \\" >>${output}.new
|
||||
search_deps $src | sort | uniq >>${output}.new
|
||||
case $ext in
|
||||
c) cat >>${output}.new <<__EOF__
|
||||
|
||||
\$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@
|
||||
|
||||
__EOF__
|
||||
;;
|
||||
cc) cat >>${output}.new <<__EOF__
|
||||
|
||||
\$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@
|
||||
|
||||
__EOF__
|
||||
;;
|
||||
m) cat >>${output}.new <<__EOF__
|
||||
|
||||
\$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@
|
||||
|
||||
__EOF__
|
||||
;;
|
||||
S) cat >>${output}.new <<__EOF__
|
||||
|
||||
\$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@
|
||||
|
||||
__EOF__
|
||||
;;
|
||||
rc) cat >>${output}.new <<__EOF__
|
||||
|
||||
\$(WINDRES) $src \$@
|
||||
|
||||
__EOF__
|
||||
;;
|
||||
*) echo "Unknown file extension: $ext";;
|
||||
esac
|
||||
echo "" >>${output}.new
|
||||
done
|
||||
mv ${output}.new ${output}
|
||||
rm -f ${cache_prefix}*
|
Loading…
Add table
Add a link
Reference in a new issue