mirror of https://gitlab.com/QEF/q-e.git
added include files to dependencies [Gerardo]
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1722 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
parent
34dcd9cb6c
commit
a6b5b22294
|
@ -0,0 +1,48 @@
|
|||
#!/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
|
|
@ -0,0 +1,48 @@
|
|||
#!/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
|
|
@ -10,11 +10,12 @@ for DIR in Modules PW CPV flib pwtools upftools PP PWCOND \
|
|||
do
|
||||
# set inter-directory dependencies
|
||||
case $DIR in
|
||||
Modules ) DEPENDS="" ;;
|
||||
Modules ) DEPENDS="../include" ;;
|
||||
PW | CPV | flib | pwtools | upftools | atomic )
|
||||
DEPENDS="../Modules" ;;
|
||||
PP | PWCOND | Gamma | PH ) DEPENDS="../Modules ../PW" ;;
|
||||
D3 | Raman | Nmr) DEPENDS="../Modules ../PW ../PH" ;;
|
||||
DEPENDS="../include ../Modules" ;;
|
||||
PP | PWCOND | Gamma | PH )
|
||||
DEPENDS="../include ../Modules ../PW" ;;
|
||||
D3 | Raman | Nmr) DEPENDS="../include ../Modules ../PW ../PH" ;;
|
||||
esac
|
||||
|
||||
# generate dependencies file
|
||||
|
@ -22,11 +23,18 @@ do
|
|||
then
|
||||
cd $TOPDIR/$DIR
|
||||
$TOPDIR/moduledep.sh $DEPENDS > make.depend
|
||||
$TOPDIR/includedep.sh $DEPENDS >> make.depend
|
||||
fi
|
||||
|
||||
# handle special case
|
||||
mv make.depend make.depend.tmp
|
||||
sed '/@\/cineca\/prod\/hpm\/include\/f_hpm.h@/d' \
|
||||
make.depend.tmp > make.depend
|
||||
rm -f make.depend.tmp
|
||||
|
||||
# check for missing dependencies
|
||||
if grep @ make.depend
|
||||
then
|
||||
echo WARNING: modules not found in directory $DIR
|
||||
echo WARNING: dependencies not found in directory $DIR
|
||||
fi
|
||||
done
|
||||
|
|
|
@ -2,15 +2,21 @@
|
|||
# moduledep.sh -- script that computes dependencies on Fortran 90 modules
|
||||
|
||||
# files whose dependencies must be computed
|
||||
sources=`ls *.f90`
|
||||
sources=`echo *.f90 |
|
||||
sed 's/\*\.f90//g'` # remove the "*.f90" that remains
|
||||
# # when there are no such files
|
||||
if test "$sources" = "" ; then exit ; fi
|
||||
|
||||
# files that may contain modules
|
||||
# extra directories can be specified on the command line
|
||||
sources_all="$sources"
|
||||
for dir in $*
|
||||
do
|
||||
sources_all="$sources_all `ls $dir/*.f90`"
|
||||
sources_all="$sources_all `echo $dir/*.f90`"
|
||||
done
|
||||
sources_all=`echo $sources_all |
|
||||
sed 's/[^ ]*\*\.f90//g'` # remove the "dir/*.f90" that remain
|
||||
# # when there are no such files
|
||||
|
||||
rm -f moduledep.tmp1 moduledep.tmp2 # destroy previous contents
|
||||
|
||||
|
|
18
makedeps.sh
18
makedeps.sh
|
@ -10,11 +10,12 @@ for DIR in Modules PW CPV flib pwtools upftools PP PWCOND \
|
|||
do
|
||||
# set inter-directory dependencies
|
||||
case $DIR in
|
||||
Modules ) DEPENDS="" ;;
|
||||
Modules ) DEPENDS="../include" ;;
|
||||
PW | CPV | flib | pwtools | upftools | atomic )
|
||||
DEPENDS="../Modules" ;;
|
||||
PP | PWCOND | Gamma | PH ) DEPENDS="../Modules ../PW" ;;
|
||||
D3 | Raman | Nmr) DEPENDS="../Modules ../PW ../PH" ;;
|
||||
DEPENDS="../include ../Modules" ;;
|
||||
PP | PWCOND | Gamma | PH )
|
||||
DEPENDS="../include ../Modules ../PW" ;;
|
||||
D3 | Raman | Nmr) DEPENDS="../include ../Modules ../PW ../PH" ;;
|
||||
esac
|
||||
|
||||
# generate dependencies file
|
||||
|
@ -22,11 +23,18 @@ do
|
|||
then
|
||||
cd $TOPDIR/$DIR
|
||||
$TOPDIR/moduledep.sh $DEPENDS > make.depend
|
||||
$TOPDIR/includedep.sh $DEPENDS >> make.depend
|
||||
fi
|
||||
|
||||
# handle special case
|
||||
mv make.depend make.depend.tmp
|
||||
sed '/@\/cineca\/prod\/hpm\/include\/f_hpm.h@/d' \
|
||||
make.depend.tmp > make.depend
|
||||
rm -f make.depend.tmp
|
||||
|
||||
# check for missing dependencies
|
||||
if grep @ make.depend
|
||||
then
|
||||
echo WARNING: modules not found in directory $DIR
|
||||
echo WARNING: dependencies not found in directory $DIR
|
||||
fi
|
||||
done
|
||||
|
|
10
moduledep.sh
10
moduledep.sh
|
@ -2,15 +2,21 @@
|
|||
# moduledep.sh -- script that computes dependencies on Fortran 90 modules
|
||||
|
||||
# files whose dependencies must be computed
|
||||
sources=`ls *.f90`
|
||||
sources=`echo *.f90 |
|
||||
sed 's/\*\.f90//g'` # remove the "*.f90" that remains
|
||||
# # when there are no such files
|
||||
if test "$sources" = "" ; then exit ; fi
|
||||
|
||||
# files that may contain modules
|
||||
# extra directories can be specified on the command line
|
||||
sources_all="$sources"
|
||||
for dir in $*
|
||||
do
|
||||
sources_all="$sources_all `ls $dir/*.f90`"
|
||||
sources_all="$sources_all `echo $dir/*.f90`"
|
||||
done
|
||||
sources_all=`echo $sources_all |
|
||||
sed 's/[^ ]*\*\.f90//g'` # remove the "dir/*.f90" that remain
|
||||
# # when there are no such files
|
||||
|
||||
rm -f moduledep.tmp1 moduledep.tmp2 # destroy previous contents
|
||||
|
||||
|
|
Loading…
Reference in New Issue