install 16.1 KB
Newer Older
Pietro Incardona's avatar
Pietro Incardona committed
1
#! /bin/bash
Pietro Incardona's avatar
Pietro Incardona committed
2

Pietro Incardona's avatar
Pietro Incardona committed
3
4
5
6
7
source script/help
source script/discover_os
source script/show_solutions
source script/pre_req
source script/remove_old
8
source script/set_mpi
9
source script/conf_PETSC
Pietro Incardona's avatar
Pietro Incardona committed
10
source script/update_openfpm
11

Pietro Incardona's avatar
Pietro Incardona committed
12
13
14
15
## Check that your home is not empty

if [ x"$HOME" == x"" ]; then
	 echo -e "Your $HOME folder is empty \033[91;5;1m FAILED \033[0m"
Pietro Incardona's avatar
Pietro Incardona committed
16
	 exit 1
Pietro Incardona's avatar
Pietro Incardona committed
17
18
fi

Pietro Incardona's avatar
Pietro Incardona committed
19
install_req=1
Pietro Incardona's avatar
Pietro Incardona committed
20
i_dir=""
Pietro Incardona's avatar
Pietro Incardona committed
21
sq=0
Pietro Incardona's avatar
Pietro Incardona committed
22
nomake=0
23
24
update_openfpm=0
upgrade_openfpm=0
Pietro Incardona's avatar
Pietro Incardona committed
25

26
while getopts :di:smhc:nu FLAG; do
Pietro Incardona's avatar
Pietro Incardona committed
27
	case $FLAG in
Pietro Incardona's avatar
Pietro Incardona committed
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
	    d)
	      echo "Disable depencencies installation"
	      install_req=0
	      ;;
	    i)
	      echo "Setting dependencies installation dir: $OPTARG"
	      i_dir=$OPTARG
	      ;;
	    s)
	      echo "Skipping user cin"
	      sq=1
	      ;;
	    c)
	      echo "Fowarding options $OPTARG to configure script"
	      configure_options=$OPTARG
	      ;;
Pietro Incardona's avatar
Pietro Incardona committed
44
            m)
45
              echo "Skip to make the testing"
Pietro Incardona's avatar
Pietro Incardona committed
46
47
              nomake=1
              ;;
48
49
50
51
52
53
54
55
	    u)
	      echo "Updating openfpm"
	      update_openfpm=1
	      ;;
	    n)
              echo "Upgrading openfpm"
	      upgrade_openfpm=1
	      ;;
Pietro Incardona's avatar
Pietro Incardona committed
56
	    h)  #show help
Pietro Incardona's avatar
Pietro Incardona committed
57
58
59
60
61
      	      HELP
              ;;
    	    \?) #unrecognized option - are fowarded to configure
              ;;
	esac
Pietro Incardona's avatar
Pietro Incardona committed
62
63
done

Pietro Incardona's avatar
Pietro Incardona committed
64
65
66
67
68
### Configure options

i_dir_old=$i_dir
configure_options_old=$configure_options

incardon's avatar
incardon committed
69
70
discover_os

71
72
## Remove old dependencies and installations

Pietro Incardona's avatar
Pietro Incardona committed
73
if [ x"$i_dir" == x"" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
74
75
76
 i_dir="$HOME"
fi

77
78
remove_old $i_dir

Pietro Incardona's avatar
Pietro Incardona committed
79
80
## Check and try to install the prerequisites

81
pre_req
Pietro Incardona's avatar
Pietro Incardona committed
82

83
84
85
86
87
88
if [ $update_openfpm -eq 1 -a  $upgrade_openfpm -eq 1 ]; then
	echo -e "\033[1;5;31m It is not possible to update and upgrade at the same time \033[0m"
	exit 1
fi

if [ $update_openfpm -eq 1 ]; then
89
	update_openfpm update
Pietro Incardona's avatar
Pietro Incardona committed
90
	exit 0
91
92
93
fi

if [ $upgrade_openfpm -eq 1 ]; then
Pietro Incardona's avatar
Pietro Incardona committed
94
	update_openfpm upgrade
Pietro Incardona's avatar
Pietro Incardona committed
95
	exit 0
96
97
fi

Pietro Incardona's avatar
Pietro Incardona committed
98
99
## clone the dependencies

Pietro Incardona's avatar
Pietro Incardona committed
100
git submodule init
Yaser Afshar's avatar
Yaser Afshar committed
101
102
103
104
if [ $? -ne 0 ]; then
  echo -e "Configure\033[91;5;1m FAILED \033[0m"
  exit 1
fi
Pietro Incardona's avatar
Pietro Incardona committed
105

Pietro Incardona's avatar
Pietro Incardona committed
106
git submodule update
Yaser Afshar's avatar
Yaser Afshar committed
107
108
109
110
if [ $? -ne 0 ]; then
  echo -e "Configure\033[91;5;1m FAILED \033[0m"
  exit 1
fi
Pietro Incardona's avatar
Pietro Incardona committed
111

Pietro Incardona's avatar
Pietro Incardona committed
112
113
114
115
116
117
#### Eventualy remove garbage from old installation

rm -rf openfpm_numerics/src/.deps
rm -rf src/.deps


118
119
120
# Create config directory in each submodule

cd openfpm_data
Pietro Incardona's avatar
Pietro Incardona committed
121
122
123
if [ ! -d src/config  ]; then
  mkdir src/config
fi
124
125
126
cd ..

cd openfpm_devices
Pietro Incardona's avatar
Pietro Incardona committed
127
128
129
if [ ! -d src/config  ]; then
  mkdir src/config
fi
130
131
132
cd ..

cd openfpm_vcluster
Pietro Incardona's avatar
Pietro Incardona committed
133
134
135
if [ ! -d src/config  ]; then
  mkdir src/config
fi
136
137
138
cd ..

cd openfpm_io
Pietro Incardona's avatar
Pietro Incardona committed
139
140
141
if [ ! -d src/config  ]; then
  mkdir src/config
fi
142
143
cd ..

incardon's avatar
incardon committed
144
145
146
147
148
149
cd openfpm_numerics
if [ ! -d src/config  ]; then
  mkdir src/config
fi
cd ..

Pietro Incardona's avatar
Pietro Incardona committed
150
# Create config directory
incardon's avatar
incardon committed
151

Pietro Incardona's avatar
Pietro Incardona committed
152
153
154
if [ ! -d src/config ]; then
  mkdir src/config
fi
incardon's avatar
incardon committed
155

Pietro Incardona's avatar
Pietro Incardona committed
156
## generate configure script
incardon's avatar
incardon committed
157

Pietro Incardona's avatar
Pietro Incardona committed
158
sh ./autogen.sh
Incardona Pietro's avatar
Incardona Pietro committed
159
160
161
162
if [ $? -ne 0 ]; then
  echo -e "Configure\033[91;5;1m FAILED \033[0m"
  exit 1
fi
incardon's avatar
incardon committed
163

Pietro Incardona's avatar
Pietro Incardona committed
164
## check for options
incardon's avatar
incardon committed
165
166
167
168

echo -e "\033[1;34;5mDEPENCENCIES INSTALLATION DIR      \033[0m"
echo -e "Every required dependencies if needed will be installed into: \033[1;34;5m$i_dir\033[0m"
echo -e "if you want to install somewhere else do ./install -i /somewhere/else"
Pietro Incardona's avatar
Pietro Incardona committed
169
170
171
172
if [ x"$configure_options" == x"" ]; then
    echo -e "OpenFPM will be installed into: \033[1;34;5m/usr/local\033[0m"
    echo "if you want to install in a different place use ./install -c \"--prefix=/where/you/want/to/install\""
fi
Pietro Incardona's avatar
Pietro Incardona committed
173
if [ $sq -eq 0 ]; then
174
  unset commands
Pietro Incardona's avatar
Pietro Incardona committed
175
176
177
  commands[0]="Continue"
  possible_solutions "${commands[@]}"
fi
incardon's avatar
incardon committed
178

Pietro Incardona's avatar
Pietro Incardona committed
179
ncore=4
Pietro Incardona's avatar
Pietro Incardona committed
180
echo -e "\033[1mHow many core you want to use to install the dependencies?\033[0m"
181
182
183
if [ $sq -eq 0 ]; then
  read ncore
fi
Pietro Incardona's avatar
Pietro Incardona committed
184

incardon's avatar
incardon committed
185
186
187
188
echo -e "Installing requirements into: $i_dir "

##

Pietro Incardona's avatar
Pietro Incardona committed
189
## Take all the options with the exception of -d -i -s
Pietro Incardona's avatar
Pietro Incardona committed
190
191
192

## call the configure script

193
194
### Installing PETSC

Pietro Incardona's avatar
Pietro Incardona committed
195
if [ ! -d "$i_dir/PETSC" -o ! -d "$i_dir/EIGEN" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
196
197
198
    echo -e "\033[1;34m Optional packages  \033[0m"
    echo -e "\033[1mDo you want to install linear algebra packages ?(y/n)\033[0m"
    echo "Installation can take long time (90 minutes on i7-3612QM 4 cores)"
199
200
201
202
203
    if [ $sq -eq 0 ]; then
      read inst_lin_alg
    else
      inst_lin_alg = n
    fi
Pietro Incardona's avatar
Pietro Incardona committed
204
205
fi

206
207
lin_alg_dir=""
lin_alg_lib=""
Pietro Incardona's avatar
Pietro Incardona committed
208
lin_alg_inc=""
Pietro Incardona's avatar
Pietro Incardona committed
209
210
211
212
213
214
215
216
217
218
219
if [ -d "$i_dir/METIS" ]; then
    configure_options=" $configure_options --with-metis=$i_dir/METIS "
fi
if [ -d "$i_dir/BOOST" ]; then
    configure_options=" $configure_options --with-boost=$i_dir/BOOST "
fi
if [ -d "$i_dir/PARMETIS" ]; then
    configure_options=" $configure_options --with-parmetis=$i_dir/PARMETIS "
fi
if [ -d "$i_dir/HDF5" ]; then
    configure_options=" $configure_options --with-hdf5=$i_dir/HDF5/bin/h5pcc "
Pietro Incardona's avatar
Pietro Incardona committed
220
fi
Pietro Incardona's avatar
Pietro Incardona committed
221
222
223
if [ -d "$i_dir/LIBHILBERT" ]; then
    configure_options=" $configure_options --with-libhilbert=$i_dir/LIBHILBERT "
fi
Pietro Incardona's avatar
Pietro Incardona committed
224

Pietro Incardona's avatar
Pietro Incardona committed
225
226
227
### if we are on linux we have to add -rt

if [ x"$platform" = x"linux" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
228
	lin_alg_lib="$lin_alg_lib -lrt"
Pietro Incardona's avatar
Pietro Incardona committed
229
230
fi

Pietro Incardona's avatar
Pietro Incardona committed
231
232
### MPI compilers must be in your PATH folder

233
set_mpi $i_dir $ncore $CC $CXX $F77 $FC
Pietro Incardona's avatar
Pietro Incardona committed
234

235
236
### METIS and ParMETIS must be installed independently from sistem wide installation

Pietro Incardona's avatar
Pietro Incardona committed
237
./script/install_Parmetis.sh $i_dir $ncore
238
configure_options=" $configure_options --with-parmetis=$i_dir/PARMETIS "
Pietro Incardona's avatar
Pietro Incardona committed
239
./script/install_Metis.sh $i_dir $compiler_gcc $compiler_gpp $ncore
240
configure_options=" $configure_options --with-metis=$i_dir/METIS "
241

Pietro Incardona's avatar
Pietro Incardona committed
242
MPI_installed=0
Pietro Incardona's avatar
Pietro Incardona committed
243
MPI_System_prv=1
244
245
METIS_installed=1
PARMETIS_installed=1
Pietro Incardona's avatar
Pietro Incardona committed
246
BOOST_installed=0
Pietro Incardona's avatar
Pietro Incardona committed
247
BOOST_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
248
LAPACK_installed=0
Pietro Incardona's avatar
Pietro Incardona committed
249
LAPACK_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
250
SUITESPARSE_installed=0
Pietro Incardona's avatar
Pietro Incardona committed
251
SUITESPARSE_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
252
EIGEN_installed=0
Pietro Incardona's avatar
Pietro Incardona committed
253
EIGEN_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
254
HDF5_installed=0
Pietro Incardona's avatar
Pietro Incardona committed
255
HDF5_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
256
LIBHILBERT_installed=0
Pietro Incardona's avatar
Pietro Incardona committed
257
258
259
conf_err=1

if [ $install_req -eq 0 ]; then
260
    ./configure $options $configure_options "$configure_blas_option"
Pietro Incardona's avatar
Pietro Incardona committed
261
262
263
else
    while [ $conf_err -ne 0 ]
    do
264
        ./configure $options $configure_options "$configure_blas_option"
Pietro Incardona's avatar
Pietro Incardona committed
265
266
267
268
269
270
        conf_err=$?

	echo "Configure script terminated with $conf_err"

        ## if MPI or METIS installation required install it
        if [ $conf_err -eq 200  ]; then
271
            echo "MPI not found try to install, $MPI_installed"
Pietro Incardona's avatar
Pietro Incardona committed
272
273
274
275
            if [ $MPI_installed -eq 1 ]; then
                echo "Error the installation of MPI failed"
                exit 1
            fi
276
            ./script/install_MPI.sh $i_dir $ncore $CC $CXX $F77 $FC
Pietro Incardona's avatar
Pietro Incardona committed
277
            MPI_installed=1
Pietro Incardona's avatar
Pietro Incardona committed
278
            export PATH="$i_dir/MPI/bin:$PATH"
279
            configure_options="$configure_options CXX=mpic++ "
Pietro Incardona's avatar
Pietro Incardona committed
280
281
282
283
284
285
        elif [ $conf_err -eq 201  ]; then
            echo "Metis not found try to install"
            if [ $METIS_installed -eq 1  ]; then
                echo "Error the installation of METIS failed"
                exit 1
            fi
incardon's avatar
incardon committed
286
            ./script/install_Metis.sh $i_dir $compiler_gcc $compiler_gpp
Pietro Incardona's avatar
Pietro Incardona committed
287
            METIS_installed=1
Yaser Afshar's avatar
Yaser Afshar committed
288
            configure_options=" $configure_options --with-metis=$i_dir/METIS "
Pietro Incardona's avatar
Pietro Incardona committed
289
        elif [ $conf_err -eq 202 ]; then
290
            echo "Boost not found try to install in $i_dir with $compiler_opt"
Pietro Incardona's avatar
Pietro Incardona committed
291
            if [ $BOOST_installed -eq 1  ]; then
292
293
294
                echo "Error the installation of Boost failed"
                exit 1
            fi
295
            if [ x"$CXX" == x"icpc" ]; then
296
              ./script/install_BOOST.sh $i_dir $ncore intel-linux
297
298
            elif [ x"$CXX" == x"clang++" ]; then
              ./script/install_BOOST.sh $i_dir $ncore darwin
299
300
301
            else
              ./script/install_BOOST.sh $i_dir $ncore gcc
            fi
302
            BOOST_installed=1
Yaser Afshar's avatar
Yaser Afshar committed
303
            configure_options=" $configure_options --with-boost=$i_dir/BOOST "
304
	elif [ $conf_err -eq 208 ]; then
305
306
307
308
309
            echo "ParMetis not found try to install"
            if [ $PARMETIS_installed -eq 1  ]; then
                echo "Error the installation of ParMETIS failed"
                exit 1
            fi
Pietro Incardona's avatar
Pietro Incardona committed
310
            ./script/install_Parmetis.sh $i_dir $ncore
311
312
            PARMETIS_installed=1
            configure_options=" $configure_options --with-parmetis=$i_dir/PARMETIS "
Pietro Incardona's avatar
Pietro Incardona committed
313
314
315
        elif [ $conf_err -eq 207 ]; then
            echo "HDF5 not found try to install"
            if [ $HDF5_installed -eq 1 ]; then
Pietro Incardona's avatar
Pietro Incardona committed
316
317
                echo "Error the installation of HDF5 failed"
                exit 1	
Pietro Incardona's avatar
Pietro Incardona committed
318
            fi
Pietro Incardona's avatar
Pietro Incardona committed
319
            ./script/install_HDF5.sh $i_dir $ncore
Pietro Incardona's avatar
Pietro Incardona committed
320
            configure_options=" $configure_options --with-hdf5=$i_dir/HDF5/bin/h5pcc "
Pietro Incardona's avatar
Pietro Incardona committed
321
            HDF5_installed=1
Pietro Incardona's avatar
Pietro Incardona committed
322
323
324
325
326
327
328
329
330
        elif [ $conf_err -eq 210 ]; then
            echo "LIBHILBERT not found try to install"
            if [ $LIBHILBERT_installed -eq 1 ]; then
                echo "Error the installation of LIBHILBERT failed"
                exit 1
            fi
            ./script/install_LIBHILBERT.sh $i_dir $ncore
            configure_options=" $configure_options --with-libhilbert=$i_dir/LIBHILBERT "
            LIBHILBERT_installed=1
Pietro Incardona's avatar
Pietro Incardona committed
331
332
333
334
335
        elif [ $conf_err -ne 0 ]; then
            echo "I do not know how to recover from this error"
            exit 1
        fi
    done
Pietro Incardona's avatar
Pietro Incardona committed
336

Pietro Incardona's avatar
Pietro Incardona committed
337
    if [ x"$inst_lin_alg" == x"y" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
338
        ./script/install_EIGEN.sh $i_dir $ncore
Pietro Incardona's avatar
Pietro Incardona committed
339
        ./script/install_PETSC.sh $i_dir $ncore $CC $CXX $F77 $FC
Pietro Incardona's avatar
Pietro Incardona committed
340
341
    fi

342
343
344
345
	### collect PETSC configuration options
	conf_PETSC

    ./configure $options $configure_options "$configure_blas_option"
Pietro Incardona's avatar
Pietro Incardona committed
346

Pietro Incardona's avatar
Pietro Incardona committed
347
348
fi

Pietro Incardona's avatar
Pietro Incardona committed
349
### Create example.mk
350
install_base=$(cat install_dir)
351
352
openmp_flags="$(cat openmp_flags) $(cat openfpm_flags)"

353
354
echo "INCLUDE_PATH= $openmp_flags  -I. -I$install_base/openfpm_numerics/include -I$install_base/openfpm_pdata/include/config -I$install_base/openfpm_pdata/include -I$install_base/openfpm_data/include -I$install_base/openfpm_vcluster/include -I$install_base/openfpm_io/include -I$install_base/openfpm_devices/include -I$i_dir/METIS/include -I$i_dir/PARMETIS/include -I$i_dir/BOOST/include -I$i_dir/HDF5/include -I$i_dir/LIBHILBERT/include  $lin_alg_inc" > example.mk
echo "LIBS_PATH= $openmp_flags -L$install_base/openfpm_devices/lib -L$install_base/openfpm_pdata/lib  -L$install_base/openfpm_vcluster/lib -L$i_dir/METIS/lib -L$i_dir/PARMETIS/lib  -L$i_dir/BOOST/lib -L$i_dir/HDF5/lib -L$i_dir/LIBHILBERT/lib  $lin_alg_dir" >> example.mk
Pietro Incardona's avatar
Pietro Incardona committed
355
356
echo "LIBS=-lvcluster -lofpm_pdata -lofpmmemory -lparmetis -lmetis -lboost_iostreams -lhdf5 -llibhilbert  $lin_alg_lib" >> example.mk
echo "LIBS_SE2=-lvcluster -lofpmmemory_se2 -lparmetis -lmetis -lboost_iostreams -lhdf5 -llibhilbert $lin_alg_lib" >> example.mk
Pietro Incardona's avatar
Pietro Incardona committed
357
358
cp example.mk src/example.mk
cp example.mk example/example.mk
359

Pietro Incardona's avatar
Pietro Incardona committed
360
if [ $nomake -eq 0 ]; then
Pietro Incardona's avatar
Pietro Incardona committed
361
  make clean
362
363
  make
fi
364
365
366
367
368

if [ $? -ne 0 ]; then
  conf_err=1
fi

Pietro Incardona's avatar
Pietro Incardona committed
369
370
echo "Command used to configure"
echo ""
Pietro Incardona's avatar
Pietro Incardona committed
371
echo -e "\033[1m ./configure $options $configure_options \033[0m "
Pietro Incardona's avatar
Pietro Incardona committed
372
echo ""
373
374
375
376
377
378
379

if [ x"$platform" = x"linux" ]; then
  bash_library="export LD_LIBRARY_PATH=\"\$LD_LIBRARY_PATH"
else
  bash_library="export DYLD_LIBRARY_PATH=\"\$DYLD_LIBRARY_PATH"
fi

Pietro Incardona's avatar
Pietro Incardona committed
380
bash_path="export PATH=\""
381
382
383
384

echo -e "\033[1;34;5m ---------------------------------------  \033[0m"
echo -e "\033[1;34;5m --------- INSTALLATION REPORT ---------  \033[0m"
echo ""
Pietro Incardona's avatar
Pietro Incardona committed
385
386
echo -e "\033[1;34;5m ---------- Mandatory packages ---------  \033[0m"
echo ""
387

Pietro Incardona's avatar
Pietro Incardona committed
388
389
if [ -d "$i_dir/MPI" ]; then
  installation_report="$installation_report \033[92;1mMPI\033[0m Installed: \033[1m $i_dir/MPI \033[0m\n"
Pietro Incardona's avatar
Pietro Incardona committed
390
  bash_path="$bash_path:$i_dir/MPI/bin:"
Pietro Incardona's avatar
Pietro Incardona committed
391
392
393
  bash_library="$bash_library:$i_dir/MPI/lib"
elif [ $MPI_System_prv -eq 1 ]; then
  installation_report="$installation_report \033[92;1mMPI\033[0m Installed: \033[1m System installation \033[0m\n"
Pietro Incardona's avatar
Pietro Incardona committed
394
fi
Pietro Incardona's avatar
Pietro Incardona committed
395

Pietro Incardona's avatar
Pietro Incardona committed
396
if [ -d "$i_dir/METIS" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
397
  installation_report="$installation_report \033[92;1mMETIS\033[0m Installed: \033[1m $i_dir/METIS \033[0m\n"
398
  bash_library="$bash_library:$i_dir/METIS/lib"
399
400
fi

Pietro Incardona's avatar
Pietro Incardona committed
401
if [ -d "$i_dir/PARMETIS" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
402
403
404
405
  installation_report="$installation_report \033[92;1mPARMETIS\033[0m Installed: \033[1m $i_dir/PARMETIS \033[0m\n"
  bash_library="$bash_library:$i_dir/PARMETIS/lib"
fi

Pietro Incardona's avatar
Pietro Incardona committed
406
if [ -d "$i_dir/BOOST" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
407
  installation_report="$installation_report \033[92;1mBOOST\033[0m Installed: \033[1m $i_dir/BOOST \033[0m\n"
408
  bash_library="$bash_library:$i_dir/BOOST/lib"
Pietro Incardona's avatar
Pietro Incardona committed
409
410
411
412
elif [ $BOOST_System_prv -eq 1 ]; then
  installation_report="$installation_report \033[92;1mBOOST\033[0m Installed: \033[1m System installation \033[0m\n"
fi

Pietro Incardona's avatar
Pietro Incardona committed
413
if [ -d "$i_dir/HDF5" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
414
415
416
  installation_report="$installation_report \033[92;1mHDF5\033[0m Installed: \033[1m $i_dir/HDF5 \033[0m\n"
  bash_library="$bash_library:$i_dir/HDF5/lib"
fi
417

Pietro Incardona's avatar
Pietro Incardona committed
418
419
420
421
422
if [ -d "$i_dir/LIBHILBERT" ]; then
  installation_report="$installation_report \033[92;1mLibHilbert\033[0m Installed: \033[1m $i_dir/LIBHILBERT \033[0m\n"
  bash_library="$bash_library:$i_dir/LIBHILBERT/lib"
fi

Pietro Incardona's avatar
Pietro Incardona committed
423
424
425
426
427
428
429
430
431
432
433
434
435
echo -e "$installation_report"

echo ""
echo -e "\033[1;34;5m ---------- Optional packages -----------  \033[0m"
echo ""

installation_report=""

if [ -d "$i_dir/PETSC" ]; then
  installation_report="$installation_report \033[92;1mPETSC\033[0m Installed: \033[1m $i_dir/PETSC \033[0m\n"
  bash_library="$bash_library:$i_dir/PETSC/lib"
else
  installation_report="$installation_report \033[91;1mPETSC\033[0m Installed: \033[1m NO \033[0m\n"
Pietro Incardona's avatar
Pietro Incardona committed
436
fi
437

Pietro Incardona's avatar
Pietro Incardona committed
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
if [ -d "$i_dir/EIGEN" ]; then
  installation_report="$installation_report \033[92;1mEIGEN\033[0m Installed: \033[1m $i_dir/EIGEN \033[0m\n"
fi

echo -e "$installation_report"

echo -e "\033[1;34;5m --------------------------------  \033[0m"

installation_report=""

if [ -d "$i_dir/TRILINOS" ]; then
  installation_report="$installation_report \033[92;1mTRILINOS\033[0m Installed: \033[1m $i_dir/TRILINOS \033[0m\n"
  bash_library="$bash_library:$i_dir/TRILINOS/lib"
else
  installation_report="$installation_report \033[91;1mTRILINOS\033[0m Installed: \033[1m NO \033[0m\n"
fi

if [ -d "$i_dir/OPENBLAS" ]; then
  installation_report="$installation_report \033[92;1mOPENBLAS\033[0m Installed: \033[1m $i_dir/OPENBLAS \033[0m\n"
  bash_library="$bash_library:$i_dir/OPENBLAS/lib"
else
  installation_report="$installation_report \033[91;1mOPENBLAS\033[0m Installed: \033[1m NO \033[0m\n"
Pietro Incardona's avatar
Pietro Incardona committed
460
fi
Pietro Incardona's avatar
Pietro Incardona committed
461
462
463

if [ -d "$i_dir/SUITESPARSE" ]; then
  installation_report="$installation_report \033[92;1mSUITESPARSE\033[0m Installed: \033[1m $i_dir/SUITESPARSE \033[0m\n"
464
  bash_library="$bash_library:$i_dir/SUITESPARSE/lib"
Pietro Incardona's avatar
Pietro Incardona committed
465
466
else
  installation_report="$installation_report \033[91;1mSUITESPARSE\033[0m Installed: \033[1m NO \033[0m\n"
Pietro Incardona's avatar
Pietro Incardona committed
467
fi
Pietro Incardona's avatar
Pietro Incardona committed
468
469
470
471
472
473

if [ -d "$i_dir/SCALAPACK" ]; then
  installation_report="$installation_report \033[92;1mSCALAPACK\033[0m Installed: \033[1m $i_dir/SCALAPACK \033[0m\n"
  bash_library="$bash_library:$i_dir/SCALAPACK/lib"
else
  installation_report="$installation_report \033[91;1mSCALAPACK\033[0m Installed: \033[1m NO \033[0m\n"
Pietro Incardona's avatar
Pietro Incardona committed
474
fi
475

Pietro Incardona's avatar
Pietro Incardona committed
476
477
478
479
480
if [ -d "$i_dir/MUMPS" ]; then
  installation_report="$installation_report \033[92;1mMUMPS\033[0m Installed: \033[1m $i_dir/MUMPS \033[0m\n"
  bash_library="$bash_library:$i_dir/MUMPS/lib"
else
  installation_report="$installation_report \033[91;1mMUMPS\033[0m Installed: \033[1m NO \033[0m\n"
Pietro Incardona's avatar
Pietro Incardona committed
481
fi
Pietro Incardona's avatar
Pietro Incardona committed
482
483
484
485
486
487

if [ -d "$i_dir/SUPERLU_DIST" ]; then
  installation_report="$installation_report \033[92;1mSUPERLU_DIST\033[0m Installed: \033[1m $i_dir/SUPERLU_DIST \033[0m\n"
  bash_library="$bash_library:$i_dir/SUPERLU_DIST/lib"
else
  installation_report="$installation_report \033[91;1mSUPERLU_DIST\033[0m Installed: \033[1m NO \033[0m\n"
488
489
fi

Pietro Incardona's avatar
Pietro Incardona committed
490
491
492
493
494
495
496
if [ -d "$i_dir/HYPRE" ]; then
  installation_report="$installation_report \033[92;1mHYPRE\033[0m Installed: \033[1m $i_dir/HYPRE \033[0m\n"
  bash_library="$bash_library:$i_dir/HYPRE/lib"
else
  installation_report="$installation_report \033[91;1mHYPRE\033[0m Installed: \033[1m NO \033[0m\n"
fi

Pietro Incardona's avatar
Pietro Incardona committed
497
bash_path="$bash_path$PATH\""
Pietro Incardona's avatar
Pietro Incardona committed
498
bash_library="$bash_library\""
499
500
501
502
503
504
505

##### Writing openfpm_vars file

echo "$bash_path" > $HOME/openfpm_vars
echo "$bash_library" >> $HOME/openfpm_vars

echo -e "$installation_report"
Pietro Incardona's avatar
Pietro Incardona committed
506
507
508
509
echo ""
echo ""
if [ $conf_err -eq 0  ]; then
  echo -e "Install summary\033[92;5;1m SUCCEED \033[0m"
Pietro Incardona's avatar
Pietro Incardona committed
510
511
  
  ## Save dependencies dir and foward options
Pietro Incardona's avatar
Pietro Incardona committed
512
513
  printf "%s" "$i_dir_old" > dependencies_dir
  printf "%s" "$configure_options_old" > foward_options
Pietro Incardona's avatar
Pietro Incardona committed
514

Pietro Incardona's avatar
Pietro Incardona committed
515
516
517
518
else
  echo -e "Install summary\033[91;5;1m FAILED \033[0m"
fi

519
520
echo ""
if [ x"$platform" = x"linux" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
521
  echo "Before run any openfpm program you must execute the following command. A simple way would be to append this line at the end of your $HOME/.bashrc"
522
else
Pietro Incardona's avatar
Pietro Incardona committed
523
  echo "Before run any openfpm program you must execute the following command. A simple way would be to append this line at the end of your $HOME/.bash_profile"
524
525
fi
echo ""
Pietro Incardona's avatar
Pietro Incardona committed
526
echo -e "\033[1m source $HOME/openfpm_vars \033[0m"
527
echo ""
Pietro Incardona's avatar
Pietro Incardona committed
528
echo -e "\033[91;1m if you have in your .bashrc or .bash_profile old openfpm setting, please remove it\033[0m"
Pietro Incardona's avatar
Pietro Incardona committed
529
530
echo ""
echo ""
531
532
533
if [ $conf_err -ne 0 ]; then
  exit 1
fi