source: issm/oecreview/Archive/18296-19100/ISSM-18410-18411.diff@ 19102

Last change on this file since 19102 was 19102, checked in by Mathieu Morlighem, 10 years ago

NEW: added 18296-19100

File size: 6.0 KB
  • ../trunk-jpl/packagers/macosx/install.sh

     
    11#!/bin/bash
    22
    3 # Environment Variables
    4 #
    53# ISSM_DIR and MATLAB_DIR must be set correctly.
    64# {{{
    75if [ "${ISSM_DIR}x" == "x" ]; then
     
    2523fi
    2624# }}}
    2725
    28 cd $ISSM_DIR
     26#List of external pakages to be installed and their installation scripts
     27EXTERNALPACKAGES="autotools install.sh               
     28                  mpich     install-3.0-macosx64-static.sh
     29                  cmake     install.sh               
     30                  petsc     install-3.5-macosx64-static.sh
     31                  triangle  install-macosx64.sh "
    2932
    30 # Externalpackages
     33# Install Externalpackages
    3134# {{{
    32 echo ""
    33 echo "Installing external packages..."
    34 echo ""
     35cd $ISSM_DIR/externalpackages
    3536
    36 cd "$ISSM_DIR/externalpackages/matlab"
    37 echo '---------------------------------'
    38 echo "Linking Matlab"
    39 echo '---------------------------------'
    40 ln -s $MATLAB_DIR ./install
     37#number of packages:
     38NUMPACKAGES=$(($(echo $EXTERNALPACKAGES | wc -w )/2))
    4139
    42 cd "$ISSM_DIR/externalpackages/cmake"
    43 echo '---------------------------------'
    44 echo "Installing CMAKE"
    45 echo '---------------------------------'
    46 ./install.sh $1 &> /dev/null
     40for ((i=1;i<=$NUMPACKAGES;i++))
     41do
     42        NUM1=$((2*$i-1))
     43        NUM2=$((2*$i))
     44        PACKAGENAME=$(echo $EXTERNALPACKAGES | cut -d " " -f $NUM1-$NUM1)
     45        PACKAGEINST=$(echo $EXTERNALPACKAGES | cut -d " " -f $NUM2-$NUM2)
    4746
    48 if [ $? -ne 0 ]; then
    49    echo "FAILED TO INSTALL CMAKE!"
    50    exit 1;
    51 fi
     47        cd $PACKAGENAME
    5248
    53 cd "$ISSM_DIR/externalpackages/autotools"
    54 echo '---------------------------------'
    55 echo "Installing Autotools"
    56 echo '---------------------------------'
    57 ./install.sh &> /dev/null
     49        #tricky part here. We do not want to reinstall this package if it's already installed
     50        #and the svn file which does the install has not be modified! To keep track of
     51        #this, we check the current svn version against the "last changed" revision number.  If they
     52        #are the same, we reinstall the package.
     53        current_version=`svnversion`
     54        last_changed_version=`svn info $PACKAGEINST | grep "Last Changed Rev" | awk '{printf("%s\n",$4);}'`
    5855
    59 if [ $? -ne 0 ]; then
    60    echo "FAILED TO INSTALL AUTOTOOLS!"
    61    exit 1;
    62 fi
     56        if [[ $current_version == $last_changed_version ]]; then
     57                #go ahead and reinstall.
     58                echo "For $PACKAGENAME: svn current_version  is $current_version and last changed version is $last_changed_version"
     59                echo "Triggering new install of $PACKAGENAME"
     60                install_test=1
     61        else
     62                #ok, we want to skip, unless the package is not installed:
     63                if [ -d install ]; then
     64                        #could be empty, signaling a failed previous install:
     65                        if [ "$(ls -A install)" ];then
     66                                echo "For $PACKAGENAME: svn current_version  is $current_version and last changed version is $last_changed_version"
     67                                echo "and install directory exists, so skipping install of $PACKAGENAME"
     68                                install_test=0;
     69                        else
     70                                echo "For $PACKAGENAME: svn current_version  is $current_version and last changed version is $last_changed_version"
     71                                echo "and install directory exists, however, it is empty, so triggering install of $PACKAGENAME"
     72                                install_test=1;
     73                        fi
     74                else
     75                        echo "For $PACKAGENAME: svn current_version  is $current_version and last changed version is $last_changed_version"
     76                        echo "However, install directory does not exist, so triggering install of $PACKAGENAME"
     77                        install_test=1;
     78                fi
     79        fi
    6380
     81        if [[ $install_test == 1 ]]; then
     82                echo "======================================================";
     83                echo "       Installing $PACKAGENAME                        ";
     84                echo "======================================================";
     85                ./$PACKAGEINST |  tee compil.log
     86                if [ $? -ne 0 ]; then
     87                        echo "======================================================";
     88                        echo "    ERROR: installation of $PACKAGENAME failed        ";
     89                        echo "======================================================";
     90                        #erase install directory, so that next time, we still try and compile this!
     91                        rm -rf install
     92                fi
     93                source $ISSM_DIR/etc/environment.sh
     94        else
     95                echo "======================================================";
     96                echo "       Skipping install of $PACKAGENAME                        ";
     97                echo "======================================================";
     98        fi
     99        cd ..
     100done
    64101source $ISSM_DIR/etc/environment.sh
    65 
    66 cd "$ISSM_DIR/externalpackages/triangle"
    67 echo '---------------------------------'
    68 echo "Installing Triangle"
    69 echo '---------------------------------'
    70 ./install-macosx64.sh &> /dev/null
    71 
    72 if [ $? -ne 0 ]; then
    73    echo "FAILED TO INSTALL TRIANGLE!"
    74    exit 1;
    75 fi
    76 
    77 cd "$ISSM_DIR/externalpackages/mpich"
    78 echo '---------------------------------'
    79 echo "Installing MPICH"
    80 echo '---------------------------------'
    81 ./install-3.0-macosx64-static.sh $1 &> /dev/null
    82 
    83 if [ $? -ne 0 ]; then
    84    echo "FAILED TO INSTALL MPICH!"
    85    exit 1;
    86 fi
    87 
    88 cd "$ISSM_DIR/externalpackages/petsc"
    89 echo '---------------------------------'
    90 echo "Installing PETSc"
    91 echo '---------------------------------'
    92 ./install-3.5-macosx64-static.sh &> /dev/null
    93 
    94 if [ $? -ne 0 ]; then
    95    echo "FAILED TO INSTALL PETSC!"
    96    exit 1;
    97 fi
    98102# }}}
    99103
    100 source $ISSM_DIR/etc/environment.sh
    101 
    102 cd $ISSM_DIR
    103 
     104# Compile ISSM
     105#{{{
    104106echo "Aureconf..."
    105107autoreconf -if &> /dev/null
    106 
    107 if [ $? -ne 0 ]; then
    108    echo "FAILED TO AUTORECONF!"
    109    exit 1;
    110 fi
    111 
    112108echo "Configuring..."
    113109$ISSM_DIR/configs/config-macosx64-static.sh &> /dev/null
     110if [ $? -ne 0 ]; then echo "FAILED TO CONFIGURE!" && exit 1; fi
    114111
    115 if [ $? -ne 0 ]; then
    116    echo "FAILED TO CONFIGURE!"
    117    exit 1;
    118 fi
    119 
    120112echo "Building..."
    121 if [ -z $1 ]; then
    122    make -j$1 &> /dev/null
    123 else
    124    make &> /dev/null
    125 fi
     113make -j 4
     114if [ $? -ne 0 ]; then echo "FAILED TO BUILD!" && exit 1; fi
    126115
    127 if [ $? -ne 0 ]; then
    128    echo "FAILED TO BUILD!"
    129    exit 1;
    130 fi
    131 
    132116echo "Installing..."
    133117make install &> /dev/null
    134 
    135 if [ $? -ne 0 ]; then
    136    echo "FAILED TO INSTALL!"
    137    exit 1;
    138 fi
     118if [ $? -ne 0 ]; then echo "FAILED TO INSTALL!" && exit 1; fi
     119#}}}
Note: See TracBrowser for help on using the repository browser.