mirror of https://gitlab.com/QEF/q-e.git
49 lines
1.7 KiB
Bash
49 lines
1.7 KiB
Bash
|
#!/bin/sh
|
||
|
# includedep.sh -- script that computes dependencies on preprocessor includes
|
||
|
|
||
|
# files whose dependencies must be computed
|
||
|
sources=`echo *.c *.f90 |
|
||
|
sed 's/\*\.c//g
|
||
|
s/\*\.f90//g'` # remove the "*.c" and "*.f90" that remain
|
||
|
# # when there are no such files
|
||
|
if test "$sources" = " " ; then exit ; fi
|
||
|
|
||
|
# files that may be included
|
||
|
# extra directories may be specified on the command line
|
||
|
includes=`echo *.h`
|
||
|
for dir in $*
|
||
|
do
|
||
|
includes="$includes `echo $dir/*.h`"
|
||
|
done
|
||
|
includes=`echo $includes |
|
||
|
sed 's/[^ ]*\*\.h//g'` # remove the "dir/*.h" that remain
|
||
|
# # when there are no such files
|
||
|
|
||
|
# create list of include dependencies
|
||
|
# each line is of the form:
|
||
|
# file_name.o : @include_file.h@
|
||
|
egrep '^ *# *include *"' $sources | # look for #include "..." statements
|
||
|
# # ignore #include <...> ones
|
||
|
sed 's/f90:/o /
|
||
|
s/c:/o /
|
||
|
s/# *include *//
|
||
|
s/\"/ /g' | # replace extension, insert space
|
||
|
# # remove '# include' statements
|
||
|
# # remove quotes
|
||
|
awk '{print $1 " : @" $2 "@"}' | # create dependency entry
|
||
|
sort | uniq > includedep.tmp1 # remove duplicates
|
||
|
|
||
|
# create list of available include files
|
||
|
# for each file, create a line of the form:
|
||
|
# s/@file_name@/pathname/g
|
||
|
echo $includes | tr " " "\n" |
|
||
|
sed 's/\//\\\//g
|
||
|
s/.*\/\([^/]*\)/\1 &/' | # escape slashes
|
||
|
awk '{print "s/@" $1 "@/" $2 "/" }' > includedep.tmp2
|
||
|
|
||
|
# replace file names with pathnames
|
||
|
# by applying the file of substitution patterns just created
|
||
|
sed -f includedep.tmp2 includedep.tmp1
|
||
|
|
||
|
rm -f includedep.tmp1 includedep.tmp2 # remove temporary files
|