/[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.139 by ce107, Thu Dec 22 01:22:27 2005 UTC revision 1.142 by edhill, Thu Feb 9 20:19:20 2006 UTC
# Line 248  build_cyrus_makedepend()  { Line 248  build_cyrus_makedepend()  {
248      fi      fi
249  }  }
250    
251    
252    build_embed_encode()
253    {
254        printf "  building the embed-encode utility...  "
255        if test ! -e "$ROOTDIR/tools/embed_encode/encode_files" ; then
256            if test ! -d "$ROOTDIR/tools/embed_encode" ; then
257                echo
258                echo "    Error: can't locate \"$ROOTDIR/tools/embed_encode\""
259                echo
260                EMBED_SRC=f
261                return 1
262            fi
263            clist="cc gcc c89 $CC"
264            for ic in $clist ; do
265                comm="$ic -o encode_files encode_files.c"
266                ( cd $ROOTDIR/tools/embed_encode && $comm ) > /dev/null 2>&1
267                RETVAL=$?
268                if test "x$RETVAL" = x0 ; then
269                    echo "OK"
270                    DEFINES="$DEFINES -DHAVE_EMBED_SRC"
271                    return 0
272                fi
273            done
274            echo
275            echo "    Error: unable to build $ROOTDIR/embed_encode/encode_files"
276            echo "      so it has been disabled"
277            echo
278            EMBED_SRC=f
279            return 1
280        fi
281        echo "OK"
282        DEFINES="$DEFINES -DHAVE_EMBED_SRC"
283    }
284    
285    
286  # Guess possible config options for this host  # Guess possible config options for this host
287  find_possible_configs()  {  find_possible_configs()  {
288    
# Line 556  Usage: "$0" [OPTIONS] Line 591  Usage: "$0" [OPTIONS]
591            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
592            from \$PATH/lib and use binaries from \$PATH/bin.            from \$PATH/lib and use binaries from \$PATH/bin.
593    
594        -es | --es | -embed-source | --embed-source
595              Embed a tarball containing the full source code
596              (including the Makefile, etc.) used to build the
597              executable [off by default]
598    
599      -bash NAME      -bash NAME
600            Explicitly specify the Bourne or BASH shell to use            Explicitly specify the Bourne or BASH shell to use
601    
# Line 990  BASH= Line 1030  BASH=
1030  PWD=`pwd`  PWD=`pwd`
1031  test "x$MAKE" = x  &&  MAKE=make  test "x$MAKE" = x  &&  MAKE=make
1032  test "x$AWK" = x   &&  AWK=awk  test "x$AWK" = x   &&  AWK=awk
1033    EMBED_SRC=
1034  THISHOST=`hostname`  THISHOST=`hostname`
1035  THISCWD=`pwd`  THISCWD=`pwd`
1036  THISDATE=`date`  THISDATE=`date`
# Line 1244  for ac_option in "$@" ; do Line 1285  for ac_option in "$@" ; do
1285          -ignoretime | -ignore_time | --ignoretime | --ignore_time)          -ignoretime | -ignore_time | --ignoretime | --ignore_time)
1286              IGNORE_TIME="-DIGNORE_TIME" ;;              IGNORE_TIME="-DIGNORE_TIME" ;;
1287    
1288            -es | --es | -embed-source | --embed-source)
1289                EMBED_SRC=t ;;
1290    
1291          -*)          -*)
1292              echo "Error: unrecognized option: "$ac_option              echo "Error: unrecognized option: "$ac_option
1293              usage              usage
# Line 1576  if test "x$HAVE_CLOC" != x ; then Line 1620  if test "x$HAVE_CLOC" != x ; then
1620      echo "yes"      echo "yes"
1621  else  else
1622      echo "no"      echo "no"
1623        if test "x$EMBED_SRC" = xt ; then
1624            echo "    WARNING: you requested file embedding but it has"
1625            echo "      been disabled since C code cannot be called"
1626            EMBED_SRC=
1627        fi
1628  fi  fi
1629  rm -f genmake_t*  rm -f genmake_t*
1630    
# Line 1615  else Line 1664  else
1664  fi  fi
1665  DEFINES="$DEFINES $IGNORE_TIME"  DEFINES="$DEFINES $IGNORE_TIME"
1666    
1667    if test "x$EMBED_SRC" = xt ; then
1668        build_embed_encode
1669    fi
1670    if test "x$EMBED_SRC" = xt ; then
1671        ENABLE="$ENABLE embed_files"
1672    fi
1673    
1674    
1675  printf "\n===  Setting defaults  ===\n"  printf "\n===  Setting defaults  ===\n"
1676  printf "  Adding MODS directories:  "  printf "  Adding MODS directories:  "
1677  for d in $MODS ; do  for d in $MODS ; do
# Line 2066  for i in $INCLUDEDIRS ; do Line 2123  for i in $INCLUDEDIRS ; do
2123      fi      fi
2124  done  done
2125    
 echo "  Creating the pseudo-MPI include directory"  
2126  if test ! "x$DIVA" = x ; then  if test ! "x$DIVA" = x ; then
2127        echo "  Creating the pseudo-MPI include directory"
2128      INCLUDES="-I./mpi_headers $INCLUDES"      INCLUDES="-I./mpi_headers $INCLUDES"
2129      rm -rf ./mpi_headers      rm -rf ./mpi_headers
2130      mkdir -p ./mpi_headers      mkdir -p ./mpi_headers
# Line 2094  fi Line 2151  fi
2151  echo "  Determining the list of source and include files"  echo "  Determining the list of source and include files"
2152  rm -rf .links.tmp  rm -rf .links.tmp
2153  mkdir .links.tmp  mkdir .links.tmp
2154    touch .links.tmp/foo
2155    if test ! -r ".links.tmp/foo" ; then
2156        echo
2157        echo "ERROR : something is wrong with your directory permissions or"
2158        echo "   your user file-creation mask (\"umask\") since creating a"
2159        echo "   sub-dir, touch-ing a file within it, and then reading it is"
2160        echo "   not working.  Please try setting your umask to something"
2161        echo "   sane such as:"
2162        echo
2163        echo "      umask 0002"
2164        echo
2165        echo "   and please verify that you have the proper permissions for"
2166        echo "   creating sub-directories and then reading files created"
2167        echo "   within them."
2168        echo
2169        exit 1
2170    fi
2171    rm -f .links.tmp/foo
2172  echo "# This section creates symbolic links" > srclinks.tmp  echo "# This section creates symbolic links" > srclinks.tmp
2173  echo "" >> srclinks.tmp  echo "" >> srclinks.tmp
2174  printf 'SRCFILES = '    > srclist.inc  printf 'SRCFILES = '    > srclist.inc
# Line 2112  for d in $alldirs ; do Line 2187  for d in $alldirs ; do
2187                  ignore_f=f                  ignore_f=f
2188                  case $d/$sf in                  case $d/$sf in
2189                    ./$PACKAGES_DOT_H)                    ./$PACKAGES_DOT_H)
2190                            ignore_f=t
2191                          ;;                          ;;
2192                    ./AD_CONFIG.h)                    ./AD_CONFIG.h)
2193                            ignore_f=t
2194                          ;;                          ;;
2195                    ./FC_NAMEMANGLE.h)                    ./FC_NAMEMANGLE.h)
2196                            ignore_f=t
2197                          ;;                          ;;
2198                    ./BUILD_INFO.h)                    ./BUILD_INFO.h)
2199                            ignore_f=t
2200                            ;;
2201                      ./EMBEDDED_FILES.h)
2202                            ignore_f=t
2203                          ;;                          ;;
2204                    *)                    *)
2205                          #  For the local directory *ONLY*,                          #  For the local directory *ONLY*,
# Line 2230  DISABLED_PACKAGES = ${DISABLED_PACKAGES} Line 2312  DISABLED_PACKAGES = ${DISABLED_PACKAGES}
2312    
2313  # These files are created by Makefile  # These files are created by Makefile
2314  SPECIAL_FILES = ${PACKAGES_DOT_H} AD_CONFIG.h FC_NAMEMANGLE.h BUILD_INFO.h  SPECIAL_FILES = ${PACKAGES_DOT_H} AD_CONFIG.h FC_NAMEMANGLE.h BUILD_INFO.h
   
2315  EOF  EOF
2316    
2317  #  Note: figure out some way to add Hyades JAM libraries here  if test "x$EMBED_SRC" = xt ; then
2318        echo "EMBEDDED_FILES = EMBEDDED_FILES.h" >>$MAKEFILE
2319    else
2320        echo "EMBEDDED_FILES = " >>$MAKEFILE
2321    fi
2322    
2323    #  Note: figure out some way to add Hyades JAM libraries here
2324  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2325  # Unix ln (link)  # Unix ln (link)
2326  LN = ${LN}  LN = ${LN}
# Line 2296  rm -f ad_flow_files.inc Line 2382  rm -f ad_flow_files.inc
2382  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2383    
2384  all: \$(EXECUTABLE)  all: \$(EXECUTABLE)
2385  \$(EXECUTABLE): \$(SPECIAL_FILES) \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(OBJFILES)  \$(EXECUTABLE): \$(SPECIAL_FILES) \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(OBJFILES) \$(EMBEDDED_FILES)
2386          @echo Creating \$@ ...          @echo Creating \$@ ...
2387          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)          \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS)
2388  depend:  depend:
# Line 2358  test ! "x$THISUSER" = x && echo "      -echo Line 2444  test ! "x$THISUSER" = x && echo "      -echo
2444  test ! "x$THISDATE" = x && echo "       -echo \"#define THISDATE '$THISDATE'\" >> \$@" >> $MAKEFILE  test ! "x$THISDATE" = x && echo "       -echo \"#define THISDATE '$THISDATE'\" >> \$@" >> $MAKEFILE
2445  test ! "x$THISHOST" = x && echo "       -echo \"#define THISHOST '$THISHOST'\" >> \$@" >> $MAKEFILE  test ! "x$THISHOST" = x && echo "       -echo \"#define THISHOST '$THISHOST'\" >> \$@" >> $MAKEFILE
2446    
2447    if test "x$EMBED_SRC" = xt ; then
2448        cat >>$MAKEFILE <<EOF
2449    
2450    decode_files.o : EMBEDDED_FILES.h
2451    
2452    ##  \$(F77FILES)
2453    all_fF.tar.gz : \$(SPECIAL_FILES) \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(F77FILES) Makefile
2454            @echo Creating \$@ ...
2455            -tar -hcf all_fF.tar \$(SPECIAL_FILES) \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(F77FILES) Makefile
2456            -rm -f all_fF.tar.gz
2457            -gzip all_fF.tar
2458    
2459    EMBEDDED_FILES.h : all_fF.tar.gz
2460            @echo Creating \$@ ...
2461            -\${ROOTDIR}/tools/embed_encode/encode_files EMBEDDED_FILES.h all_fF.tar.gz
2462    
2463    EOF
2464    fi
2465    
2466  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
2467    
2468  # The normal chain of rules is (  .F - .$FS - .o  )  # The normal chain of rules is (  .F - .$FS - .o  )

Legend:
Removed from v.1.139  
changed lines
  Added in v.1.142

  ViewVC Help
Powered by ViewVC 1.1.22