source:
issm/oecreview/Archive/18296-19100/ISSM-18410-18411.diff
Last change on this file was 19102, checked in by , 10 years ago | |
---|---|
File size: 6.0 KB |
-
../trunk-jpl/packagers/macosx/install.sh
1 1 #!/bin/bash 2 2 3 # Environment Variables4 #5 3 # ISSM_DIR and MATLAB_DIR must be set correctly. 6 4 # {{{ 7 5 if [ "${ISSM_DIR}x" == "x" ]; then … … 25 23 fi 26 24 # }}} 27 25 28 cd $ISSM_DIR 26 #List of external pakages to be installed and their installation scripts 27 EXTERNALPACKAGES="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 " 29 32 30 # Externalpackages33 # Install Externalpackages 31 34 # {{{ 32 echo "" 33 echo "Installing external packages..." 34 echo "" 35 cd $ISSM_DIR/externalpackages 35 36 36 cd "$ISSM_DIR/externalpackages/matlab" 37 echo '---------------------------------' 38 echo "Linking Matlab" 39 echo '---------------------------------' 40 ln -s $MATLAB_DIR ./install 37 #number of packages: 38 NUMPACKAGES=$(($(echo $EXTERNALPACKAGES | wc -w )/2)) 41 39 42 cd "$ISSM_DIR/externalpackages/cmake" 43 echo '---------------------------------' 44 echo "Installing CMAKE" 45 echo '---------------------------------' 46 ./install.sh $1 &> /dev/null 40 for ((i=1;i<=$NUMPACKAGES;i++)) 41 do 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) 47 46 48 if [ $? -ne 0 ]; then 49 echo "FAILED TO INSTALL CMAKE!" 50 exit 1; 51 fi 47 cd $PACKAGENAME 52 48 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);}'` 58 55 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 63 80 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 .. 100 done 64 101 source $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/null71 72 if [ $? -ne 0 ]; then73 echo "FAILED TO INSTALL TRIANGLE!"74 exit 1;75 fi76 77 cd "$ISSM_DIR/externalpackages/mpich"78 echo '---------------------------------'79 echo "Installing MPICH"80 echo '---------------------------------'81 ./install-3.0-macosx64-static.sh $1 &> /dev/null82 83 if [ $? -ne 0 ]; then84 echo "FAILED TO INSTALL MPICH!"85 exit 1;86 fi87 88 cd "$ISSM_DIR/externalpackages/petsc"89 echo '---------------------------------'90 echo "Installing PETSc"91 echo '---------------------------------'92 ./install-3.5-macosx64-static.sh &> /dev/null93 94 if [ $? -ne 0 ]; then95 echo "FAILED TO INSTALL PETSC!"96 exit 1;97 fi98 102 # }}} 99 103 100 source $ISSM_DIR/etc/environment.sh 101 102 cd $ISSM_DIR 103 104 # Compile ISSM 105 #{{{ 104 106 echo "Aureconf..." 105 107 autoreconf -if &> /dev/null 106 107 if [ $? -ne 0 ]; then108 echo "FAILED TO AUTORECONF!"109 exit 1;110 fi111 112 108 echo "Configuring..." 113 109 $ISSM_DIR/configs/config-macosx64-static.sh &> /dev/null 110 if [ $? -ne 0 ]; then echo "FAILED TO CONFIGURE!" && exit 1; fi 114 111 115 if [ $? -ne 0 ]; then116 echo "FAILED TO CONFIGURE!"117 exit 1;118 fi119 120 112 echo "Building..." 121 if [ -z $1 ]; then 122 make -j$1 &> /dev/null 123 else 124 make &> /dev/null 125 fi 113 make -j 4 114 if [ $? -ne 0 ]; then echo "FAILED TO BUILD!" && exit 1; fi 126 115 127 if [ $? -ne 0 ]; then128 echo "FAILED TO BUILD!"129 exit 1;130 fi131 132 116 echo "Installing..." 133 117 make install &> /dev/null 134 135 if [ $? -ne 0 ]; then 136 echo "FAILED TO INSTALL!" 137 exit 1; 138 fi 118 if [ $? -ne 0 ]; then echo "FAILED TO INSTALL!" && exit 1; fi 119 #}}}
Note:
See TracBrowser
for help on using the repository browser.