Changeset 728 for modipsl/trunk/util/ins_make
- Timestamp:
- 09/04/09 13:27:47 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
modipsl/trunk/util/ins_make
r294 r728 1 #!/bin/ ksh1 #!/bin/bash 2 2 # $Id$ 3 3 #--------------------------------------------------------------------- 4 4 #- Installation of Makefiles according to an environment 5 5 #--------------------------------------------------------------------- 6 shopt -s extglob 7 #- 6 8 function ins_make_Usage 7 9 { 8 typeset -L13 h_n; typeset v0 v1 v2 v3 v4 v5 v6 v7;9 print -"10 typeset v0 v1 v2 v3 v4 v5 v6 v7 h_n; 11 echo -e " 10 12 ins_make install the Makefile in the directories 11 13 … … 27 29 ins_make -t sx8brodie 28 30 " 29 print -"Supported targets :\n"30 [[ ! -f "${MKTG}" ]] && { print -"? (${MKTG} unreachable)\n"; exit 3; }31 echo -e "Supported targets :\n" 32 [[ ! -f "${MKTG}" ]] && { echo -e "? (${MKTG} unreachable)\n"; exit 3; } 31 33 while read v1 v2 v3 v4 v5 v6 v7 32 34 do 33 35 [[ -n "${v1}" && "${v1}${v3}" = '#-Q-#-' && \ 34 36 -n "${v4}" && "${v4}${v5}${v6}" = 'Globaldefinitionsfor' ]] && \ 35 { h_n=${v2} ; print - "${h_n} : ${v7}"; }37 { h_n=${v2}' '; echo -e "${h_n:0:13} : ${v7}"; } 36 38 done <${MKTG} 37 print -"38 Fo tother targets, look in ${MKTG}.39 echo -e " 40 For other targets, look in ${MKTG}. 39 41 " 40 42 } … … 43 45 #- File containing global definitions 44 46 MKTG=${d_n}'/AA_make.gdef' 47 45 48 #- Retrieving and validation of the options 46 49 x_v='silencious'; x_d='normal'; x_p="??"; x_t="??"; x_m='??'; … … 84 87 { echo "Local_Host not supported" 1>&2; exit 1; }; } 85 88 #- 89 # Get editing header 90 x_h=$(${d_n}/w_i_p ${x_t}); 91 #- 86 92 [[ ! -f "${MKTG}" ]] && { echo "${MKTG} unreachable ..."; exit 3; } 87 93 #- 88 W_X X=$(sed -n -e "s/^#-Q- *\(${x_t}\)[\t ].*$/\1/p" ${MKTG} | sort -u);89 [[ '\?'"${W_X X}" != '\?'"${x_t}" ]] && \94 W_X1=$(sed -n -e "s/^#-Q- *\(${x_h}\)[\t ].*$/\1/p" ${MKTG} | sort -u); 95 [[ '\?'"${W_X1}" != '\?'"${x_h}" ]] && \ 90 96 { echo "Target_Host "${x_t}" not supported" 1>&2; exit 1; } 91 97 #- … … 103 109 echo '--- MPI context : '${x_m}; } 104 110 #- 105 echo ""; echo "Installation of makefiles for ${x_t}"; echo ""; 111 echo ""; 112 echo "Installation of makefiles, scripts and data for ${x_t}"; 113 echo ""; 106 114 #- 107 l_rep=$(find ${d_n}/.. -name AA_make -print) 115 w_t='AA_make'; 116 l_rep=$(cd ${d_n};find .. -name ${w_t} -print) 108 117 for i in ${l_rep} 109 118 do 110 j=${i%/AA_make};119 k=${i%/${w_t}}; k=${k#./}; j=${d_n}'/'${k}; j=${j#./}; 111 120 echo "Installation in ${j}"; 112 121 MKTL="${j}"'/AA_make.ldef'; … … 114 123 MKTR="${j}"'/AA_make'; 115 124 cat ${MKTL} ${MKTG} ${MKTR} > mk1.$$; 116 W_PR='#-Q- *'; W_X X=${W_PR}${x_t};117 sed -e "/^${W_X X}[\t ]/ s/^${W_XX} *//" -e "/^${W_PR}/d" mk1.$$ > mk2.$$;125 W_PR='#-Q- *'; W_X1=${W_PR}${x_h}; 126 sed -e "/^${W_X1}[\t ]/ s/^${W_X1} *//" -e "/^${W_PR}/d" mk1.$$ > mk2.$$; 118 127 #- 119 128 # Default INTEGER and REAL precision 120 W_PR='#-P- '; W_X X=${W_PR}${x_p};121 sed -e "/^${W_X X} */ s///" -e "/^${W_PR}/d" mk2.$$ > mk1.$$;129 W_PR='#-P- '; W_X1=${W_PR}${x_p}; 130 sed -e "/^${W_X1} */ s///" -e "/^${W_PR}/d" mk2.$$ > mk1.$$; 122 131 #- 123 132 # Handle the precision module "defprec.f90" in "IOIPSL/src" 124 133 [[ '!!'${j##*/modeles} = '!!/IOIPSL/src' ]] && \ 125 { [[ ${x_v} = 'verbose' ]] && W_X X='-v' || W_XX="";126 ${d_n}/ins_m_prec ${W_X X} -i ${w_ip} -r ${w_rp}; r_c=${?};134 { [[ ${x_v} = 'verbose' ]] && W_X1='-v' || W_X1=""; 135 ${d_n}/ins_m_prec ${W_X1} -i ${w_ip} -r ${w_rp}; r_c=${?}; 127 136 unset w_ip w_rp; 128 137 [[ ${r_c} != 0 ]] && exit ${r_c}; } … … 130 139 # Debug 131 140 W_PR='#-D- '; 132 [[ ${x_d} = 'debug' ]] && W_X X=${W_PR}'MD' || W_XX=${W_PR}'MN';133 sed -e "/^${W_X X} */ s///" -e "/^${W_PR}/d" mk1.$$ > mk2.$$;141 [[ ${x_d} = 'debug' ]] && W_X1=${W_PR}'MD' || W_X1=${W_PR}'MN'; 142 sed -e "/^${W_X1} */ s///" -e "/^${W_PR}/d" mk1.$$ > mk2.$$; 134 143 #- 135 # Retrieve the path of the directory 136 mk_dir=$(cd ${j};/bin/pwd;) 137 W_XX='MAKE_DIR =' 138 # Update the value 139 sed -e "s!^${W_XX}.*!${W_XX} ${mk_dir}!" mk2.$$ > mk1.$$ 140 unset mk_dir; 144 # Retrieve the path of the Makefile directory 145 # and the path from the directory to modipsl/util 146 mk_dir=$(cd ${j};/bin/pwd;); 147 ut_dir=''; for ww in ${k//\//' '}; do ut_dir=${ut_dir}'../'; done 148 ut_dir=${ut_dir%'../'}'util'; 149 echo "Path from Makefile to modipsl/util : ${ut_dir}"; 150 # Update the values 151 W_X1='UTIL_DIR ='; W_X2='MAKE_DIR ='; 152 sed -e "s!^${W_X1}.*!${W_X1} ${ut_dir}!" \ 153 -e "s!^${W_X2}.*!${W_X2} ${mk_dir}!" \ 154 mk2.$$ > mk1.$$ 155 unset mk_dir ut_dir; 141 156 #- 142 157 # Choice of mpi library for the coupling 143 W_X X='LIB_MPI ='; W_XX_BIS='LIB_MPI_BIS =';158 W_X1='LIB_MPI ='; W_X2='LIB_MPI_BIS ='; 144 159 case ${x_m} in 145 160 ( mpi1 | MPI1 ) 146 161 lib_mpi='MPI1'; lib_mpi_bis='MPI1'; 147 sed -e "s!^${W_X X}.*!${W_XX} ${lib_mpi}!" \148 -e "s!^${W_X X_BIS}.*!${W_XX_BIS} ${lib_mpi_bis}!" \162 sed -e "s!^${W_X1}.*!${W_X1} ${lib_mpi}!" \ 163 -e "s!^${W_X2}.*!${W_X2} ${lib_mpi_bis}!" \ 149 164 mk1.$$ > ${j}/Makefile;; 150 165 ( mpi2 | MPI2 ) 151 166 lib_mpi='MPI2'; lib_mpi_bis=''; 152 sed -e "s!^${W_X X}.*!${W_XX} ${lib_mpi}!" \153 -e "s!^${W_X X_BIS}.*!${W_XX_BIS} ${lib_mpi_bis}!" \167 sed -e "s!^${W_X1}.*!${W_X1} ${lib_mpi}!" \ 168 -e "s!^${W_X2}.*!${W_X2} ${lib_mpi_bis}!" \ 154 169 mk1.$$ > ${j}/Makefile;; 155 170 (??) … … 158 173 esac 159 174 unset lib_mpi lib_mpi_bis; 175 #- 160 176 done 161 177 #- 178 # Creating environment file 179 echo ${x_t} > ${d_n}/.host_target 180 #- 162 181 echo ""; 163 unset W_X X W_XX_BIS; rm -f mk1.$$ mk2.$$;182 unset W_X1 W_X2 w_t; rm -f mk1.$$ mk2.$$; 164 183 #- 165 184 exit 0;
Note: See TracChangeset
for help on using the changeset viewer.