/[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.27 by edhill, Tue Nov 4 18:40:58 2003 UTC revision 1.30 by edhill, Tue Nov 11 21:11:06 2003 UTC
# Line 313  KPPFILES= Line 313  KPPFILES=
313  NOOPTFILES=  NOOPTFILES=
314  NOOPTFLAGS=  NOOPTFLAGS=
315    
316    # DEFINES checked by test compilation
317    HAVE_SYSTEM=
318    HAVE_FDATE=
319    FC_NAMEMANGLE=
320    
321  MODS=  MODS=
322  TOOLSDIR=  TOOLSDIR=
323  SOURCEDIRS=  SOURCEDIRS=
# Line 358  gm_s3="LN S64 KPP LINK PACKAGES MAKEDEPE Line 363  gm_s3="LN S64 KPP LINK PACKAGES MAKEDEPE
363  gm_s4="CFLAGS KFLAGS1 KFLAGS2 LIBS KPPFILES NOOPTFILES NOOPTFLAGS"  gm_s4="CFLAGS KFLAGS1 KFLAGS2 LIBS KPPFILES NOOPTFILES NOOPTFLAGS"
364  gm_s5="TOOLSDIR SOURCEDIRS INCLUDEDIRS PWD MAKE THISHOSTNAME THISDATE MACHINE"  gm_s5="TOOLSDIR SOURCEDIRS INCLUDEDIRS PWD MAKE THISHOSTNAME THISDATE MACHINE"
365  gm_s6="EXECUTABLE EXEHOOK EXEDIR PACKAGES_CONF"  gm_s6="EXECUTABLE EXEHOOK EXEDIR PACKAGES_CONF"
366    gm_s7="HAVE_SYSTEM HAVE_FDATE FC_NAMEMANGLE"
367    
368  #  The following are all related to adjoint/tangent-linear stuff  #  The following are all related to adjoint/tangent-linear stuff
369  gm_s7="AUTODIFF_PKG_USED AD_OPTFILE TAMC TAF AD_TAMC_FLAGS AD_TAF_FLAGS"  gm_s10="AUTODIFF_PKG_USED AD_OPTFILE TAMC TAF AD_TAMC_FLAGS AD_TAF_FLAGS"
370  gm_s8="FTL_TAMC_FLAGS FTL_TAF_FLAGS SVD_TAMC_FLAGS SVD_TAF_FLAGS"  gm_s11="FTL_TAMC_FLAGS FTL_TAF_FLAGS SVD_TAMC_FLAGS SVD_TAF_FLAGS"
371  gm_s9="TAF_EXTRA TAMC_EXTRA"  gm_s12="TAF_EXTRA TAMC_EXTRA"
372    
373  gm_state="COMMANDL $gm_s1 $gm_s2 $gm_s3 $gm_s4 $gm_s5 $gm_s6 $gm_s7 $gm_s8 $gm_s9"  gm_state="COMMANDL $gm_s1 $gm_s2 $gm_s3 $gm_s4 $gm_s5 $gm_s6 $gm_s7"
374    gm_state="$gm_state $gm_s10 $gm_s11 $gm_s12"
375    
376    
377  echo  echo
# Line 653  Error: C pre-processor "$CPP" failed the Line 660  Error: C pre-processor "$CPP" failed the
660    
661    1) within the options file ("CPP=...") as specified by "-of=OPTFILE"    1) within the options file ("CPP=...") as specified by "-of=OPTFILE"
662    2) the "./genmake_local" file    2) the "./genmake_local" file
663      3) with the CPP environment variable
664    
665  EOF  EOF
666      exit 1      exit 1
# Line 663  if test "x$MAKEDEPEND" = x ; then Line 671  if test "x$MAKEDEPEND" = x ; then
671      MAKEDEPEND=makedepend      MAKEDEPEND=makedepend
672  fi  fi
673    
674    
675    printf "\n===  Checking system libraries  ===\n"
676    echo -n "  Do we have the system() command using $FC...  "
677    cat > genmake_tcomp.f <<EOF
678          program hello
679          call system('echo hi')
680          end
681    EOF
682    $FC $FFLAGS $DEFINES -o genmake_tcomp genmake_tcomp.f > genmake_tcomp.log 2>&1
683    RETVAL=$?
684    if test "x$RETVAL" = x0 ; then
685        HAVE_SYSTEM=t
686        DEFINES="$DEFINES -DHAVE_SYSTEM"
687        echo "yes"
688    else
689        HAVE_SYSTEM=
690        echo "no"
691    fi
692    rm -f genmake_tcomp*
693    
694    echo -n "  Do we have the fdate() command using $FC...  "
695    cat > genmake_tcomp.f <<EOF
696          program hello
697          CHARACTER(128) string
698          string = ' '
699          call fdate( string )
700          print *, string
701          end
702    EOF
703    $FC $FFLAGS $DEFINES -o genmake_tcomp genmake_tcomp.f > genmake_tcomp.log 2>&1
704    RETVAL=$?
705    if test "x$RETVAL" = x0 ; then
706        HAVE_FDATE=t
707        DEFINES="$DEFINES -DHAVE_FDATE"
708        echo "yes"
709    else
710        HAVE_FDATE=
711        echo "no"
712    fi
713    rm -f genmake_tcomp*
714    
715    echo -n "  The name mangling convention for $FC is...  "
716    if test "x$FC_NAMEMANGLE" = x ; then
717        FC_NAMEMANGLE="#define FC_NAMEMANGLE(X) X ## _"
718    fi
719    cat > genmake_tcomp.f <<EOF
720          subroutine tcall( string )
721          character*(*) string
722          call tsub( string )
723          end
724    EOF
725    $FC $FFLAGS $DEFINES -c genmake_tcomp.f > genmake_tcomp.log 2>&1
726    RETVAL=$?
727    if test "x$RETVAL" != x0 ; then
728        cat genmake_tcomp.log >> genmake_errors
729        echo
730        echo "WARNING: test compile fails -- please see \"genmake_errors\""
731        echo "WARNING: We'll try to use: FC_NAMEMANGLE='$FC_NAMEMANGLE'"
732        echo "WARNING: Please contact <MITgcm-support@mitgcm.org> if you need help here."
733    else
734        tcall=`nm genmake_tcomp.o | grep tcall | cut -d ' ' -f 3`
735        RETVAL=$?
736        if test "x$RETVAL" != x0 ; then
737            echo
738            echo "WARNING: The \"nm\" command failed."
739            echo "WARNING: We'll try to use: FC_NAMEMANGLE='$FC_NAMEMANGLE'"
740            echo "WARNING: Please contact <MITgcm-support@mitgcm.org> if you need help here."
741        else
742            t0=`echo $tcall | sed -e 's|_tcall|_ ## X|g'`
743            nmres=`echo $t0 | sed -e 's|tcall_|X ## _|g'`
744            FC_NAMEMANGLE="#define FC_NAMEMANGLE(X)  $nmres"
745            echo "'$FC_NAMEMANGLE'"
746        fi
747    fi
748    echo "$FC_NAMEMANGLE" > FC_NAMEMANGLE.h.template
749    cmp FC_NAMEMANGLE.h FC_NAMEMANGLE.h.template > /dev/null 2>&1
750    RETVAL=$?
751    if test "x$RETVAL" != x0 ; then
752        mv -f FC_NAMEMANGLE.h.template FC_NAMEMANGLE.h
753    fi
754    rm -f genmake_tcomp*
755    
756    
757  printf "\n===  Setting defaults  ===\n"  printf "\n===  Setting defaults  ===\n"
758  echo -n "  Adding MODS directories:  "  echo -n "  Adding MODS directories:  "
759  for d in $MODS ; do  for d in $MODS ; do
# Line 943  for n in $names ; do Line 1034  for n in $names ; do
1034          if test "x$has_pack" = xf ; then          if test "x$has_pack" = xf ; then
1035              undef=`echo "ALLOW_$n" | $AWK '{print toupper($0)}'`              undef=`echo "ALLOW_$n" | $AWK '{print toupper($0)}'`
1036              echo "#undef $undef" >> $PACKAGES_DOT_H".tmp"              echo "#undef $undef" >> $PACKAGES_DOT_H".tmp"
 #           DEFINES="$DEFINES -U$undef"  
   
 #EH3  WARNING :  This is an UGLY HACK that needs to be removed!!!  
             case $n in  
                 mom_fluxform)  
                     DEFINES="$DEFINES -DDISABLE_MOM_FLUXFORM"  
                     ;;  
                 mom_vecinv)  
                     DEFINES="$DEFINES -DDISABLE_MOM_VECINV"  
                     ;;  
             esac  
 #EH3  WARNING :  This is an UGLY HACK that needs to be removed!!!  
   
1037          fi          fi
1038      fi      fi
1039  done  done

Legend:
Removed from v.1.27  
changed lines
  Added in v.1.30

  ViewVC Help
Powered by ViewVC 1.1.22