/[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.182 by utke, Wed Jan 14 17:02:01 2009 UTC revision 1.192 by jmc, Wed Apr 22 21:03:52 2009 UTC
# Line 611  Usage: "$0" [OPTIONS] Line 611  Usage: "$0" [OPTIONS]
611            set to PATH. i.e. Include files from \$PATH/include, link to libraries            set to PATH. i.e. Include files from \$PATH/include, link to libraries
612            from \$PATH/lib and use binaries from \$PATH/bin.            from \$PATH/lib and use binaries from \$PATH/bin.
613    
614        -omp | --omp
615              Activate OpenMP code + use Compiler option OMPFLAG
616        -omp=OMPFLAG | --omp=OMPFLAG
617              Activate OpenMP code + use Compiler option OMPFLAG
618    
619      -es | --es | -embed-source | --embed-source      -es | --es | -embed-source | --embed-source
620            Embed a tarball containing the full source code            Embed a tarball containing the full source code
621            (including the Makefile, etc.) used to build the            (including the Makefile, etc.) used to build the
# Line 1058  NOOPTFILES= Line 1063  NOOPTFILES=
1063  NOOPTFLAGS=  NOOPTFLAGS=
1064  MPI=  MPI=
1065  MPIPATH=  MPIPATH=
1066    OMP=
1067    OMPFLAG=
1068  TS=  TS=
1069  PAPIS=  PAPIS=
1070  PCLS=  PCLS=
# Line 1125  TAMC_EXTRA= Line 1132  TAMC_EXTRA=
1132    
1133  #  The following state can be set directly by command-line switches  #  The following state can be set directly by command-line switches
1134  gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE"  gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE"
1135  gm_s2="FC CPP IEEE TS PAPIS PCLS PAPI PCL HPMT GSL DEVEL MPI JAM DUMPSTATE STANDARDDIRS"  gm_s2="FC CPP IEEE TS PAPIS PCLS PAPI PCL HPMT GSL DEVEL MPI OMP DUMPSTATE STANDARDDIRS"
1136    
1137  #  The following state is not directly set by command-line switches  #  The following state is not directly set by command-line switches
1138  gm_s3="LN S64 KPP LINK PACKAGES MAKEDEPEND PDEPEND PDEFAULT INCLUDES FFLAGS FOPTIM FEXTRAFLAGS"  gm_s3="LN S64 KPP LINK PACKAGES MAKEDEPEND PDEPEND PDEFAULT INCLUDES FFLAGS FOPTIM FEXTRAFLAGS"
# Line 1166  else Line 1173  else
1173  fi  fi
1174    
1175  #echo "$0::$1:$2:$3:$4:$5:$6:$7:"  #echo "$0::$1:$2:$3:$4:$5:$6:$7:"
 #OPTIONS=  
 #n=0  
 #for i ; do  
 #   echo "$i  $n"  
 #   setvar="OPTIONS[$n]='$i'"  
 #   #  echo "  $setvar"  
 #   eval "$setvar"  
 #   n=$(( $n + 1 ))  
 #done  
1176  #parse_options  #parse_options
1177  ac_prev=  ac_prev=
1178  for ac_option in "$@" ; do  for ac_option in "$@" ; do
# Line 1326  for ac_option in "$@" ; do Line 1324  for ac_option in "$@" ; do
1324              MPIPATH=$ac_optarg              MPIPATH=$ac_optarg
1325              MPI=true ;;              MPI=true ;;
1326                    
1327  #       -jam | --jam)          -omp | --omp)
1328  #           JAM=1 ;;              OMP=true ;;
1329  #       -nojam | --nojam)          -omp=* | --omp=*)
1330  #           JAM=0 ;;              OMPFLAG=$ac_optarg
1331                OMP=true ;;
1332                    
1333          -ds | --ds)          -ds | --ds)
1334              DUMPSTATE=t ;;              DUMPSTATE=t ;;
# Line 1567  if test ! "x$MPI" = x ; then Line 1566  if test ! "x$MPI" = x ; then
1566        echo "  Turning on MPI cpp macros"        echo "  Turning on MPI cpp macros"
1567        DEFINES="$DEFINES -DALLOW_USE_MPI -DALWAYS_USE_MPI"        DEFINES="$DEFINES -DALLOW_USE_MPI -DALWAYS_USE_MPI"
1568  fi  fi
1569    if test ! "x$OMP" = x ; then
1570          echo "  Add OMPFLAG and turn on OpenMP cpp macros"
1571          FFLAGS="$FFLAGS $OMPFLAG"
1572          F90FLAGS="$F90FLAGS $OMPFLAG"
1573          DEFINES="$DEFINES -DUSE_OMP_THREADING"
1574    fi
1575    
1576  if test ! "x$TS" = x ; then  if test ! "x$TS" = x ; then
1577        echo "  Turning on timing per timestep"        echo "  Turning on timing per timestep"
# Line 1775  fi Line 1780  fi
1780    
1781    
1782  printf "\n===  Setting defaults  ===\n"  printf "\n===  Setting defaults  ===\n"
1783  printf "  Adding MODS directories:  "  printf "  Adding MODS directories: "
1784  for d in $MODS ; do  for d in $MODS ; do
1785      if test ! -d $d ; then      if test ! -d $d ; then
1786          echo          echo
1787          echo "Error: MODS directory \"$d\" not found!"          echo "Error: MODS directory \"$d\" not found!"
1788          exit 1          exit 1
1789      else      else
1790          printf " $d"          printf "$d "
1791          SOURCEDIRS="$SOURCEDIRS $d"          SOURCEDIRS="$SOURCEDIRS $d"
1792          INCLUDEDIRS="$INCLUDEDIRS $d"          INCLUDEDIRS="$INCLUDEDIRS $d"
1793      fi      fi
# Line 2462  echo "" >> F90srclist.tmp Line 2467  echo "" >> F90srclist.tmp
2467  echo "" >> hsrclist.tmp  echo "" >> hsrclist.tmp
2468  echo "" >> ad_flow_files.tmp  echo "" >> ad_flow_files.tmp
2469    
2470    CMDLINE=$0
2471    for xx in "$@" ; do nw=`echo $xx | wc -w`
2472        if test $nw = '1' ; then CMDLINE="$CMDLINE $xx"
2473                            else CMDLINE="$CMDLINE '$xx'" ; fi
2474    done
2475    
2476  if test -f $MAKEFILE ; then  if test -f $MAKEFILE ; then
2477      mv -f $MAKEFILE "$MAKEFILE.bak"      mv -f $MAKEFILE "$MAKEFILE.bak"
2478  fi  fi
# Line 2471  echo "#    $MACHINE" >> $MAKEFILE Line 2482  echo "#    $MACHINE" >> $MAKEFILE
2482  echo "# This makefile was generated automatically on" >> $MAKEFILE  echo "# This makefile was generated automatically on" >> $MAKEFILE
2483  echo "#    $THISDATE" >> $MAKEFILE  echo "#    $THISDATE" >> $MAKEFILE
2484  echo "# by the command:" >> $MAKEFILE  echo "# by the command:" >> $MAKEFILE
2485  echo "#    $0 $G2ARGS" >> $MAKEFILE  echo "#    $CMDLINE"  >> $MAKEFILE
2486  echo "# executed by:" >> $MAKEFILE  echo "# executed by:" >> $MAKEFILE
2487  echo "#    ${THISUSER}@${THISHOST}:${THISCWD}" >> $MAKEFILE  echo "#    ${THISUSER}@${THISHOST}:${THISCWD}" >> $MAKEFILE
2488    
# Line 2528  else Line 2539  else
2539      echo "EMBEDDED_FILES = " >>$MAKEFILE      echo "EMBEDDED_FILES = " >>$MAKEFILE
2540  fi  fi
2541    
 #  Note: figure out some way to add Hyades JAM libraries here  
2542  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2543  # Unix ln (link)  # Unix ln (link)
2544  LN = ${LN}  LN = ${LN}
# Line 2727  EOF Line 2737  EOF
2737  #===  Automatic Differentiation Rules  ===  #===  Automatic Differentiation Rules  ===
2738  #===  for TAMC/TAF  ======================  #===  for TAMC/TAF  ======================
2739    
2740  if test "x$OPENAD" == x ; then  if test "x$OPENAD" = x ; then
2741    
2742  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2743    
# Line 2768  adall: \$(EXE_AD) Line 2778  adall: \$(EXE_AD)
2778  adtaf: ad_taf_output.$FS  adtaf: ad_taf_output.$FS
2779  adtamc: ad_tamc_output.$FS  adtamc: ad_tamc_output.$FS
2780    
2781  ad_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES)  ad_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES) \$(AD_FLOW_FILES)
2782          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ad_config.template          @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ad_config.template
2783          cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h          cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
2784          -rm -f ad_config.template          -rm -f ad_config.template
# Line 3029  ad_input_code_sf.w2f.pre.xaif : ad_input Line 3039  ad_input_code_sf.w2f.pre.xaif : ad_input
3039          ./whirl2xaif -s -n --debug 1 -o \$@ \$<          ./whirl2xaif -s -n --debug 1 -o \$@ \$<
3040    
3041  # XAIF -> XAIF'  # XAIF -> XAIF'
3042  ad_input_code_sf.w2f.pre.xb.xaif : ad_input_code_sf.w2f.pre.xaif xaif.xsd xaif_base.xsd xaif_inlinable_intrinsics.xsd xaif_derivative_propagator.xsd xaif_output.xsd openad_adm  ad_input_code_sf.w2f.pre.xb.xaif : ad_input_code_sf.w2f.pre.xaif xaif.xsd xaif_base.xsd xaif_inlinable_intrinsics.xsd xaif_derivative_propagator.xsd xaif_output.xsd oadDriver
3043          ./openad_adm -f -t forward_step -i \$< -c \${XAIFSCHEMAROOT}/schema/examples/inlinable_intrinsics.xaif -o \$@ -I -r          ./oadDriver -f -t forward_step -i \$< -c \${XAIFSCHEMAROOT}/schema/examples/inlinable_intrinsics.xaif -o \$@ -I -r
3044    
3045  # XAIF' -> WHIRL'  # XAIF' -> WHIRL'
3046  ad_input_code_sf.w2f.pre.xb.x2w.B : ad_input_code_sf.w2f.pre.xb.xaif xaif2whirl  ad_input_code_sf.w2f.pre.xb.x2w.B : ad_input_code_sf.w2f.pre.xb.xaif xaif2whirl
# Line 3044  ad_input_code_sf.w2f.pre.xb.x2w.w2f.f$FS Line 3054  ad_input_code_sf.w2f.pre.xb.x2w.w2f.f$FS
3054  ad_input_code_sf.w2f.pre.xb.x2w.w2f.td.f$FS90: ad_input_code_sf.w2f.pre.xb.x2w.w2f.f$FS90 ../OAD_support/insertTemplateDir.bash  ad_input_code_sf.w2f.pre.xb.x2w.w2f.td.f$FS90: ad_input_code_sf.w2f.pre.xb.x2w.w2f.f$FS90 ../OAD_support/insertTemplateDir.bash
3055          ../OAD_support/insertTemplateDir.bash \$< \$@          ../OAD_support/insertTemplateDir.bash \$< \$@
3056    
3057    PPEXTRAS=\$(wildcard ../OAD_support/ad_template.*.F) ../OAD_support/ad_inline.F
3058  # postprocess F'  # postprocess F'
3059  ad_input_code_sf.w2f.pre.xb.x2w.w2f.td.pp.f$FS90: ad_input_code_sf.w2f.pre.xb.x2w.w2f.td.f$FS90 multi-pp.pl ../OAD_support/ad_inline.f \$(wildcard ../OAD_support/ad_template.*.f)  ad_input_code_sf.w2f.pre.xb.x2w.w2f.td.pp.f$FS90: ad_input_code_sf.w2f.pre.xb.x2w.w2f.td.f$FS90 postProcess.py \$(PPEXTRAS:.F=.f)
3060          perl multi-pp.pl -inline=../OAD_support/ad_inline.f \$<          ./postProcess.py -m r -i ../OAD_support/ad_inline.f -o \$@ \$<
         # the postprocessor still gets the name wrong  
         cat \$<.pp | sed 's/RETURN//' > \$@  
3061    
3062  # extract all transformed modules  # extract all transformed modules
3063  all_mods.xb.x2w.w2f.pp.f$FS90: ad_input_code_sf.w2f.pre.xb.x2w.w2f.td.pp.f$FS90  all_mods.xb.x2w.w2f.pp.f$FS90: ad_input_code_sf.w2f.pre.xb.x2w.w2f.td.pp.f$FS90
# Line 3075  mfef90: Line 3084  mfef90:
3084  whirl2xaif xaif2whirl:  whirl2xaif xaif2whirl:
3085          \$(LN) \${OPENADFORTTK}/bin/\$@ .          \$(LN) \${OPENADFORTTK}/bin/\$@ .
3086    
3087  %.pl:  preProcess.py postProcess.py:
         \$(LN) \${OPENADFORTTK}/bin/\$@ .  
   
 preProcess.py:  
3088          \$(LN) \${OPENADFORTTK_BASE}/tools/SourceProcessing/\$@ .          \$(LN) \${OPENADFORTTK_BASE}/tools/SourceProcessing/\$@ .
3089    
3090  whirl2f whirl2f_be:  whirl2f whirl2f_be:
3091          \$(LN) \${OPEN64ROOT}/whirl2f/\$@ .          \$(LN) \${OPEN64ROOT}/whirl2f/\$@ .
3092    
3093  openad_adm:  oadDriver:
3094          \$(LN) \${XAIFBOOSTERROOT}/xaifBooster/algorithms/BasicBlockPreaccumulationReverse/test/t \$@          \$(LN) \${XAIFBOOSTERROOT}/xaifBooster/algorithms/BasicBlockPreaccumulationReverse/driver/oadDriver \$@
3095    
3096  # ============ end OpenAD specific section ==============  # ============ end OpenAD specific section ==============
3097    

Legend:
Removed from v.1.182  
changed lines
  Added in v.1.192

  ViewVC Help
Powered by ViewVC 1.1.22