/[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.84 by edhill, Mon Jul 12 15:49:08 2004 UTC revision 1.90 by edhill, Tue Jul 27 20:59:19 2004 UTC
# Line 1  Line 1 
1  #! /usr/bin/env sh  #! /usr/bin/env bash
2  #  #
3  # $Header$  # $Header$
4  #  #
# Line 122  EOF Line 122  EOF
122        stop        stop
123        end        end
124  EOF  EOF
125      test -e Makefile  &&  mv -f Makefile Makefile.bak      test -f Makefile  &&  mv -f Makefile Makefile.bak
126      cat <<EOF >> Makefile      cat <<EOF >> Makefile
127  %.$tfs : %.F  %.$tfs : %.F
128  .SUFFIXES:  .SUFFIXES:
# Line 131  genmake_hello.$tfs: genmake_hello.F Line 131  genmake_hello.$tfs: genmake_hello.F
131  EOF  EOF
132      $MAKE "genmake_hello."$tfs > /dev/null 2>&1      $MAKE "genmake_hello."$tfs > /dev/null 2>&1
133      RETVAL=$?      RETVAL=$?
134      if test "x$RETVAL" != x0 -o ! -e "genmake_hello."$tfs ; then      if test "x$RETVAL" != x0 -o ! -f "genmake_hello."$tfs ; then
135          if test "x$FS" = x ; then          if test "x$FS" = x ; then
136              FS='for'              FS='for'
137              FS90='fr9'              FS90='fr9'
# Line 149  EOF Line 149  EOF
149          fi          fi
150      fi      fi
151      rm -f genmake_hello.* Makefile      rm -f genmake_hello.* Makefile
152      test -e Makefile  &&  mv -f Makefile.bak Makefile      test -f Makefile  &&  mv -f Makefile.bak Makefile
153    
154      #  If we make it here, use the extensions      #  If we make it here, use the extensions
155      FS=$tfs      FS=$tfs
# Line 179  look_for_makedepend()  { Line 179  look_for_makedepend()  {
179      #    4) fall back to the buggy local xmakedpend script      #    4) fall back to the buggy local xmakedpend script
180      #      #
181      if test "x${MAKEDEPEND}" = x ; then      if test "x${MAKEDEPEND}" = x ; then
182        which makedepend > /dev/null 2>&1          which makedepend > /dev/null 2>&1
183        RV0=$?          RV0=$?
184        cat <<EOF >> genmake_tc.f          cat <<EOF >> genmake_tc.f
185        program test        program test
186        write(*,*) 'test'        write(*,*) 'test'
187        stop        stop
188        end        end
189  EOF  EOF
190        makedepend genmake_tc.f > /dev/null 2>&1          makedepend genmake_tc.f > /dev/null 2>&1
191        RV1=$?          RV1=$?
192        if test ! "x${RV0}${RV1}" = x00 ; then          if test "x${RV0}${RV1}" = x00 ; then
193           echo "    a system-default makedepend was not found."              MAKEDEPEND=makedepend
194            else
195           #  Try to build the cyrus impl              echo "    a system-default makedepend was not found."
196           rm -f ./genmake_cy_md              
197           (              #  Try to build the cyrus implementation
198               cd $ROOTDIR/tools/cyrus-imapd-makedepend  \              build_cyrus_makedepend
199                   &&  ./configure > /dev/null 2>&1  \              RETVAL=$?
200                   &&  make > /dev/null 2>&1              if test "x$RETVAL" != x0 ; then
201               if test -x ./makedepend.exe ; then                  MAKEDEPEND='$(TOOLSDIR)/xmakedepend'
202                   $LN ./makedepend.exe ./makedepend              fi
203               fi              rm -f ./genmake_cy_md
204               ./makedepend ifparser.c > /dev/null 2>&1  \          fi
205                   &&  echo "true"      else
206           ) > ./genmake_cy_md          #  echo "MAKEDEPEND=${MAKEDEPEND}"
207           grep true ./genmake_cy_md > /dev/null 2>&1          echo "${MAKEDEPEND}" | grep -i cyrus > /dev/null 2>&1
208           RETVAL=$?          RETVAL=$?
209           if test "x$RETVAL" = x0 ; then          if test x"$RETVAL" = x0 ; then
210               MAKEDEPEND='$(TOOLSDIR)/cyrus-imapd-makedepend/makedepend'              build_cyrus_makedepend
211           else          fi
              MAKEDEPEND='$(TOOLSDIR)/xmakedepend'  
          fi  
          rm -f ./genmake_cy_md  
       fi  
212      fi      fi
213  }  }
214    
215    
216    build_cyrus_makedepend()  {
217        rm -f ./genmake_cy_md
218        (
219            cd $ROOTDIR/tools/cyrus-imapd-makedepend  \
220                &&  ./configure > /dev/null 2>&1  \
221                &&  make > /dev/null 2>&1
222            if test -x ./makedepend.exe ; then
223                $LN ./makedepend.exe ./makedepend
224            fi
225            ./makedepend ifparser.c > /dev/null 2>&1  \
226                &&  echo "true"
227        ) > ./genmake_cy_md
228        grep true ./genmake_cy_md > /dev/null 2>&1
229        RETVAL=$?
230        rm -f ./genmake_cy_md
231        if test "x$RETVAL" = x0 ; then
232            MAKEDEPEND='$(TOOLSDIR)/cyrus-imapd-makedepend/makedepend'
233            return 0
234        else
235            echo "WARNING: unable to build cyrus-imapd-makedepend"
236            return 1
237        fi
238    }
239    
240  # Guess possible config options for this host  # Guess possible config options for this host
241  find_possible_configs()  {  find_possible_configs()  {
242    
# Line 481  EOF Line 501  EOF
501    
502  #  Build a CPP macro to automate calling C routines from FORTRAN  #  Build a CPP macro to automate calling C routines from FORTRAN
503  get_fortran_c_namemangling()  {  get_fortran_c_namemangling()  {
504    
505        #echo "FC_NAMEMANGLE = \"$FC_NAMEMANGLE\""
506        if test ! "x$FC_NAMEMANGLE" = x ; then
507            return 0
508        fi
509    
510      default_nm="#define FC_NAMEMANGLE(X) X ## _"      default_nm="#define FC_NAMEMANGLE(X) X ## _"
511            
512      cat > genmake_test.c <<EOF      cat > genmake_test.c <<EOF
# Line 617  check_netcdf_libs()  { Line 643  check_netcdf_libs()  {
643        IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)        IF (iret .NE. NF_NOERR) write(*,*) NF_STRERROR(iret)
644        end        end
645  EOF  EOF
646      $CPP genmake_tnc.for > genmake_tnc.f  \      #echo "$CPP $DEFINES $INCLUDES"
647        $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f  \
648          &&  $FC $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.f $LIBS >> genmake_tnc.log 2>&1          &&  $FC $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.f $LIBS >> genmake_tnc.log 2>&1
649      RET_COMPILE=$?      RET_COMPILE=$?
650      test -x ./genmake_tnc  &&  ./genmake_tnc >> genmake_tnc.log 2>&1      test -x ./genmake_tnc  &&  ./genmake_tnc >> genmake_tnc.log 2>&1
# Line 626  EOF Line 653  EOF
653          HAVE_NETCDF=t          HAVE_NETCDF=t
654      else      else
655          # try again with "-lnetcdf" added to the libs          # try again with "-lnetcdf" added to the libs
656          $CPP genmake_tnc.for > genmake_tnc.f  \          $CPP $DEFINES $INCLUDES genmake_tnc.for > genmake_tnc.f  \
657              &&  $FC $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.f \              &&  $FC $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.f \
658              $LIBS -lnetcdf >> genmake_tnc_2.log 2>&1              $LIBS -lnetcdf >> genmake_tnc_2.log 2>&1
659          RET_COMPILE=$?          RET_COMPILE=$?
# Line 663  PACKAGES= Line 690  PACKAGES=
690  ENABLE=  ENABLE=
691  DISABLE=  DISABLE=
692  MAKEFILE=  MAKEFILE=
693  MAKEDEPEND=  #MAKEDEPEND=
694  PDEPEND=  PDEPEND=
695  DUMPSTATE=t  DUMPSTATE=t
696  PDEFAULT=  PDEFAULT=
# Line 769  for i in . $MODS ; do Line 796  for i in . $MODS ; do
796      fi      fi
797  done  done
798  printf "  getting local config information:  "  printf "  getting local config information:  "
799  if test -e $gm_local ; then  if test -f $gm_local ; then
800      echo "using $gm_local"      echo "using $gm_local"
801      . $gm_local      . $gm_local
802      # echo "DISABLE=$DISABLE"      # echo "DISABLE=$DISABLE"
# Line 790  fi Line 817  fi
817  #done  #done
818  #parse_options  #parse_options
819  ac_prev=  ac_prev=
820  for ac_option ; do  for ac_option in $@ ; do
821    
822      G2ARGS="$G2ARGS \"$ac_option\""      G2ARGS="$G2ARGS \"$ac_option\""
823    
# Line 958  if test -f ./.genmakerc ; then Line 985  if test -f ./.genmakerc ; then
985  fi  fi
986    
987  if test "x${ROOTDIR}" = x ; then  if test "x${ROOTDIR}" = x ; then
988      if test "${PWD##/*/}" = "bin" -a -d ../model -a -d ../eesup -a -d ../pkg ; then      tmp=`echo $PWD | sed -e 's/\// /g' | awk '{print $NR}'`
989        if test "x$tmp" = "xbin" -a -d ../model -a -d ../eesup -a -d ../pkg ; then
990          ROOTDIR=".."          ROOTDIR=".."
991      else      else
992          for d in . .. ../.. ../../.. ../../../.. ../../../../.. ; do          for d in . .. ../.. ../../.. ../../../.. ../../../../.. ; do
# Line 1220  if test "x${PLATFORM}" = x ; then Line 1248  if test "x${PLATFORM}" = x ; then
1248  fi  fi
1249    
1250  if test "x${EXEDIR}" = x ; then  if test "x${EXEDIR}" = x ; then
1251      if test "${PWD##/*/}" = "bin" -a -d ../exe -a $ROOTDIR = .. ; then      tmp=`echo $PWD | sed -e 's/\// /g' | awk '{print $NR}'`
1252        if test "x$tmp" = "xbin" -a -d ../exe -a $ROOTDIR = .. ; then
1253          EXEDIR=../exe          EXEDIR=../exe
1254      else      else
1255          EXEDIR=.          EXEDIR=.
# Line 1338  else Line 1367  else
1367              PACKAGES="$PACKAGES $i"              PACKAGES="$PACKAGES $i"
1368          done          done
1369          echo "    before group expansion packages are: $PACKAGES"          echo "    before group expansion packages are: $PACKAGES"
1370          while ! expand_pkg_groups; do echo > /dev/null; done          RET=1
1371            while test $RET = 1 ; do expand_pkg_groups; RET=$?; done
1372          echo "    after group expansion packages are:  $PACKAGES"          echo "    after group expansion packages are:  $PACKAGES"
1373      fi      fi
1374  fi  fi
# Line 1447  while test "x$ck" != xtt ; do Line 1477  while test "x$ck" != xtt ; do
1477              echo "  the dependency rules for \"$dname\""              echo "  the dependency rules for \"$dname\""
1478              exit 1              exit 1
1479          fi          fi
1480          i=$(( $i + 1 ))          i=`echo "$i + 1" | bc -l`
1481            #i=$(( $i + 1 ))
1482      done      done
1483      ck=$ck"t"      ck=$ck"t"
1484  done  done
# Line 1609  echo Line 1640  echo
1640  echo "===  Creating the Makefile  ==="  echo "===  Creating the Makefile  ==="
1641  echo "  setting INCLUDES"  echo "  setting INCLUDES"
1642  for i in $INCLUDEDIRS ; do  for i in $INCLUDEDIRS ; do
1643      if ! test -d $i ; then      if test ! -d $i ; then
 #       INCLUDES="$INCLUDES -I$i"  
 #   else  
1644          echo "Warning: can't find INCLUDEDIRS=\"$i\""          echo "Warning: can't find INCLUDEDIRS=\"$i\""
1645      fi      fi
1646  done  done
# Line 1686  echo "" >> f90srclist.inc Line 1715  echo "" >> f90srclist.inc
1715  echo "" >> hlist.inc  echo "" >> hlist.inc
1716  echo "" >> ad_flow_files.inc  echo "" >> ad_flow_files.inc
1717    
1718  if test -e $MAKEFILE ; then  if test -f $MAKEFILE ; then
1719      mv -f $MAKEFILE "$MAKEFILE.bak"      mv -f $MAKEFILE "$MAKEFILE.bak"
1720  fi  fi
1721  echo "  Writing makefile: $MAKEFILE"  echo "  Writing makefile: $MAKEFILE"

Legend:
Removed from v.1.84  
changed lines
  Added in v.1.90

  ViewVC Help
Powered by ViewVC 1.1.22