Changeset 1754


Ignore:
Timestamp:
2009-11-25T14:28:24+01:00 (11 years ago)
Author:
rblod
Message:

Update ins_make in NVTK, see ticket #600

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NVTK/INSTALL/MODIPSL_FILES/ins_make

    r1155 r1754  
    1 #!/bin/ksh 
     1#!/bin/bash 
    22# $Id$ 
    33#--------------------------------------------------------------------- 
    44#- Installation of Makefiles according to an environment 
    55#--------------------------------------------------------------------- 
     6shopt -s extglob 
     7#- 
    68function ins_make_Usage 
    79{ 
    8 echo " 
     10typeset v0 v1 v2 v3 v4 v5 v6 v7 h_n; 
     11echo -e " 
    912ins_make install the Makefile in the directories 
    1013 
     
    2730  ins_make -t sx8brodie 
    2831" 
     32echo -e "Supported targets :\n" 
     33[[ ! -f "${MKTG}" ]] && { echo -e "? (${MKTG} unreachable)\n"; exit 3; } 
     34while 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} 
     40echo -e " 
     41For other targets, look in ${MKTG}. 
     42" 
    2943} 
    30 #-  dirname and  basename 
    31 d_n=${0%/*}; b_n=${0##*/}; 
     44#-    dirname     and      basename 
     45d_n=$(dirname ${0}); b_n=$(basename ${0}); 
     46#- File containing global definitions 
     47MKTG=${d_n}'/AA_make.gdef' 
     48 
    3249#- Retrieving and validation of the options 
    3350x_v='silencious'; x_d='normal'; x_p="??"; x_t="??"; x_w="??"; x_m='??'; 
     
    7289      { echo "Local_Host not supported" 1>&2; exit 1; }; } 
    7390#- 
    74 MKTG=${d_n}'/AA_make.gdef' 
     91# Get editing header 
     92#x_h=$(${d_n}/w_i_p ${x_t}); 
     93x_h=${x_t}; 
     94#- 
    7595[[ ! -f "${MKTG}" ]] && { echo "${MKTG} unreachable ..."; exit 3; } 
    7696#- 
    77 W_XX=$(sed -n -e "s/^#-Q-  *\([^ ]*\).*$/\1/p" ${MKTG} | \ 
    78        sort -u | sed -e "/${x_t}/!d"); 
    79 [[ '\?'"${W_XX}" != '\?'${x_t} ]] && \ 
     97W_X1=$(sed -n -e "s/^#-Q-  *\(${x_h}\)[\t ].*$/\1/p" ${MKTG} | sort -u); 
     98[[ '\?'"${W_X1}" != '\?'"${x_h}" ]] && \ 
    8099  { echo "Target_Host  "${x_t}"  not supported" 1>&2; exit 1; } 
    81100#- 
     
    93112   echo '--- MPI context  : '${x_m}; } 
    94113#- 
    95 if [ '\?'${x_w} = '\?' ]; then 
    96 l_rep=$(find ${d_n}/.. -name AA_make -print) 
     114echo ""; 
     115echo "Installation of makefiles, scripts and data for ${x_t}"; 
     116echo ""; 
     117#- 
     118w_t='AA_make'; 
     119#- 
     120if [ ${x_w} = '??' ]; then 
     121l_rep=$(cd ${d_n};find .. -name ${w_t} -print) 
    97122else 
    98 l_rep=$(find ${d_n}/../*/${x_w} -name AA_make -print) 
     123l_rep=$(cd ${d_n};find ../*/${x_w} -name ${w_t} -print) 
    99124fi 
    100 #- 
    101 W_OS=${x_t}; 
    102 echo " "; 
    103 echo "Installation of makefiles for $W_OS"; 
    104 echo " "; 
    105125#- 
    106126for i in ${l_rep} 
    107127do 
    108   j=${i%/AA_make}; 
     128  k=${i%/${w_t}}; k=${k#./}; j=${d_n}'/'${k}; j=${j#./}; 
    109129  echo "Installation in ${j}"; 
    110130  MKTL="${j}"'/AA_make.ldef'; 
     
    112132  MKTR="${j}"'/AA_make'; 
    113133  cat ${MKTL} ${MKTG} ${MKTR} > mk1.$$; 
    114   W_PR='#-Q- '; W_XX=${W_PR}${x_t}; 
    115   sed -e "/^${W_XX} */ 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.$$; 
    116136#- 
    117137# Default INTEGER and REAL precision 
    118   W_PR='#-P- '; W_XX=${W_PR}${x_p}; 
    119   sed -e "/^${W_XX} */ 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.$$; 
    120140#- 
    121141# Handle the precision module "defprec.f90" in "IOIPSL/src" 
    122142  [[ '!!'${j##*/modeles} = '!!/IOIPSL/src' ]] && \ 
    123    { [[ ${x_v} = 'verbose' ]] && W_XX='-v' || W_XX=""; 
    124      ${d_n}/ins_m_prec ${W_XX} -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=${?}; 
    125145     unset w_ip w_rp; 
    126146     [[ ${r_c} != 0 ]] && exit ${r_c}; } 
     
    128148# Debug 
    129149  W_PR='#-D- '; 
    130   [[ ${x_d} = 'debug' ]] && W_XX=${W_PR}'MD' || W_XX=${W_PR}'MN'; 
    131   sed -e "/^${W_XX} */ 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.$$; 
    132152#- 
    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; 
    139165#- 
    140166# Choice of mpi library for the coupling 
    141   W_XX='LIB_MPI ='; W_XX_BIS='LIB_MPI_BIS ='; 
     167  W_X1='LIB_MPI ='; W_X2='LIB_MPI_BIS ='; 
    142168  case ${x_m} in 
    143169   ( mpi1 | MPI1 ) 
    144170    lib_mpi='MPI1'; lib_mpi_bis='MPI1'; 
    145     sed -e "s!^${W_XX}.*!${W_XX} ${lib_mpi}!" \ 
    146         -e "s!^${W_XX_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}!" \ 
    147173      mk1.$$ > ${j}/Makefile;; 
    148174   ( mpi2 | MPI2 ) 
    149175    lib_mpi='MPI2'; lib_mpi_bis=''; 
    150     sed -e "s!^${W_XX}.*!${W_XX} ${lib_mpi}!" \ 
    151         -e "s!^${W_XX_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}!" \ 
    152178      mk1.$$ > ${j}/Makefile;; 
    153179   (??)  
     
    156182  esac 
    157183  unset lib_mpi lib_mpi_bis; 
     184#- 
    158185done 
    159186#- 
     187# Creating environment file  
     188echo ${x_t} > ${d_n}/.host_target 
     189#- 
    160190echo ""; 
    161 unset W_XX W_XX_BIS; rm -f mk1.$$ mk2.$$; 
     191unset W_X1 W_X2 w_t; rm -f mk1.$$ mk2.$$; 
    162192#- 
    163193exit 0; 
Note: See TracChangeset for help on using the changeset viewer.