/[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.129 by edhill, Mon Sep 5 14:56:47 2005 UTC revision 1.136 by edhill, Thu Nov 24 17:52:15 2005 UTC
# Line 353  EOF Line 353  EOF
353      else      else
354          echo "  The possible FORTRAN compilers found in your path are:"          echo "  The possible FORTRAN compilers found in your path are:"
355          echo "   "$p_FC          echo "   "$p_FC
356          if test "x$FC" = x ; then      fi
357              FC=`echo $p_FC | $AWK '{print $1}'`  
358              echo "  Setting FORTRAN compiler to: "$FC      #  Use the first of the compilers found in the current PATH
359          fi      #  that has a correctly-named optfile
360        if test "x$OPTFILE" = x  -a  "x$FC" = x ; then
361            for i in $p_FC ; do
362                OPTFILE=$ROOTDIR"/tools/build_options/"$PLATFORM"_"$i
363                if test -r $OPTFILE ; then
364                    echo "  Setting OPTFILE to: "$OPTFILE
365                    break
366                fi
367            done
368      fi      fi
369    
370      if test "x$OPTFILE" = x ; then      if test "x$OPTFILE" = x ; then
# Line 601  EOF Line 609  EOF
609        call tsub( string )        call tsub( string )
610        end        end
611  EOF  EOF
612      $FC $FFLAGS $DEFINES -c genmake_tcomp.$FS >> genmake_warnings 2>&1      $FC $FFLAGS -c genmake_tcomp.$FS >> genmake_warnings 2>&1
613      RETVAL=$?      RETVAL=$?
614      if test "x$RETVAL" != x0 ; then      if test "x$RETVAL" != x0 ; then
615          FC_NAMEMANGLE=$default_nm          FC_NAMEMANGLE=$default_nm
# Line 689  EOF Line 697  EOF
697  }  }
698    
699    
700    check_HAVE_SETRLSTK()  {
701        get_fortran_c_namemangling
702        cat <<EOF > genmake_tc_1.c
703    $FC_NAMEMANGLE
704    #include <sys/time.h>
705    #include <sys/resource.h>
706    #include <unistd.h>
707    void FC_NAMEMANGLE(setrlstk) ()
708    {
709        struct rlimit rls;
710        rls.rlim_cur = RLIM_INFINITY;
711        rls.rlim_max = RLIM_INFINITY;
712        setrlimit(RLIMIT_STACK, &rls);
713        return;
714    }
715    EOF
716        make genmake_tc_1.o >> genmake_warnings 2>&1
717        RET_C=$?
718        cat <<EOF > genmake_tc_2.$FS
719          program hello
720          external setrlstk
721          call setrlstk()
722          end
723    EOF
724        echo >> genmake_warnings
725        echo "running: check_HAVE_SETRLSTK()" >> genmake_warnings
726        cat genmake_tc_2.$FS >> genmake_warnings
727        COMM="$FC $FFLAGS -o genmake_tc genmake_tc_2.$FS genmake_tc_1.o"
728        echo $COMM >> genmake_warnings
729        $COMM >> genmake_warnings 2>&1
730        RETVAL=$?
731        if test "x$RETVAL" = x0 ; then
732            HAVE_SETRLSTK=t
733            DEFINES="$DEFINES -DHAVE_SETRLSTK"
734        fi
735        rm -f genmake_tc*
736    }
737    
738    
739  check_HAVE_STAT()  {  check_HAVE_STAT()  {
740      get_fortran_c_namemangling      get_fortran_c_namemangling
741      cat <<EOF > genmake_tc_1.c      cat <<EOF > genmake_tc_1.c
# Line 719  EOF Line 766  EOF
766        print *," HELLO WORLD", nbyte        print *," HELLO WORLD", nbyte
767        end        end
768  EOF  EOF
769      $FC $FFLAGS -o genmake_tc genmake_tc_2.$FS genmake_tc_1.o >> genmake_tc.log 2>&1      echo >> genmake_warnings
770      RET_F=$?      echo "running: check_HAVE_STAT()" >> genmake_warnings
771      test -x ./genmake_tc  &&  ./genmake_tc >> genmake_tc.log 2>&1      cat genmake_tc_2.$FS >> genmake_warnings
772        COMM="$FC $FFLAGS -o genmake_tc genmake_tc_2.$FS genmake_tc_1.o"
773        echo $COMM >> genmake_warnings
774        $COMM >> genmake_tc.log 2>&1
775      RETVAL=$?      RETVAL=$?
776      if test "x$RETVAL" = x0 ; then      if test "x$RETVAL" = x0 ; then
777          HAVE_STAT=t          HAVE_STAT=t
# Line 735  check_netcdf_libs()  { Line 785  check_netcdf_libs()  {
785      if test ! "x$SKIP_NETCDF_CHECK" = x ; then      if test ! "x$SKIP_NETCDF_CHECK" = x ; then
786          return          return
787      fi      fi
788      echo "" > genmake_tnc.log      echo >> genmake_warnings
789        echo "running: check_netcdf_libs()" >> genmake_warnings
790      cat <<EOF > genmake_tnc.F      cat <<EOF > genmake_tnc.F
791        program fgennc        program fgennc
792  #include "netcdf.inc"  #include "netcdf.inc"
# Line 753  EOF Line 804  EOF
804        IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)        IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
805        end        end
806  EOF  EOF
807      echo "Executing:" > genmake_tnc.log      echo "===  genmake_tnc.F  ===" > genmake_tnc.log
808      echo "  $CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS" \      cat genmake_tnc.F >> genmake_tnc.log
809          > genmake_tnc.log      echo "===  genmake_tnc.F  ===" >> genmake_tnc.log
810      RET_CPP=f      RET_CPP=f
811      $CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS 2>/dev/null  \      COMM="$CPP $DEFINES $INCLUDES genmake_tnc.F"
812          &&  RET_CPP=t      echo "$COMM" >> genmake_tnc.log
813        $COMM > genmake_tnc.$FS 2>/dev/null  &&  RET_CPP=t
814      if test "x$RET_CPP" = xf ; then      if test "x$RET_CPP" = xf ; then
815          echo "  WARNING: CPP failed to pre-process the netcdf test." \          echo "  WARNING: CPP failed to pre-process the netcdf test." \
816              > genmake_tnc.log              >> genmake_tnc.log
817          echo "    Please check that \$INCLUDES is properly set." \          echo "    Please check that \$INCLUDES is properly set." \
818              > genmake_tnc.log              >> genmake_tnc.log
819      fi      fi
820      echo "Executing:" > genmake_tnc.log      echo "$FC $FFLAGS $FOPTIM -c genmake_tnc.$FS  \ " >> genmake_tnc.log
821      echo "  $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS" > genmake_tnc.log      echo "  &&  $LINK -o genmake_tnc.o $LIBS" >> genmake_tnc.log
     echo "  $LINK -o genmake_tnc.o $LIBS" > genmake_tnc.log  
822      $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1  \      $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1  \
823          &&  $LINK -o genmake_tnc genmake_tnc.o $LIBS >> genmake_tnc.log 2>&1          &&  $LINK -o genmake_tnc genmake_tnc.o $LIBS >> genmake_tnc.log 2>&1
824      RET_COMPILE=$?      RET_COMPILE=$?
825        cat genmake_tnc.log >> genmake_warnings
826    
827      #EH3  Remove test program execution for machines that either disallow      #EH3  Remove test program execution for machines that either disallow
828      #EH3  execution or cannot support it (eg. cross-compilers)      #EH3  execution or cannot support it (eg. cross-compilers)
# Line 783  EOF Line 835  EOF
835          HAVE_NETCDF=t          HAVE_NETCDF=t
836      else      else
837          # try again with "-lnetcdf" added to the libs          # try again with "-lnetcdf" added to the libs
838            echo "try again with added '-lnetcdf'" > genmake_tnc.log
839            echo "$CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS \ " >> genmake_tnc.log
840            echo " &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS \ " >> genmake_tnc.log
841            echo " &&  $LINK -o genmake_tnc genmake_tnc.o $LIBS -lnetcdf" >> genmake_tnc.log
842          $CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS 2>/dev/null  \          $CPP $DEFINES $INCLUDES genmake_tnc.F > genmake_tnc.$FS 2>/dev/null  \
843              &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1  \              &&  $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1  \
844              &&  $LINK -o genmake_tnc genmake_tnc.o $LIBS -lnetcdf >> genmake_tnc.log 2>&1              &&  $LINK -o genmake_tnc genmake_tnc.o $LIBS -lnetcdf >> genmake_tnc.log 2>&1
845          RET_COMPILE=$?          RET_COMPILE=$?
846            cat genmake_tnc.log >> genmake_warnings
847          if test "x$RET_COMPILE" = x0 ; then          if test "x$RET_COMPILE" = x0 ; then
848              LIBS="$LIBS -lnetcdf"              LIBS="$LIBS -lnetcdf"
849              HAVE_NETCDF=t              HAVE_NETCDF=t
         else  
             cat genmake_tnc.log >> genmake_warnings  
850          fi          fi
851      fi      fi
852      rm -f genmake_tnc*      rm -f genmake_tnc*
# Line 838  NOOPTFLAGS= Line 893  NOOPTFLAGS=
893  MPI=  MPI=
894  MPIPATH=  MPIPATH=
895  TS=  TS=
896    HAVE_TEST_L=
897    
898  # DEFINES checked by test compilation or command-line  # DEFINES checked by test compilation or command-line
899  HAVE_SYSTEM=  HAVE_SYSTEM=
900  HAVE_FDATE=  HAVE_FDATE=
901  FC_NAMEMANGLE=  FC_NAMEMANGLE=
902  HAVE_CLOC=  HAVE_CLOC=
903    HAVE_SETRLSTK=
904  HAVE_STAT=  HAVE_STAT=
905  HAVE_NETCDF=  HAVE_NETCDF=
906  HAVE_ETIME=  HAVE_ETIME=
# Line 1301  Error: The command "ln -s" failed -- ple Line 1358  Error: The command "ln -s" failed -- ple
1358  EOF  EOF
1359      exit 1      exit 1
1360  fi  fi
1361    test -L genmake_tlink > /dev/null 2>&1
1362    RETVAL=$?
1363    if test "x$RETVAL" = x0 ; then
1364        HAVE_TEST_L=t
1365    fi
1366  rm -f genmake_test_ln genmake_tlink  rm -f genmake_test_ln genmake_tlink
1367    
1368  #  Check for broken *.F/*.f handling and fix if possible  #  Check for broken *.F/*.f handling and fix if possible
# Line 1323  cat > genmake_tcomp.$FS <<EOF Line 1385  cat > genmake_tcomp.$FS <<EOF
1385        call system('echo hi')        call system('echo hi')
1386        end        end
1387  EOF  EOF
1388  $FC $FFLAGS $DEFINES -o genmake_tcomp genmake_tcomp.$FS > genmake_tcomp.log 2>&1  $FC $FFLAGS -o genmake_tcomp genmake_tcomp.$FS > genmake_tcomp.log 2>&1
1389  RETVAL=$?  RETVAL=$?
1390  if test "x$RETVAL" = x0 ; then  if test "x$RETVAL" = x0 ; then
1391      HAVE_SYSTEM=t      HAVE_SYSTEM=t
# Line 1344  cat > genmake_tcomp.$FS <<EOF Line 1406  cat > genmake_tcomp.$FS <<EOF
1406        print *, string        print *, string
1407        end        end
1408  EOF  EOF
1409  $FC $FFLAGS $DEFINES -o genmake_tcomp genmake_tcomp.$FS > genmake_tcomp.log 2>&1  $FC $FFLAGS -o genmake_tcomp genmake_tcomp.$FS > genmake_tcomp.log 2>&1
1410  RETVAL=$?  RETVAL=$?
1411  if test "x$RETVAL" = x0 ; then  if test "x$RETVAL" = x0 ; then
1412      HAVE_FDATE=t      HAVE_FDATE=t
# Line 1366  cat > genmake_tcomp.$FS <<EOF Line 1428  cat > genmake_tcomp.$FS <<EOF
1428        print *, tarray        print *, tarray
1429        end        end
1430  EOF  EOF
1431  $FC $FFLAGS $DEFINES -o genmake_tcomp genmake_tcomp.$FS > genmake_tcomp.log 2>&1  $FC $FFLAGS -o genmake_tcomp genmake_tcomp.$FS > genmake_tcomp.log 2>&1
1432  RETVAL=$?  RETVAL=$?
1433  if test "x$RETVAL" = x0 ; then  if test "x$RETVAL" = x0 ; then
1434      HAVE_ETIME=t      HAVE_ETIME=t
# Line 1387  else Line 1449  else
1449  fi  fi
1450  rm -f genmake_t*  rm -f genmake_t*
1451    
1452    printf "  Can we unlimit the stack size using $FC...  "
1453    check_HAVE_SETRLSTK
1454    if test "x$HAVE_SETRLSTK" != x ; then
1455        echo "yes"
1456    else
1457        echo "no"
1458    fi
1459    rm -f genmake_t*
1460    
1461  printf "  Can we use stat() through C calls...  "  printf "  Can we use stat() through C calls...  "
1462  check_HAVE_STAT  check_HAVE_STAT
1463  if test "x$HAVE_STAT" != x ; then  if test "x$HAVE_STAT" != x ; then
# Line 1874  for d in $alldirs ; do Line 1945  for d in $alldirs ; do
1945      for sf in $sfiles ; do      for sf in $sfiles ; do
1946          if test ! -r ".links.tmp/$sf" ; then          if test ! -r ".links.tmp/$sf" ; then
1947              if test -f "$d/$sf" ; then              if test -f "$d/$sf" ; then
1948                    ignore_f=f
1949                  case $d/$sf in                  case $d/$sf in
1950                    ./$PACKAGES_DOT_H)                    ./$PACKAGES_DOT_H)
1951                          ;;                          ;;
# Line 1884  for d in $alldirs ; do Line 1956  for d in $alldirs ; do
1956                    ./BUILD_INFO.h)                    ./BUILD_INFO.h)
1957                          ;;                          ;;
1958                    *)                    *)
1959                          touch .links.tmp/$sf                          #  For the local directory *ONLY*,
1960                          deplist="$deplist $sf"                          #  ignore all soft-links
1961                            if test "x$HAVE_TEST_L" = xt -a "x$d" = x. -a -L $sf ; then
1962                                ignore_f=t
1963                            else
1964                                touch .links.tmp/$sf
1965                                deplist="$deplist $sf"
1966                            fi
1967                          ;;                          ;;
1968                  esac                  esac
1969                  extn=`echo $sf | $AWK -F. '{print $NF}'`                  if test "x$ignore_f" = xf ; then
1970                  case $extn in                      extn=`echo $sf | $AWK -F. '{print $NF}'`
1971                      F)                      case $extn in
1972                          echo    " \\"  >> srclist.inc                          F)
1973                          printf " $sf" >> srclist.inc                              echo    " \\"  >> srclist.inc
1974                          ;;                              printf " $sf" >> srclist.inc
1975                      F90)                              ;;
1976                          echo    " \\"  >> f90srclist.inc                          F90)
1977                          printf " $sf" >> f90srclist.inc                              echo    " \\"  >> f90srclist.inc
1978                          ;;                              printf " $sf" >> f90srclist.inc
1979                      c)                              ;;
1980                          echo    " \\"  >> csrclist.inc                          c)
1981                          printf " $sf" >> csrclist.inc                              echo    " \\"  >> csrclist.inc
1982                          ;;                              printf " $sf" >> csrclist.inc
1983                      h)                              ;;
1984                          echo    " \\"  >> hlist.inc                          h)
1985                          printf " $sf" >> hlist.inc                              echo    " \\"  >> hlist.inc
1986                          ;;                              printf " $sf" >> hlist.inc
1987                      flow)                              ;;
1988                          echo    " \\"  >> ad_flow_files.inc                          flow)
1989                          printf " $sf" >> ad_flow_files.inc                              echo    " \\"  >> ad_flow_files.inc
1990                          ;;                              printf " $sf" >> ad_flow_files.inc
1991                  esac                              ;;
1992                        esac
1993                    fi
1994              fi              fi
1995          fi          fi
1996      done      done
# Line 2061  depend: Line 2141  depend:
2141          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)          \$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE)
2142          -rm -f makedepend.out          -rm -f makedepend.out
2143    
2144    lib: libmitgcmuv.a
2145    
2146    libmitgcmuv.a: \$(OBJFILES)
2147            ar rcv libmitgcmuv.a \$(OBJFILES)
2148    
2149  links: \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(SPECIAL_FILES)  links: \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(SPECIAL_FILES)
2150    
2151  small_f: \$(F77FILES) \$(F90FILES)  small_f: \$(F77FILES) \$(F90FILES)

Legend:
Removed from v.1.129  
changed lines
  Added in v.1.136

  ViewVC Help
Powered by ViewVC 1.1.22