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
RevLine 
[19102]1Index: ../trunk-jpl/packagers/macosx/install.sh
2===================================================================
3--- ../trunk-jpl/packagers/macosx/install.sh (revision 18410)
4+++ ../trunk-jpl/packagers/macosx/install.sh (revision 18411)
5@@ -1,7 +1,5 @@
6 #!/bin/bash
7
8-# Environment Variables
9-#
10 # ISSM_DIR and MATLAB_DIR must be set correctly.
11 # {{{
12 if [ "${ISSM_DIR}x" == "x" ]; then
13@@ -25,114 +23,97 @@
14 fi
15 # }}}
16
17-cd $ISSM_DIR
18+#List of external pakages to be installed and their installation scripts
19+EXTERNALPACKAGES="autotools install.sh
20+ mpich install-3.0-macosx64-static.sh
21+ cmake install.sh
22+ petsc install-3.5-macosx64-static.sh
23+ triangle install-macosx64.sh "
24
25-# Externalpackages
26+# Install Externalpackages
27 # {{{
28-echo ""
29-echo "Installing external packages..."
30-echo ""
31+cd $ISSM_DIR/externalpackages
32
33-cd "$ISSM_DIR/externalpackages/matlab"
34-echo '---------------------------------'
35-echo "Linking Matlab"
36-echo '---------------------------------'
37-ln -s $MATLAB_DIR ./install
38+#number of packages:
39+NUMPACKAGES=$(($(echo $EXTERNALPACKAGES | wc -w )/2))
40
41-cd "$ISSM_DIR/externalpackages/cmake"
42-echo '---------------------------------'
43-echo "Installing CMAKE"
44-echo '---------------------------------'
45-./install.sh $1 &> /dev/null
46+for ((i=1;i<=$NUMPACKAGES;i++))
47+do
48+ NUM1=$((2*$i-1))
49+ NUM2=$((2*$i))
50+ PACKAGENAME=$(echo $EXTERNALPACKAGES | cut -d " " -f $NUM1-$NUM1)
51+ PACKAGEINST=$(echo $EXTERNALPACKAGES | cut -d " " -f $NUM2-$NUM2)
52
53-if [ $? -ne 0 ]; then
54- echo "FAILED TO INSTALL CMAKE!"
55- exit 1;
56-fi
57+ cd $PACKAGENAME
58
59-cd "$ISSM_DIR/externalpackages/autotools"
60-echo '---------------------------------'
61-echo "Installing Autotools"
62-echo '---------------------------------'
63-./install.sh &> /dev/null
64+ #tricky part here. We do not want to reinstall this package if it's already installed
65+ #and the svn file which does the install has not be modified! To keep track of
66+ #this, we check the current svn version against the "last changed" revision number. If they
67+ #are the same, we reinstall the package.
68+ current_version=`svnversion`
69+ last_changed_version=`svn info $PACKAGEINST | grep "Last Changed Rev" | awk '{printf("%s\n",$4);}'`
70
71-if [ $? -ne 0 ]; then
72- echo "FAILED TO INSTALL AUTOTOOLS!"
73- exit 1;
74-fi
75+ if [[ $current_version == $last_changed_version ]]; then
76+ #go ahead and reinstall.
77+ echo "For $PACKAGENAME: svn current_version is $current_version and last changed version is $last_changed_version"
78+ echo "Triggering new install of $PACKAGENAME"
79+ install_test=1
80+ else
81+ #ok, we want to skip, unless the package is not installed:
82+ if [ -d install ]; then
83+ #could be empty, signaling a failed previous install:
84+ if [ "$(ls -A install)" ];then
85+ echo "For $PACKAGENAME: svn current_version is $current_version and last changed version is $last_changed_version"
86+ echo "and install directory exists, so skipping install of $PACKAGENAME"
87+ install_test=0;
88+ else
89+ echo "For $PACKAGENAME: svn current_version is $current_version and last changed version is $last_changed_version"
90+ echo "and install directory exists, however, it is empty, so triggering install of $PACKAGENAME"
91+ install_test=1;
92+ fi
93+ else
94+ echo "For $PACKAGENAME: svn current_version is $current_version and last changed version is $last_changed_version"
95+ echo "However, install directory does not exist, so triggering install of $PACKAGENAME"
96+ install_test=1;
97+ fi
98+ fi
99
100+ if [[ $install_test == 1 ]]; then
101+ echo "======================================================";
102+ echo " Installing $PACKAGENAME ";
103+ echo "======================================================";
104+ ./$PACKAGEINST | tee compil.log
105+ if [ $? -ne 0 ]; then
106+ echo "======================================================";
107+ echo " ERROR: installation of $PACKAGENAME failed ";
108+ echo "======================================================";
109+ #erase install directory, so that next time, we still try and compile this!
110+ rm -rf install
111+ fi
112+ source $ISSM_DIR/etc/environment.sh
113+ else
114+ echo "======================================================";
115+ echo " Skipping install of $PACKAGENAME ";
116+ echo "======================================================";
117+ fi
118+ cd ..
119+done
120 source $ISSM_DIR/etc/environment.sh
121-
122-cd "$ISSM_DIR/externalpackages/triangle"
123-echo '---------------------------------'
124-echo "Installing Triangle"
125-echo '---------------------------------'
126-./install-macosx64.sh &> /dev/null
127-
128-if [ $? -ne 0 ]; then
129- echo "FAILED TO INSTALL TRIANGLE!"
130- exit 1;
131-fi
132-
133-cd "$ISSM_DIR/externalpackages/mpich"
134-echo '---------------------------------'
135-echo "Installing MPICH"
136-echo '---------------------------------'
137-./install-3.0-macosx64-static.sh $1 &> /dev/null
138-
139-if [ $? -ne 0 ]; then
140- echo "FAILED TO INSTALL MPICH!"
141- exit 1;
142-fi
143-
144-cd "$ISSM_DIR/externalpackages/petsc"
145-echo '---------------------------------'
146-echo "Installing PETSc"
147-echo '---------------------------------'
148-./install-3.5-macosx64-static.sh &> /dev/null
149-
150-if [ $? -ne 0 ]; then
151- echo "FAILED TO INSTALL PETSC!"
152- exit 1;
153-fi
154 # }}}
155
156-source $ISSM_DIR/etc/environment.sh
157-
158-cd $ISSM_DIR
159-
160+# Compile ISSM
161+#{{{
162 echo "Aureconf..."
163 autoreconf -if &> /dev/null
164-
165-if [ $? -ne 0 ]; then
166- echo "FAILED TO AUTORECONF!"
167- exit 1;
168-fi
169-
170 echo "Configuring..."
171 $ISSM_DIR/configs/config-macosx64-static.sh &> /dev/null
172+if [ $? -ne 0 ]; then echo "FAILED TO CONFIGURE!" && exit 1; fi
173
174-if [ $? -ne 0 ]; then
175- echo "FAILED TO CONFIGURE!"
176- exit 1;
177-fi
178-
179 echo "Building..."
180-if [ -z $1 ]; then
181- make -j$1 &> /dev/null
182-else
183- make &> /dev/null
184-fi
185+make -j 4
186+if [ $? -ne 0 ]; then echo "FAILED TO BUILD!" && exit 1; fi
187
188-if [ $? -ne 0 ]; then
189- echo "FAILED TO BUILD!"
190- exit 1;
191-fi
192-
193 echo "Installing..."
194 make install &> /dev/null
195-
196-if [ $? -ne 0 ]; then
197- echo "FAILED TO INSTALL!"
198- exit 1;
199-fi
200+if [ $? -ne 0 ]; then echo "FAILED TO INSTALL!" && exit 1; fi
201+#}}}
Note: See TracBrowser for help on using the repository browser.