Changeset 1754 for trunk/NVTK/INSTALL
- Timestamp:
- 2009-11-25T14:28:24+01:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NVTK/INSTALL/MODIPSL_FILES/ins_make
r1155 r1754 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 echo " 10 typeset v0 v1 v2 v3 v4 v5 v6 v7 h_n; 11 echo -e " 9 12 ins_make install the Makefile in the directories 10 13 … … 27 30 ins_make -t sx8brodie 28 31 " 32 echo -e "Supported targets :\n" 33 [[ ! -f "${MKTG}" ]] && { echo -e "? (${MKTG} unreachable)\n"; exit 3; } 34 while read v1 v2 v3 v4 v5 v6 v7 35 do 36 [[ -n "${v1}" && "${v1}${v3}" = '#-Q-#-' && \ 37 -n "${v4}" && "${v4}${v5}${v6}" = 'Globaldefinitionsfor' ]] && \ 38 { h_n=${v2}' '; echo -e "${h_n:0:13} : ${v7}"; } 39 done <${MKTG} 40 echo -e " 41 For other targets, look in ${MKTG}. 42 " 29 43 } 30 #- dirname and basename 31 d_n=${0%/*}; b_n=${0##*/}; 44 #- dirname and basename 45 d_n=$(dirname ${0}); b_n=$(basename ${0}); 46 #- File containing global definitions 47 MKTG=${d_n}'/AA_make.gdef' 48 32 49 #- Retrieving and validation of the options 33 50 x_v='silencious'; x_d='normal'; x_p="??"; x_t="??"; x_w="??"; x_m='??'; … … 72 89 { echo "Local_Host not supported" 1>&2; exit 1; }; } 73 90 #- 74 MKTG=${d_n}'/AA_make.gdef' 91 # Get editing header 92 #x_h=$(${d_n}/w_i_p ${x_t}); 93 x_h=${x_t}; 94 #- 75 95 [[ ! -f "${MKTG}" ]] && { echo "${MKTG} unreachable ..."; exit 3; } 76 96 #- 77 W_XX=$(sed -n -e "s/^#-Q- *\([^ ]*\).*$/\1/p" ${MKTG} | \ 78 sort -u | sed -e "/${x_t}/!d"); 79 [[ '\?'"${W_XX}" != '\?'${x_t} ]] && \ 97 W_X1=$(sed -n -e "s/^#-Q- *\(${x_h}\)[\t ].*$/\1/p" ${MKTG} | sort -u); 98 [[ '\?'"${W_X1}" != '\?'"${x_h}" ]] && \ 80 99 { echo "Target_Host "${x_t}" not supported" 1>&2; exit 1; } 81 100 #- … … 93 112 echo '--- MPI context : '${x_m}; } 94 113 #- 95 if [ '\?'${x_w} = '\?' ]; then 96 l_rep=$(find ${d_n}/.. -name AA_make -print) 114 echo ""; 115 echo "Installation of makefiles, scripts and data for ${x_t}"; 116 echo ""; 117 #- 118 w_t='AA_make'; 119 #- 120 if [ ${x_w} = '??' ]; then 121 l_rep=$(cd ${d_n};find .. -name ${w_t} -print) 97 122 else 98 l_rep=$( find ${d_n}/../*/${x_w} -name AA_make-print)123 l_rep=$(cd ${d_n};find ../*/${x_w} -name ${w_t} -print) 99 124 fi 100 #-101 W_OS=${x_t};102 echo " ";103 echo "Installation of makefiles for $W_OS";104 echo " ";105 125 #- 106 126 for i in ${l_rep} 107 127 do 108 j=${i%/AA_make};128 k=${i%/${w_t}}; k=${k#./}; j=${d_n}'/'${k}; j=${j#./}; 109 129 echo "Installation in ${j}"; 110 130 MKTL="${j}"'/AA_make.ldef'; … … 112 132 MKTR="${j}"'/AA_make'; 113 133 cat ${MKTL} ${MKTG} ${MKTR} > mk1.$$; 114 W_PR='#-Q- '; W_XX=${W_PR}${x_t};115 sed -e "/^${W_X X} */ s///" -e "/^${W_PR}/d" mk1.$$ > mk2.$$;134 W_PR='#-Q- *'; W_X1=${W_PR}${x_h}; 135 sed -e "/^${W_X1}[\t ]/ s/^${W_X1} *//" -e "/^${W_PR}/d" mk1.$$ > mk2.$$; 116 136 #- 117 137 # Default INTEGER and REAL precision 118 W_PR='#-P- '; W_X X=${W_PR}${x_p};119 sed -e "/^${W_X X} */ s///" -e "/^${W_PR}/d" mk2.$$ > mk1.$$;138 W_PR='#-P- '; W_X1=${W_PR}${x_p}; 139 sed -e "/^${W_X1} */ s///" -e "/^${W_PR}/d" mk2.$$ > mk1.$$; 120 140 #- 121 141 # Handle the precision module "defprec.f90" in "IOIPSL/src" 122 142 [[ '!!'${j##*/modeles} = '!!/IOIPSL/src' ]] && \ 123 { [[ ${x_v} = 'verbose' ]] && W_X X='-v' || W_XX="";124 ${d_n}/ins_m_prec ${W_X X} -i ${w_ip} -r ${w_rp}; r_c=${?};143 { [[ ${x_v} = 'verbose' ]] && W_X1='-v' || W_X1=""; 144 ${d_n}/ins_m_prec ${W_X1} -i ${w_ip} -r ${w_rp}; r_c=${?}; 125 145 unset w_ip w_rp; 126 146 [[ ${r_c} != 0 ]] && exit ${r_c}; } … … 128 148 # Debug 129 149 W_PR='#-D- '; 130 [[ ${x_d} = 'debug' ]] && W_X X=${W_PR}'MD' || W_XX=${W_PR}'MN';131 sed -e "/^${W_X X} */ s///" -e "/^${W_PR}/d" mk1.$$ > mk2.$$;150 [[ ${x_d} = 'debug' ]] && W_X1=${W_PR}'MD' || W_X1=${W_PR}'MN'; 151 sed -e "/^${W_X1} */ s///" -e "/^${W_PR}/d" mk1.$$ > mk2.$$; 132 152 #- 133 # Retrieve the path of the directory 134 mk_dir=$(cd ${j};/bin/pwd;) 135 W_XX='MAKE_DIR =' 136 # Update the value 137 sed -e "s!^${W_XX}.*!${W_XX} ${mk_dir}!" mk2.$$ > mk1.$$ 138 unset mk_dir; 153 # Retrieve the path of the Makefile directory 154 # and the path from the directory to modipsl/util 155 mk_dir=$(cd ${j};/bin/pwd;); 156 ut_dir=''; for ww in ${k//\//' '}; do ut_dir=${ut_dir}'../'; done 157 ut_dir=${ut_dir%'../'}'util'; 158 echo "Path from Makefile to modipsl/util : ${ut_dir}"; 159 # Update the values 160 W_X1='UTIL_DIR ='; W_X2='MAKE_DIR ='; 161 sed -e "s!^${W_X1}.*!${W_X1} ${ut_dir}!" \ 162 -e "s!^${W_X2}.*!${W_X2} ${mk_dir}!" \ 163 mk2.$$ > mk1.$$ 164 unset mk_dir ut_dir; 139 165 #- 140 166 # Choice of mpi library for the coupling 141 W_X X='LIB_MPI ='; W_XX_BIS='LIB_MPI_BIS =';167 W_X1='LIB_MPI ='; W_X2='LIB_MPI_BIS ='; 142 168 case ${x_m} in 143 169 ( mpi1 | MPI1 ) 144 170 lib_mpi='MPI1'; lib_mpi_bis='MPI1'; 145 sed -e "s!^${W_X X}.*!${W_XX} ${lib_mpi}!" \146 -e "s!^${W_X X_BIS}.*!${W_XX_BIS} ${lib_mpi_bis}!" \171 sed -e "s!^${W_X1}.*!${W_X1} ${lib_mpi}!" \ 172 -e "s!^${W_X2}.*!${W_X2} ${lib_mpi_bis}!" \ 147 173 mk1.$$ > ${j}/Makefile;; 148 174 ( mpi2 | MPI2 ) 149 175 lib_mpi='MPI2'; lib_mpi_bis=''; 150 sed -e "s!^${W_X X}.*!${W_XX} ${lib_mpi}!" \151 -e "s!^${W_X X_BIS}.*!${W_XX_BIS} ${lib_mpi_bis}!" \176 sed -e "s!^${W_X1}.*!${W_X1} ${lib_mpi}!" \ 177 -e "s!^${W_X2}.*!${W_X2} ${lib_mpi_bis}!" \ 152 178 mk1.$$ > ${j}/Makefile;; 153 179 (??) … … 156 182 esac 157 183 unset lib_mpi lib_mpi_bis; 184 #- 158 185 done 159 186 #- 187 # Creating environment file 188 echo ${x_t} > ${d_n}/.host_target 189 #- 160 190 echo ""; 161 unset W_X X W_XX_BIS; rm -f mk1.$$ mk2.$$;191 unset W_X1 W_X2 w_t; rm -f mk1.$$ mk2.$$; 162 192 #- 163 193 exit 0;
Note: See TracChangeset
for help on using the changeset viewer.