Back to home page

MITgcm

 
 

    


Warning, /tools/f90mkdepend_taf is written in an unsupported language. File is not indexed.

view on githubraw file Latest commit 5b531307 on 2025-02-26 01:55:18 UTC
5b53130725 Ivan*0001 #!/bin/bash
                0002 #
                0003 # Generate make file dependency entries for TAF generated AD files
                0004 # passed as arguments after output dependency file
                0005 
                0006 if [ $# -eq 0 ]; then
                0007   echo "Usage: `basename $0` output_file list_of_TAF_generated_files"
                0008   exit 1
                0009 else
                0010   dep_file=$1 ; shift
                0011 fi
                0012 
                0013 # don't complain if *.F90 doesn't match any files
                0014 shopt -s nullglob
                0015 
                0016 # init files
                0017 #log_file="`basename $0`.log"
                0018 log_file="f90mkdepend_taf.log"
                0019 
                0020 cat /dev/null > $log_file
                0021 cat /dev/null > $dep_file
                0022 
                0023 # append module dependencies to Makefile
                0024 adfiles=$*
                0025 for filename in ${adfiles}; do
                0026   # quick check for "use" to speed up processing
                0027   if grep -iq '^ *use ' $filename; then
                0028     # extract module name in lower case
                0029     modreflist=$(grep -i '^ *use ' $filename | awk '{print tolower($2)}' | sed -e 's/,.*$//' -e 's/\r$//' | sort | uniq )
                0030 
                0031     echo "$filename => $modreflist" >> $log_file
                0032 
                0033     # determine AD suffix
                0034     adsuff=$(echo ${filename%.*} | sed -e 's/.*_//')
                0035     depline="$filename:"
                0036     for m in $modreflist; do
                0037         # I am sure that this can be shorter with only one grep command
                0038         mm=$(grep -Hi "${m}$" ${adfiles} | grep -i module | grep -v end | awk -F: '{print $1}')
                0039         if  [ $mm == $filename ] ; then
                0040             echo "INFO: f90mkdepend_taf: $filename contains module $m" 1>&2
                0041         elif [[ ${#mm} > 0 ]] && [ -f ${mm} ] ; then
                0042             depline="$depline ${mm%.*}.o"
                0043         else
                0044             echo "WARNING: f90mkdepend_taf: in $filename no source file found for module $m" 1>&2
                0045         fi
                0046     done
                0047     echo $depline >> $dep_file
                0048   fi
                0049 done
                0050 exit 0