37 |
grep -i "$strng" $file > /dev/null 2>&1 |
grep -i "$strng" $file > /dev/null 2>&1 |
38 |
RETVAL=$? |
RETVAL=$? |
39 |
if test "x${RETVAL}" = x0 ; then |
if test "x${RETVAL}" = x0 ; then |
40 |
echo -n "Error: In $file there is an illegal line: " |
printf "Error: In $file there is an illegal line: " |
41 |
grep -i "$strng" $file |
grep -i "$strng" $file |
42 |
return 1 |
return 1 |
43 |
fi |
fi |
258 |
. ./.pd_tmp |
. ./.pd_tmp |
259 |
rm -f ./.pd_tmp |
rm -f ./.pd_tmp |
260 |
|
|
261 |
echo -n "PNAME = "${} |
printf "PNAME = "${} |
262 |
} |
} |
263 |
|
|
264 |
|
|
348 |
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 |
349 |
from $PATH/lib and use binaries from $PATH/bin. |
from $PATH/lib and use binaries from $PATH/bin. |
350 |
|
|
351 |
|
-bash NAME |
352 |
|
Explicitly specify the Bourne or BASH shell to use |
353 |
|
|
354 |
While it is most often a single word, the "NAME" variables specified |
While it is most often a single word, the "NAME" variables specified |
355 |
above can in many cases be a space-delimited string such as: |
above can in many cases be a space-delimited string such as: |
356 |
|
|
585 |
INCLUDEDIRS= |
INCLUDEDIRS= |
586 |
STANDARDDIRS="USE_THE_DEFAULT" |
STANDARDDIRS="USE_THE_DEFAULT" |
587 |
|
|
588 |
|
BASH= |
589 |
PWD=`pwd` |
PWD=`pwd` |
590 |
MAKE=make |
MAKE=make |
591 |
AWK=awk |
AWK=awk |
654 |
break |
break |
655 |
fi |
fi |
656 |
done |
done |
657 |
echo -n " getting local config information: " |
printf " getting local config information: " |
658 |
if test -e $gm_local ; then |
if test -e $gm_local ; then |
659 |
echo "using $gm_local" |
echo "using $gm_local" |
660 |
. $gm_local |
. $gm_local |
719 |
-make=* | --make=* | -m=* | --m=*) |
-make=* | --make=* | -m=* | --m=*) |
720 |
MAKE=$ac_optarg ;; |
MAKE=$ac_optarg ;; |
721 |
|
|
722 |
|
-bash | --bash) |
723 |
|
ac_prev=BASH ;; |
724 |
|
-bash=* | --bash=*) |
725 |
|
BASH=$ac_optarg ;; |
726 |
|
|
727 |
-makedepend | --makedepend | -md | --md) |
-makedepend | --makedepend | -md | --md) |
728 |
ac_prev=MAKEDEPEND ;; |
ac_prev=MAKEDEPEND ;; |
729 |
-makedepend=* | --makedepend=* | -md=* | --md=*) |
-makedepend=* | --makedepend=* | -md=* | --md=*) |
838 |
for d in . .. ../.. ../../.. ../../../.. ../../../../.. ; do |
for d in . .. ../.. ../../.. ../../../.. ../../../../.. ; do |
839 |
if [ -d "$d/model" -a -d "$d/eesupp" -a -d "$d/pkg" ]; then |
if [ -d "$d/model" -a -d "$d/eesupp" -a -d "$d/pkg" ]; then |
840 |
ROOTDIR=$d |
ROOTDIR=$d |
841 |
echo -n "Warning: ROOTDIR was not specified but there appears to be" |
printf "Warning: ROOTDIR was not specified but there appears to be" |
842 |
echo " a copy of MITgcm at \"$ROOTDIR\" so we'll try it." |
echo " a copy of MITgcm at \"$ROOTDIR\" so we'll try it." |
843 |
break |
break |
844 |
fi |
fi |
872 |
. "$OPTFILE" |
. "$OPTFILE" |
873 |
RETVAL=$? |
RETVAL=$? |
874 |
if test "x$RETVAL" != x0 ; then |
if test "x$RETVAL" != x0 ; then |
875 |
echo -n "Error: failed to source OPTFILE \"$OPTFILE\"" |
printf "Error: failed to source OPTFILE \"$OPTFILE\"" |
876 |
echo "--please check that variable syntax is bash-compatible" |
echo "--please check that variable syntax is bash-compatible" |
877 |
exit 1 |
exit 1 |
878 |
fi |
fi |
899 |
. "$AD_OPTFILE" |
. "$AD_OPTFILE" |
900 |
RETVAL=$? |
RETVAL=$? |
901 |
if test "x$RETVAL" != x0 ; then |
if test "x$RETVAL" != x0 ; then |
902 |
echo -n "Error: failed to source AD_OPTFILE \"$AD_OPTFILE\"" |
printf "Error: failed to source AD_OPTFILE \"$AD_OPTFILE\"" |
903 |
echo "--please check that variable syntax is bash-compatible" |
echo "--please check that variable syntax is bash-compatible" |
904 |
exit 1 |
exit 1 |
905 |
fi |
fi |
914 |
|
|
915 |
# Check that FC, LINK, CPP, S64, LN, and MAKE are defined. If not, |
# Check that FC, LINK, CPP, S64, LN, and MAKE are defined. If not, |
916 |
# either set defaults or complain and abort! |
# either set defaults or complain and abort! |
917 |
|
if test ! "x$BASH" = x ; then |
918 |
|
# add a trailing space so that it works within the Makefile syntax (see below) |
919 |
|
BASH="$BASH " |
920 |
|
fi |
921 |
if test "x$FC" = x ; then |
if test "x$FC" = x ; then |
922 |
cat <<EOF 1>&2 |
cat <<EOF 1>&2 |
923 |
|
|
988 |
fi |
fi |
989 |
|
|
990 |
printf "\n=== Checking system libraries ===\n" |
printf "\n=== Checking system libraries ===\n" |
991 |
echo -n " Do we have the system() command using $FC... " |
printf " Do we have the system() command using $FC... " |
992 |
cat > genmake_tcomp.f <<EOF |
cat > genmake_tcomp.f <<EOF |
993 |
program hello |
program hello |
994 |
call system('echo hi') |
call system('echo hi') |
1006 |
fi |
fi |
1007 |
rm -f genmake_tcomp* |
rm -f genmake_tcomp* |
1008 |
|
|
1009 |
echo -n " Do we have the fdate() command using $FC... " |
printf " Do we have the fdate() command using $FC... " |
1010 |
cat > genmake_tcomp.f <<EOF |
cat > genmake_tcomp.f <<EOF |
1011 |
program hello |
program hello |
1012 |
CHARACTER(128) string |
CHARACTER(128) string |
1027 |
fi |
fi |
1028 |
rm -f genmake_tcomp* |
rm -f genmake_tcomp* |
1029 |
|
|
1030 |
echo -n " Can we call simple C routines (here, \"cloc()\") using $FC... " |
printf " Can we call simple C routines (here, \"cloc()\") using $FC... " |
1031 |
check_HAVE_CLOC |
check_HAVE_CLOC |
1032 |
if test "x$HAVE_CLOC" != x ; then |
if test "x$HAVE_CLOC" != x ; then |
1033 |
echo "yes" |
echo "yes" |
1036 |
fi |
fi |
1037 |
rm -f genmake_t* |
rm -f genmake_t* |
1038 |
|
|
1039 |
echo -n " Can we create NetCDF-enabled binaries... " |
printf " Can we create NetCDF-enabled binaries... " |
1040 |
check_netcdf_libs |
check_netcdf_libs |
1041 |
if test "x$HAVE_NETCDF" != x ; then |
if test "x$HAVE_NETCDF" != x ; then |
1042 |
echo "yes" |
echo "yes" |
1046 |
|
|
1047 |
|
|
1048 |
printf "\n=== Setting defaults ===\n" |
printf "\n=== Setting defaults ===\n" |
1049 |
echo -n " Adding MODS directories: " |
printf " Adding MODS directories: " |
1050 |
for d in $MODS ; do |
for d in $MODS ; do |
1051 |
if test ! -d $d ; then |
if test ! -d $d ; then |
1052 |
echo |
echo |
1053 |
echo "Error: MODS directory \"$d\" not found!" |
echo "Error: MODS directory \"$d\" not found!" |
1054 |
exit 1 |
exit 1 |
1055 |
else |
else |
1056 |
echo -n " $d" |
printf " $d" |
1057 |
SOURCEDIRS="$SOURCEDIRS $d" |
SOURCEDIRS="$SOURCEDIRS $d" |
1058 |
INCLUDEDIRS="$INCLUDEDIRS $d" |
INCLUDEDIRS="$INCLUDEDIRS $d" |
1059 |
fi |
fi |
1178 |
def=`cat $PDEFAULT | sed -e 's/#.*$//g' | $AWK '(NF>0){print $0}'` |
def=`cat $PDEFAULT | sed -e 's/#.*$//g' | $AWK '(NF>0){print $0}'` |
1179 |
RETVAL=$? |
RETVAL=$? |
1180 |
if test "x${RETVAL}" != x0 ; then |
if test "x${RETVAL}" != x0 ; then |
1181 |
echo -n "Error: can't parse default package list " |
printf "Error: can't parse default package list " |
1182 |
echo "-- please check PDEFAULT=\"$PDEFAULT\"" |
echo "-- please check PDEFAULT=\"$PDEFAULT\"" |
1183 |
exit 1 |
exit 1 |
1184 |
fi |
fi |
1461 |
mkdir .links.tmp |
mkdir .links.tmp |
1462 |
echo "# This section creates symbolic links" > srclinks.tmp |
echo "# This section creates symbolic links" > srclinks.tmp |
1463 |
echo "" >> srclinks.tmp |
echo "" >> srclinks.tmp |
1464 |
echo -n 'SRCFILES = ' > srclist.inc |
printf 'SRCFILES = ' > srclist.inc |
1465 |
echo -n 'CSRCFILES = ' > csrclist.inc |
printf 'CSRCFILES = ' > csrclist.inc |
1466 |
echo -n 'F90SRCFILES = ' > f90srclist.inc |
printf 'F90SRCFILES = ' > f90srclist.inc |
1467 |
echo -n 'HEADERFILES = ' > hlist.inc |
printf 'HEADERFILES = ' > hlist.inc |
1468 |
echo -n 'AD_FLOW_FILES = ' > ad_flow_files.inc |
printf 'AD_FLOW_FILES = ' > ad_flow_files.inc |
1469 |
alldirs="$SOURCEDIRS $INCLUDEDIRS ." |
alldirs="$SOURCEDIRS $INCLUDEDIRS ." |
1470 |
for d in $alldirs ; do |
for d in $alldirs ; do |
1471 |
deplist= |
deplist= |
1490 |
case $extn in |
case $extn in |
1491 |
F) |
F) |
1492 |
echo " \\" >> srclist.inc |
echo " \\" >> srclist.inc |
1493 |
echo -n " $sf" >> srclist.inc |
printf " $sf" >> srclist.inc |
1494 |
;; |
;; |
1495 |
F90) |
F90) |
1496 |
echo " \\" >> f90srclist.inc |
echo " \\" >> f90srclist.inc |
1497 |
echo -n " $sf" >> f90srclist.inc |
printf " $sf" >> f90srclist.inc |
1498 |
;; |
;; |
1499 |
c) |
c) |
1500 |
echo " \\" >> csrclist.inc |
echo " \\" >> csrclist.inc |
1501 |
echo -n " $sf" >> csrclist.inc |
printf " $sf" >> csrclist.inc |
1502 |
;; |
;; |
1503 |
h) |
h) |
1504 |
echo " \\" >> hlist.inc |
echo " \\" >> hlist.inc |
1505 |
echo -n " $sf" >> hlist.inc |
printf " $sf" >> hlist.inc |
1506 |
;; |
;; |
1507 |
flow) |
flow) |
1508 |
echo " \\" >> ad_flow_files.inc |
echo " \\" >> ad_flow_files.inc |
1509 |
echo -n " $sf" >> ad_flow_files.inc |
printf " $sf" >> ad_flow_files.inc |
1510 |
;; |
;; |
1511 |
esac |
esac |
1512 |
fi |
fi |
1688 |
# Special targets ($SPECIAL_FILES) which are create by make |
# Special targets ($SPECIAL_FILES) which are create by make |
1689 |
${PACKAGES_DOT_H}: |
${PACKAGES_DOT_H}: |
1690 |
@echo Creating \$@ ... |
@echo Creating \$@ ... |
1691 |
@\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bPACKAGES_CONFIG_H "Disabled packages:" \$(DISABLED_PACKAGES) " " "Enabled packages:" \$(ENABLED_PACKAGES) > \$@ |
@$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bPACKAGES_CONFIG_H "Disabled packages:" \$(DISABLED_PACKAGES) " " "Enabled packages:" \$(ENABLED_PACKAGES) > \$@ |
1692 |
AD_CONFIG.h: |
AD_CONFIG.h: |
1693 |
@echo Creating \$@ ... |
@echo Creating \$@ ... |
1694 |
@\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > \$@ |
@$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > \$@ |
1695 |
FC_NAMEMANGLE.h: |
FC_NAMEMANGLE.h: |
1696 |
@echo Creating \$@ ... |
@echo Creating \$@ ... |
1697 |
echo "$FC_NAMEMANGLE" > \$@ |
echo "$FC_NAMEMANGLE" > \$@ |
1738 |
|
|
1739 |
echo " Add the source list for AD code generation" |
echo " Add the source list for AD code generation" |
1740 |
echo >> $MAKEFILE |
echo >> $MAKEFILE |
1741 |
echo -n "AD_FILES = " >> $MAKEFILE |
printf "AD_FILES = " >> $MAKEFILE |
1742 |
AD_FILES=`cat ad_files` |
AD_FILES=`cat ad_files` |
1743 |
for i in $AD_FILES ; do |
for i in $AD_FILES ; do |
1744 |
echo " \\" >> $MAKEFILE |
echo " \\" >> $MAKEFILE |
1745 |
echo -n " $i" >> $MAKEFILE |
printf " $i" >> $MAKEFILE |
1746 |
done |
done |
1747 |
echo >> $MAKEFILE |
echo >> $MAKEFILE |
1748 |
rm -f ad_files |
rm -f ad_files |
1755 |
adtamc: ad_tamc_output.f |
adtamc: ad_tamc_output.f |
1756 |
|
|
1757 |
ad_input_code.f: \$(AD_FILES) \$(HEADERFILES) |
ad_input_code.f: \$(AD_FILES) \$(HEADERFILES) |
1758 |
@\$(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 |
1759 |
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 |
1760 |
-rm -f ad_config.template |
-rm -f ad_config.template |
1761 |
@make \$(F77FILES) |
@make \$(F77FILES) |
1787 |
ftltamc: ftl_tamc_output.f |
ftltamc: ftl_tamc_output.f |
1788 |
|
|
1789 |
ftl_input_code.f: \$(AD_FILES) \$(HEADERFILES) |
ftl_input_code.f: \$(AD_FILES) \$(HEADERFILES) |
1790 |
@\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ftl_config.template |
@$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ftl_config.template |
1791 |
cmp ftl_config.template AD_CONFIG.h || cat ftl_config.template > AD_CONFIG.h |
cmp ftl_config.template AD_CONFIG.h || cat ftl_config.template > AD_CONFIG.h |
1792 |
-rm -f ftl_config.template |
-rm -f ftl_config.template |
1793 |
@make \$(F77FILES) |
@make \$(F77FILES) |
1860 |
printf "\n=== Done ===\n" |
printf "\n=== Done ===\n" |
1861 |
|
|
1862 |
# Create special header files |
# Create special header files |
1863 |
$TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bPACKAGES_CONFIG_H "Disabled packages:" $DISABLED_PACKAGES " " "Enabled packages:" $ENABLED_PACKAGES > $PACKAGES_DOT_H".tmp" |
$BASH $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bPACKAGES_CONFIG_H "Disabled packages:" $DISABLED_PACKAGES " " "Enabled packages:" $ENABLED_PACKAGES > $PACKAGES_DOT_H".tmp" |
1864 |
if test ! -f $PACKAGES_DOT_H ; then |
if test ! -f $PACKAGES_DOT_H ; then |
1865 |
mv -f $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H |
mv -f $PACKAGES_DOT_H".tmp" $PACKAGES_DOT_H |
1866 |
else |
else |
1874 |
fi |
fi |
1875 |
fi |
fi |
1876 |
if test ! -f AD_CONFIG.h ; then |
if test ! -f AD_CONFIG.h ; then |
1877 |
$TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > AD_CONFIG.h |
$BASH $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > AD_CONFIG.h |
1878 |
fi |
fi |
1879 |
|
|
1880 |
|
|
1881 |
# Write the "state" for future records |
# Write the "state" for future records |
1882 |
if test "x$DUMPSTATE" != xf ; then |
if test "x$DUMPSTATE" != xf ; then |
1883 |
echo -n "" > genmake_state |
printf "" > genmake_state |
1884 |
for i in $gm_state ; do |
for i in $gm_state ; do |
1885 |
t1="t2=\$$i" |
t1="t2=\$$i" |
1886 |
eval $t1 |
eval $t1 |