/[MITgcm]/MITgcm/tools/genmake2
ViewVC logotype

Diff of /MITgcm/tools/genmake2

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.32 by edhill, Wed Nov 12 22:05:47 2003 UTC revision 1.38 by edhill, Fri Nov 14 12:52:56 2003 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/sh
2  #  #
3  # $Header$  # $Header$
4  #  #
# Line 104  find_possible_configs()  { Line 104  find_possible_configs()  {
104          CPP="cpp -traditional -P"          CPP="cpp -traditional -P"
105      fi      fi
106    
107        # makedepend is not always available
108        if test "x${MAKEDEPEND}" = x ; then
109          which makedepend >& /dev/null
110          RETVAL=$?
111          if test "x${RETVAL}" = x1 ; then
112             echo "    makedepend was not found. Using xmakedpend instead."
113             MAKEDEPEND='$(TOOLSDIR)/xmakedepend'
114          fi
115        fi
116    
117      # look for possible fortran compilers      # look for possible fortran compilers
118      tmp="$MITGCM_FC $FC efc g77 f77 pgf77 pgf95 ifc f90 f95 mpif77 mpf77 mpxlf95"      tmp="$MITGCM_FC $FC efc g77 f77 pgf77 pgf95 ifc f90 f95 mpif77 mpf77 mpxlf95"
119      p_FC=      p_FC=
# Line 206  get_pdepend_list()  { Line 216  get_pdepend_list()  {
216      cat $1 | sed -e 's/#.*$//g' \      cat $1 | sed -e 's/#.*$//g' \
217          | $AWK 'BEGIN{nn=0;} (NF>0){ for(i=2;i<=NF;i++){nn++; print "PNAME["nn"]="$1"\nDNAME["nn"]="$i} }' \          | $AWK 'BEGIN{nn=0;} (NF>0){ for(i=2;i<=NF;i++){nn++; print "PNAME["nn"]="$1"\nDNAME["nn"]="$i} }' \
218          > ./.pd_tmp          > ./.pd_tmp
219      source ./.pd_tmp      . ./.pd_tmp
220      rm -f ./.pd_tmp      rm -f ./.pd_tmp
221    
222      echo -n "PNAME = "${}      echo -n "PNAME = "${}
# Line 280  EOF Line 290  EOF
290          echo "WARNING: C test compile fails -- please see \"genmake_errors\""          echo "WARNING: C test compile fails -- please see \"genmake_errors\""
291          echo "WARNING: We'll try to use: FC_NAMEMANGLE='$FC_NAMEMANGLE'"          echo "WARNING: We'll try to use: FC_NAMEMANGLE='$FC_NAMEMANGLE'"
292          echo "WARNING: Please contact <MITgcm-support@mitgcm.org> if you need help here."          echo "WARNING: Please contact <MITgcm-support@mitgcm.org> if you need help here."
293            rm -f genmake_tcomp.* genmake_test.*
294          return 1          return 1
295      fi      fi
296      c_tcall=`nm genmake_test.o | grep tcall | cut -d ' ' -f 3`      c_tcall=`nm genmake_test.o | grep tcall | cut -d ' ' -f 3`
# Line 290  EOF Line 301  EOF
301          echo "WARNING: The \"nm\" command failed."          echo "WARNING: The \"nm\" command failed."
302          echo "WARNING: We'll try to use: FC_NAMEMANGLE='$FC_NAMEMANGLE'"          echo "WARNING: We'll try to use: FC_NAMEMANGLE='$FC_NAMEMANGLE'"
303          echo "WARNING: Please contact <MITgcm-support@mitgcm.org> if you need help here."          echo "WARNING: Please contact <MITgcm-support@mitgcm.org> if you need help here."
304            rm -f genmake_tcomp.* genmake_test.*
305          return 1          return 1
306      fi      fi
307      cat > genmake_tcomp.f <<EOF      cat > genmake_tcomp.f <<EOF
# Line 307  EOF Line 319  EOF
319          echo "WARNING: FORTRAN test compile fails -- please see \"genmake_errors\""          echo "WARNING: FORTRAN test compile fails -- please see \"genmake_errors\""
320          echo "WARNING: We'll try to use: FC_NAMEMANGLE='$FC_NAMEMANGLE'"          echo "WARNING: We'll try to use: FC_NAMEMANGLE='$FC_NAMEMANGLE'"
321          echo "WARNING: Please contact <MITgcm-support@mitgcm.org> if you need help here."          echo "WARNING: Please contact <MITgcm-support@mitgcm.org> if you need help here."
322            rm -f genmake_tcomp.* genmake_test.*
323          return 1          return 1
324      fi      fi
325      f_tcall=`nm genmake_tcomp.o | grep tcall | cut -d ' ' -f 3`      f_tcall=`nm genmake_tcomp.o | grep tcall | cut -d ' ' -f 3`
# Line 317  EOF Line 330  EOF
330          echo "WARNING: The \"nm\" command failed."          echo "WARNING: The \"nm\" command failed."
331          echo "WARNING: We'll try to use: FC_NAMEMANGLE='$FC_NAMEMANGLE'"          echo "WARNING: We'll try to use: FC_NAMEMANGLE='$FC_NAMEMANGLE'"
332          echo "WARNING: Please contact <MITgcm-support@mitgcm.org> if you need help here."          echo "WARNING: Please contact <MITgcm-support@mitgcm.org> if you need help here."
333            rm -f genmake_tcomp.* genmake_test.*
334          return 1          return 1
335      fi      fi
336    
# Line 440  echo "===  Processing options files and Line 454  echo "===  Processing options files and
454  gm_local="genmake_local"  gm_local="genmake_local"
455  for i in . $MODS ; do  for i in . $MODS ; do
456      if test -r $i/$gm_local ; then      if test -r $i/$gm_local ; then
457          source $i/$gm_local          . $i/$gm_local
458          break          break
459      fi      fi
460  done  done
461  echo -n "  getting local config information:  "  echo -n "  getting local config information:  "
462  if test -e $gm_local ; then  if test -e $gm_local ; then
463      echo "using $gm_local"      echo "using $gm_local"
464      source $gm_local      . $gm_local
465      # echo "DISABLE=$DISABLE"      # echo "DISABLE=$DISABLE"
466      # echo "ENABLE=$ENABLE"      # echo "ENABLE=$ENABLE"
467  else  else
# Line 651  fi Line 665  fi
665  if test "x$OPTFILE" != xNONE ; then  if test "x$OPTFILE" != xNONE ; then
666      if test -f "$OPTFILE" -a -r "$OPTFILE" ; then      if test -f "$OPTFILE" -a -r "$OPTFILE" ; then
667          echo "    using OPTFILE=\"$OPTFILE\""          echo "    using OPTFILE=\"$OPTFILE\""
668          source "$OPTFILE"          . "$OPTFILE"
669          RETVAL=$?          RETVAL=$?
670          if test "x$RETVAL" != x0 ; then          if test "x$RETVAL" != x0 ; then
671              echo -n "Error: failed to source OPTFILE \"$OPTFILE\""              echo -n "Error: failed to source OPTFILE \"$OPTFILE\""
# Line 678  fi Line 692  fi
692  if test "x${AD_OPTFILE}" != xNONE ; then  if test "x${AD_OPTFILE}" != xNONE ; then
693      if test -f "$AD_OPTFILE" -a -r "$AD_OPTFILE" ; then      if test -f "$AD_OPTFILE" -a -r "$AD_OPTFILE" ; then
694          echo "    using AD_OPTFILE=\"$AD_OPTFILE\""          echo "    using AD_OPTFILE=\"$AD_OPTFILE\""
695          source "$AD_OPTFILE"          . "$AD_OPTFILE"
696          RETVAL=$?          RETVAL=$?
697          if test "x$RETVAL" != x0 ; then          if test "x$RETVAL" != x0 ; then
698              echo -n "Error: failed to source AD_OPTFILE \"$AD_OPTFILE\""              echo -n "Error: failed to source AD_OPTFILE \"$AD_OPTFILE\""
# Line 694  if test "x${AD_OPTFILE}" != xNONE ; then Line 708  if test "x${AD_OPTFILE}" != xNONE ; then
708      fi      fi
709  fi  fi
710    
711  #  Check that FC, LINK, CPP, and S64 are defined.  If not, complain  #  Check that FC, LINK, CPP, S64, and LN are defined.  If not,
712  #  and abort!  #  complain and abort!
713  if test "x$FC" = x ; then  if test "x$FC" = x ; then
714      cat <<EOF 1>&2      cat <<EOF 1>&2
715    
# Line 731  fi Line 745  fi
745  if test "x$MAKEDEPEND" = x ; then  if test "x$MAKEDEPEND" = x ; then
746      MAKEDEPEND=makedepend      MAKEDEPEND=makedepend
747  fi  fi
748    if test "x$LN" = x ; then
749        LN="ln -s"
750    fi
751    echo "test" > genmake_test_ln
752    $LN genmake_test_ln genmake_tlink
753    RETVAL=$?
754    if test "x$RETVAL" != x0 ; then
755        cat <<EOF 1>&2
756    
757    Error: The command "ln -s" failed -- please specify a working soft-link
758      command in the optfile.
759    
760    EOF
761        exit 1
762    fi
763    rm -f genmake_test_ln genmake_tlink
764    
765  printf "\n===  Checking system libraries  ===\n"  printf "\n===  Checking system libraries  ===\n"
766  echo -n "  Do we have the system() command using $FC...  "  echo -n "  Do we have the system() command using $FC...  "
# Line 839  EXECUTABLE=${EXECUTABLE:-mitgcmuv} Line 868  EXECUTABLE=${EXECUTABLE:-mitgcmuv}
868  #  they appear as regular source code  #  they appear as regular source code
869  if test -r $ROOTDIR"/eesupp/src/Makefile" ; then  if test -r $ROOTDIR"/eesupp/src/Makefile" ; then
870      echo "  Making source files in eesupp from templates"      echo "  Making source files in eesupp from templates"
871      $MAKE -C $ROOTDIR"/eesupp/src/" > make_eesupp.errors 2>&1      ( cd $ROOTDIR"/eesupp/src/" && $MAKE ) > make_eesupp.errors 2>&1
872      RETVAL=$?      RETVAL=$?
873      if test "x${RETVAL}" = x0 ; then      if test "x${RETVAL}" = x0 ; then
874          rm -f make_eesupp.errors          rm -f make_eesupp.errors
# Line 876  if test ! "x${RETVAL}" = x0 ; then Line 905  if test ! "x${RETVAL}" = x0 ; then
905      echo "Error: unable to parse package dependencies -- please check PDEPEND=\"$PDEPEND\""      echo "Error: unable to parse package dependencies -- please check PDEPEND=\"$PDEPEND\""
906      exit 1      exit 1
907  fi  fi
908  source ./.pd_tmp  . ./.pd_tmp
909  rm -f ./.pd_tmp  rm -f ./.pd_tmp
910    
911  #  Search for default packages.  Note that a "$ROOTDIR/pkg/pkg_groups"  #  Search for default packages.  Note that a "$ROOTDIR/pkg/pkg_groups"
# Line 1470  ad_taf_output.f: ad_input_code.f Line 1499  ad_taf_output.f: ad_input_code.f
1499          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.f          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.f
1500          cat ad_input_code_ad.f | sed -f adjoint_sed > ad_taf_output.f          cat ad_input_code_ad.f | sed -f adjoint_sed > ad_taf_output.f
1501    
1502    adtafonly:
1503            \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.f
1504            cat ad_input_code_ad.f | sed -f adjoint_sed > ad_taf_output.f
1505    
1506  ad_taf: ad_taf_output.o \$(OBJFILES)  ad_taf: ad_taf_output.o \$(OBJFILES)
1507          \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_taf_output.o \$(LIBS)          \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_taf_output.o \$(LIBS)
1508    

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.38

  ViewVC Help
Powered by ViewVC 1.1.22