#!/bin/csh

set LIST_DEP = Makefile.dep
set rrr = `grep XD3D_DIR RULES | grep -v "#" | head -1`
set ROOTDIR = $rrr[3]

if ($?noclobber) then
  unset noclobber
endif

foreach dir (X d3d graphic)

  cd $ROOTDIR/src/$dir
  echo "Processing" $ROOTDIR/src/$dir
  if (-e $LIST_DEP) then
    mv -f $LIST_DEP $LIST_DEP.bak
  endif

  echo '# Dependency file automatically generated by "makedeps". DO NOT EDIT' > $LIST_DEP
  echo ' ' >> $LIST_DEP

  foreach f (*.f)
#    /bin/rm -f bidon$$
    grep -iw include $f | grep -vi "^C" \
                        | sed "s/      INCLUDE //g" \
                        | sed "s/      include //g" \
                        | sed "s/'//g" | sort > bidon$$
    set prec
    set nb = `wc bidon$$`
    if ($nb[1] > 0) then
      echo -n $f:r.o":	" >> $LIST_DEP
      foreach i (`cat bidon$$`)
        if ($prec != $i) then
          echo -n $i" " >> $LIST_DEP
        endif
        set prec = $i
      end
      echo ' ' >> $LIST_DEP
    endif
  end
  if (-e $LIST_DEP.bak) then
    set didi = `diff $LIST_DEP $LIST_DEP.bak`
    if ("$#didi" == 0) then
      echo "Identical $LIST_DEP file. I keep the old one."
      mv -f $LIST_DEP.bak $LIST_DEP
    endif
  endif
  /bin/rm -f bidon$$

end

#
# Memory calculations
#

cd $ROOTDIR

set mmm = `cat RULES | grep -v "#" | grep MEMORY_XD3D`
set MEM = $mmm[3]

cd $ROOTDIR/src/d3d

if (-e com_coor.f) then
  set OLDMEM1 = `head -1 com_coor.f | sed 's/C Automatically configured by "makedeps" for MEM =//g' | sed 's/Mbytes//g'`
else
  set OLDMEM1 = 0
endif
if (-e com_faces.f) then
  set OLDMEM2 = `head -1 com_faces.f | sed 's/C Automatically configured by "makedeps" for MEM =//g' | sed 's/Mbytes//g'`
else
  set OLDMEM2 = 0
endif

echo " "
if ($MEM != $OLDMEM1 || $MEM != $OLDMEM2) then
  set bcpresent = `which bc`
  if ($#bcpresent == 1) then
    echo "12*(("$MEM"*262144)/(12*226))" > bidon$$
    echo "quit" >> bidon$$
    set NPMAX = `bc < bidon$$`
    echo "(100*"$NPMAX")/65" > bidon$$
    echo "quit" >> bidon$$
    set NFMAX = `bc < bidon$$`
    /bin/rm -f bidon$$

    echo "Memory for xd3d      =	" $MEM "MBytes"
    echo "Max number of points =	" $NPMAX
    echo "Max number of faces  =	" $NFMAX

    echo 'C Automatically configured by "makedeps" for MEM =' $MEM > com_coor.f
    echo 'C Automatically configured by "makedeps" for MEM =' $MEM > com_faces.f
    cat com_coor_generic.f  | sed "s/Please_Configure_Me/$NPMAX/g" >> com_coor.f
    cat com_faces_generic.f | sed "s/Please_Configure_Me/$NFMAX/g" >> com_faces.f
  else
    echo '*** The command-line calculator "bc" is not present on your computer'
    echo '*** Previous xd3d memory configuration unchanged' 
  endif
else
  echo "Previous xd3d memory configuration unchanged ("$MEM "MBytes)"
endif

cd $ROOTDIR

