install 17.4 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
source script/solve_python
12

Pietro Incardona's avatar
Pietro Incardona committed
13
### switch to the branch
Pietro Incardona's avatar
Pietro Incardona committed
14
15
#b_switch=`git rev-parse --abbrev-ref HEAD`
#b_switch=
Pietro Incardona's avatar
Pietro Incardona committed
16
17
18
b_switch=$(cat switch_branch)
if [ x"$b_switch" != x"" ]; then
        git checkout $b_switch
Pietro Incardona's avatar
Pietro Incardona committed
19
20
21
	rm switch_branch
	./install "$@"
	exit 0
Pietro Incardona's avatar
Pietro Incardona committed
22
23
fi

Pietro Incardona's avatar
Pietro Incardona committed
24
25
26
27
## 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
28
	 exit 1
Pietro Incardona's avatar
Pietro Incardona committed
29
30
fi

31
32
## If 

Pietro Incardona's avatar
Pietro Incardona committed
33
install_req=1
Pietro Incardona's avatar
Pietro Incardona committed
34
i_dir=""
Pietro Incardona's avatar
Pietro Incardona committed
35
sq=0
Pietro Incardona's avatar
Pietro Incardona committed
36
nomake=0
37
38
update_openfpm=0
upgrade_openfpm=0
Pietro Incardona's avatar
Pietro Incardona committed
39

Pietro Incardona's avatar
Pietro Incardona committed
40
while getopts di:smhc:nu FLAG; do
Pietro Incardona's avatar
Pietro Incardona committed
41
	case $FLAG in
Pietro Incardona's avatar
Pietro Incardona committed
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
	    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
	      ;;
58
59
60
61
        m)
          echo "Skip to make the testing"
          nomake=1
          ;;
62
63
64
65
66
	    u)
	      echo "Updating openfpm"
	      update_openfpm=1
	      ;;
	    n)
67
          echo "Upgrading openfpm"
68
69
	      upgrade_openfpm=1
	      ;;
Pietro Incardona's avatar
Pietro Incardona committed
70
	    h)  #show help
71
72
73
74
      	  HELP
          ;;
    	\?) #unrecognized option - are fowarded to configure
          ;;
Pietro Incardona's avatar
Pietro Incardona committed
75
	esac
Pietro Incardona's avatar
Pietro Incardona committed
76
77
done

Pietro Incardona's avatar
Pietro Incardona committed
78
79
80
81
82
### Configure options

i_dir_old=$i_dir
configure_options_old=$configure_options

incardon's avatar
incardon committed
83
84
discover_os

85
86
## Remove old dependencies and installations

Pietro Incardona's avatar
Pietro Incardona committed
87
if [ x"$i_dir" == x"" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
88
89
90
 i_dir="$HOME"
fi

Pietro Incardona's avatar
Pietro Incardona committed
91
92
93
## Check and try to install the prerequisites


94
95
96
97
98
99
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
100
	update_openfpm update
Pietro Incardona's avatar
Pietro Incardona committed
101
	exit 0
102
103
104
fi

if [ $upgrade_openfpm -eq 1 ]; then
Pietro Incardona's avatar
Pietro Incardona committed
105
	update_openfpm upgrade
Pietro Incardona's avatar
Pietro Incardona committed
106
	exit 0
107
108
fi

109
remove_old $i_dir $configure_options
Pietro Incardona's avatar
Pietro Incardona committed
110
111
112
113
114

## Check and try to install the prerequisites

pre_req

Pietro Incardona's avatar
Pietro Incardona committed
115
## clone the dependencies
Pietro Incardona's avatar
Pietro Incardona committed
116
git submodule init
Yaser Afshar's avatar
Yaser Afshar committed
117
118
119
120
if [ $? -ne 0 ]; then
  echo -e "Configure\033[91;5;1m FAILED \033[0m"
  exit 1
fi
Pietro Incardona's avatar
Pietro Incardona committed
121

Pietro Incardona's avatar
Pietro Incardona committed
122
git submodule update
Yaser Afshar's avatar
Yaser Afshar committed
123
124
125
126
if [ $? -ne 0 ]; then
  echo -e "Configure\033[91;5;1m FAILED \033[0m"
  exit 1
fi
Pietro Incardona's avatar
Pietro Incardona committed
127

Pietro Incardona's avatar
Pietro Incardona committed
128
129
130
131
132
133
#### Eventualy remove garbage from old installation

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


134
135
# Create config directory in each submodule
cd openfpm_data
Pietro Incardona's avatar
Pietro Incardona committed
136
137
138
if [ ! -d src/config  ]; then
  mkdir src/config
fi
139
140
141
cd ..

cd openfpm_devices
Pietro Incardona's avatar
Pietro Incardona committed
142
143
144
if [ ! -d src/config  ]; then
  mkdir src/config
fi
145
146
147
cd ..

cd openfpm_vcluster
Pietro Incardona's avatar
Pietro Incardona committed
148
149
150
if [ ! -d src/config  ]; then
  mkdir src/config
fi
151
152
153
cd ..

cd openfpm_io
Pietro Incardona's avatar
Pietro Incardona committed
154
155
156
if [ ! -d src/config  ]; then
  mkdir src/config
fi
157
158
cd ..

incardon's avatar
incardon committed
159
160
161
162
163
164
cd openfpm_numerics
if [ ! -d src/config  ]; then
  mkdir src/config
fi
cd ..

Pietro Incardona's avatar
Pietro Incardona committed
165
# Create config directory
incardon's avatar
incardon committed
166

Pietro Incardona's avatar
Pietro Incardona committed
167
168
169
if [ ! -d src/config ]; then
  mkdir src/config
fi
incardon's avatar
incardon committed
170

Pietro Incardona's avatar
Pietro Incardona committed
171
## generate configure script
incardon's avatar
incardon committed
172

Pietro Incardona's avatar
Pietro Incardona committed
173
sh ./autogen.sh
Incardona Pietro's avatar
Incardona Pietro committed
174
175
176
177
if [ $? -ne 0 ]; then
  echo -e "Configure\033[91;5;1m FAILED \033[0m"
  exit 1
fi
incardon's avatar
incardon committed
178

179

Pietro Incardona's avatar
Pietro Incardona committed
180
## check for options
incardon's avatar
incardon committed
181
182
183
184

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
185
186
187
188
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
189
if [ $sq -eq 0 ]; then
190
  unset commands
191
  commands[0]="continue"
Pietro Incardona's avatar
Pietro Incardona committed
192
193
  possible_solutions "${commands[@]}"
fi
incardon's avatar
incardon committed
194

Pietro Incardona's avatar
Pietro Incardona committed
195
ncore=4
Pietro Incardona's avatar
Pietro Incardona committed
196
echo -e "\033[1mHow many core you want to use to install the dependencies?\033[0m"
197
198
199
if [ $sq -eq 0 ]; then
  read ncore
fi
Pietro Incardona's avatar
Pietro Incardona committed
200

incardon's avatar
incardon committed
201
202
203
204
echo -e "Installing requirements into: $i_dir "

##

Pietro Incardona's avatar
Pietro Incardona committed
205
## Take all the options with the exception of -d -i -s
Pietro Incardona's avatar
Pietro Incardona committed
206
207
208

## call the configure script

209
210
### Installing PETSC

Pietro Incardona's avatar
Pietro Incardona committed
211
if [ ! -d "$i_dir/PETSC" -o ! -d "$i_dir/EIGEN" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
212
213
214
    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)"
215
216
217
    if [ $sq -eq 0 ]; then
      read inst_lin_alg
    else
218
      inst_lin_alg="y"
219
    fi
220
221
222
223
224
225
226

    ### PETSC require Python

    command -v python
    if [ $? -ne 0 ]; then
      ### We have to install python
      echo "OpenFPM require python but it's not installed, searching a solution... "
227
      solve_python $platform
228
229
230
      command -v python
      if [ $? -ne 0 ]; then
	echo -e "python\033[91;5;1m FAILED \033[0m"
Pietro Incardona's avatar
Pietro Incardona committed
231
        exit 1
232
233
      fi
    fi
Pietro Incardona's avatar
Pietro Incardona committed
234
235
fi

Pietro Incardona's avatar
Pietro Incardona committed
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
#### License and Copyright disclamer

echo -e "\033[1;34m Licenses  \033[0m"
echo -e "\033[1;34m OpenFPM install several dependencies automatically. Some of them impose restriction and the user must explicitly accept it \033[0m"
echo -e "\033[1;33m PARMETIS: \033[0m \033[1m http://glaros.dtc.umn.edu/gkhome/metis/parmetis/download  (Copyright and License) \033[0m"
echo -e ""

if [ $sq -eq 0 ]; then
  unset commands
  commands[0]="Accept and continue"
  possible_solutions_no_continue "${commands[@]}"
fi

####

251
252
lin_alg_dir=""
lin_alg_lib=""
Pietro Incardona's avatar
Pietro Incardona committed
253
lin_alg_inc=""
Pietro Incardona's avatar
Pietro Incardona committed
254
255
256
257
258
259
260
261
262
263
264
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
265
fi
Pietro Incardona's avatar
Pietro Incardona committed
266
267
268
if [ -d "$i_dir/LIBHILBERT" ]; then
    configure_options=" $configure_options --with-libhilbert=$i_dir/LIBHILBERT "
fi
Pietro Incardona's avatar
Pietro Incardona committed
269

Pietro Incardona's avatar
Pietro Incardona committed
270
271
272
### if we are on linux we have to add -rt

if [ x"$platform" = x"linux" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
273
	lin_alg_lib="$lin_alg_lib -lrt"
Pietro Incardona's avatar
Pietro Incardona committed
274
275
fi

Pietro Incardona's avatar
Pietro Incardona committed
276
277
### MPI compilers must be in your PATH folder

278
set_mpi $i_dir $ncore $CC $CXX $F77 $FC
Pietro Incardona's avatar
Pietro Incardona committed
279

280
281
### METIS and ParMETIS must be installed independently from sistem wide installation

Pietro Incardona's avatar
Pietro Incardona committed
282
./script/install_Parmetis.sh $i_dir $ncore
283
configure_options=" $configure_options --with-parmetis=$i_dir/PARMETIS "
Pietro Incardona's avatar
Pietro Incardona committed
284
./script/install_Metis.sh $i_dir $compiler_gcc $compiler_gpp $ncore
285
configure_options=" $configure_options --with-metis=$i_dir/METIS "
286

Pietro Incardona's avatar
Pietro Incardona committed
287
MPI_installed=0
Pietro Incardona's avatar
Pietro Incardona committed
288
MPI_System_prv=1
289
290
METIS_installed=1
PARMETIS_installed=1
Pietro Incardona's avatar
Pietro Incardona committed
291
BOOST_installed=0
Pietro Incardona's avatar
Pietro Incardona committed
292
BOOST_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
293
LAPACK_installed=0
Pietro Incardona's avatar
Pietro Incardona committed
294
LAPACK_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
295
SUITESPARSE_installed=0
Pietro Incardona's avatar
Pietro Incardona committed
296
SUITESPARSE_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
297
EIGEN_installed=0
Pietro Incardona's avatar
Pietro Incardona committed
298
EIGEN_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
299
HDF5_installed=0
Pietro Incardona's avatar
Pietro Incardona committed
300
HDF5_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
301
LIBHILBERT_installed=0
Pietro Incardona's avatar
Pietro Incardona committed
302
303
304
conf_err=1

if [ $install_req -eq 0 ]; then
305
    ./configure $options $configure_options "$configure_blas_option"
Pietro Incardona's avatar
Pietro Incardona committed
306
307
308
else
    while [ $conf_err -ne 0 ]
    do
309
        ./configure $options $configure_options "$configure_blas_option"
Pietro Incardona's avatar
Pietro Incardona committed
310
311
        conf_err=$?

312
        echo "Configure script terminated with $conf_err"
Pietro Incardona's avatar
Pietro Incardona committed
313
314
315

        ## if MPI or METIS installation required install it
        if [ $conf_err -eq 200  ]; then
316
            echo "MPI not found try to install, $MPI_installed"
Pietro Incardona's avatar
Pietro Incardona committed
317
318
319
320
            if [ $MPI_installed -eq 1 ]; then
                echo "Error the installation of MPI failed"
                exit 1
            fi
321
            ./script/install_MPI.sh $i_dir $ncore $CC $CXX $F77 $FC
Pietro Incardona's avatar
Pietro Incardona committed
322
            MPI_installed=1
Pietro Incardona's avatar
Pietro Incardona committed
323
            export PATH="$i_dir/MPI/bin:$PATH"
324
            configure_options="$configure_options CXX=mpic++ "
Pietro Incardona's avatar
Pietro Incardona committed
325
326
327
328
329
330
        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
331
            ./script/install_Metis.sh $i_dir $compiler_gcc $compiler_gpp
Pietro Incardona's avatar
Pietro Incardona committed
332
            METIS_installed=1
Yaser Afshar's avatar
Yaser Afshar committed
333
            configure_options=" $configure_options --with-metis=$i_dir/METIS "
Pietro Incardona's avatar
Pietro Incardona committed
334
        elif [ $conf_err -eq 202 ]; then
335
            echo "Boost not found try to install in $i_dir with $compiler_opt"
Pietro Incardona's avatar
Pietro Incardona committed
336
            if [ $BOOST_installed -eq 1  ]; then
337
338
339
                echo "Error the installation of Boost failed"
                exit 1
            fi
340
            if [ x"$CXX" == x"icpc" ]; then
341
              ./script/install_BOOST.sh $i_dir $ncore intel-linux
342
343
            elif [ x"$CXX" == x"clang++" ]; then
              ./script/install_BOOST.sh $i_dir $ncore darwin
344
345
346
            else
              ./script/install_BOOST.sh $i_dir $ncore gcc
            fi
347
            BOOST_installed=1
Yaser Afshar's avatar
Yaser Afshar committed
348
            configure_options=" $configure_options --with-boost=$i_dir/BOOST "
349
        elif [ $conf_err -eq 208 ]; then
350
351
352
353
354
            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
355
            ./script/install_Parmetis.sh $i_dir $ncore
356
357
            PARMETIS_installed=1
            configure_options=" $configure_options --with-parmetis=$i_dir/PARMETIS "
Pietro Incardona's avatar
Pietro Incardona committed
358
359
360
        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
361
                echo "Error the installation of HDF5 failed"
362
                exit 1
Pietro Incardona's avatar
Pietro Incardona committed
363
            fi
Pietro Incardona's avatar
Pietro Incardona committed
364
            ./script/install_HDF5.sh $i_dir $ncore
Pietro Incardona's avatar
Pietro Incardona committed
365
            configure_options=" $configure_options --with-hdf5=$i_dir/HDF5/bin/h5pcc "
Pietro Incardona's avatar
Pietro Incardona committed
366
            HDF5_installed=1
Pietro Incardona's avatar
Pietro Incardona committed
367
368
369
370
371
372
373
374
375
        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
376
377
378
379
380
        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
381

Pietro Incardona's avatar
Pietro Incardona committed
382
    if [ x"$inst_lin_alg" == x"y" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
383
        ./script/install_EIGEN.sh $i_dir $ncore
Pietro Incardona's avatar
Pietro Incardona committed
384
        ./script/install_PETSC.sh $i_dir $ncore $CC $CXX $F77 $FC
Pietro Incardona's avatar
Pietro Incardona committed
385
386
    fi

387
388
    ### collect PETSC configuration options
    conf_PETSC
389
390

    ./configure $options $configure_options "$configure_blas_option"
Pietro Incardona's avatar
Pietro Incardona committed
391
392
fi

Pietro Incardona's avatar
Pietro Incardona committed
393
### Create example.mk
394
install_base=$(cat install_dir)
395
396
openmp_flags="$(cat openmp_flags) $(cat openfpm_flags)"

397
398
399
400
401
402
if [ -d "$i_dir/HDF5/lib" ]; then
  hdf5_lib=$i_dir/HDF5/lib
elif [ -d "$i_dir/HDF5/lib64" ]; then
  hdf5_lib=$i_dir/HDF5/lib64
fi

403
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
404
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$hdf5_lib -L$i_dir/LIBHILBERT/lib  $lin_alg_dir" >> example.mk
Pietro Incardona's avatar
Pietro Incardona committed
405
406
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
407
408
cp example.mk src/example.mk
cp example.mk example/example.mk
409

Pietro Incardona's avatar
Pietro Incardona committed
410
if [ $nomake -eq 0 ]; then
Pietro Incardona's avatar
Pietro Incardona committed
411
  make clean
412
413
  make
fi
414
415
416
417
418

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

Pietro Incardona's avatar
Pietro Incardona committed
419
420
echo "Command used to configure"
echo ""
Pietro Incardona's avatar
Pietro Incardona committed
421
echo -e "\033[1m ./configure $options $configure_options \033[0m "
Pietro Incardona's avatar
Pietro Incardona committed
422
echo ""
423
424
425
426
427
428
429

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
430
bash_path="export PATH=\""
431
432
433
434

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
435
436
echo -e "\033[1;34;5m ---------- Mandatory packages ---------  \033[0m"
echo ""
437

Pietro Incardona's avatar
Pietro Incardona committed
438
439
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
440
  bash_path="$bash_path:$i_dir/MPI/bin:"
Pietro Incardona's avatar
Pietro Incardona committed
441
442
443
  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
444
fi
Pietro Incardona's avatar
Pietro Incardona committed
445

Pietro Incardona's avatar
Pietro Incardona committed
446
if [ -d "$i_dir/METIS" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
447
  installation_report="$installation_report \033[92;1mMETIS\033[0m Installed: \033[1m $i_dir/METIS \033[0m\n"
448
  bash_library="$bash_library:$i_dir/METIS/lib"
449
450
fi

Pietro Incardona's avatar
Pietro Incardona committed
451
if [ -d "$i_dir/PARMETIS" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
452
453
454
455
  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
456
if [ -d "$i_dir/BOOST" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
457
  installation_report="$installation_report \033[92;1mBOOST\033[0m Installed: \033[1m $i_dir/BOOST \033[0m\n"
458
  bash_library="$bash_library:$i_dir/BOOST/lib"
Pietro Incardona's avatar
Pietro Incardona committed
459
460
461
462
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
463
if [ -d "$i_dir/HDF5" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
464
  installation_report="$installation_report \033[92;1mHDF5\033[0m Installed: \033[1m $i_dir/HDF5 \033[0m\n"
465
  bash_library="$bash_library:$hdf5_lib"
Pietro Incardona's avatar
Pietro Incardona committed
466
fi
467

Pietro Incardona's avatar
Pietro Incardona committed
468
469
470
471
472
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
473
474
475
476
477
478
479
480
481
482
483
484
485
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
486
fi
487

Pietro Incardona's avatar
Pietro Incardona committed
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
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
510
fi
Pietro Incardona's avatar
Pietro Incardona committed
511
512
513

if [ -d "$i_dir/SUITESPARSE" ]; then
  installation_report="$installation_report \033[92;1mSUITESPARSE\033[0m Installed: \033[1m $i_dir/SUITESPARSE \033[0m\n"
514
  bash_library="$bash_library:$i_dir/SUITESPARSE/lib"
Pietro Incardona's avatar
Pietro Incardona committed
515
516
else
  installation_report="$installation_report \033[91;1mSUITESPARSE\033[0m Installed: \033[1m NO \033[0m\n"
Pietro Incardona's avatar
Pietro Incardona committed
517
fi
Pietro Incardona's avatar
Pietro Incardona committed
518
519
520
521
522
523

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
524
fi
525

Pietro Incardona's avatar
Pietro Incardona committed
526
527
528
529
530
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
531
fi
Pietro Incardona's avatar
Pietro Incardona committed
532
533
534
535
536
537

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"
538
539
fi

Pietro Incardona's avatar
Pietro Incardona committed
540
541
542
543
544
545
546
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
547
bash_path="$bash_path:\$PATH\""
Pietro Incardona's avatar
Pietro Incardona committed
548
bash_library="$bash_library\""
549
550
551
552
553
554

##### Writing openfpm_vars file

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

555
556
557
558
if [ x"$platform" = x"osx" ]; then
    echo "TMPDIR=/tmp/" >> $HOME/openfpm_vars
fi

559
echo -e "$installation_report"
Pietro Incardona's avatar
Pietro Incardona committed
560
561
562
563
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
564
565
  
  ## Save dependencies dir and foward options
Pietro Incardona's avatar
Pietro Incardona committed
566
567
  printf "%s" "$i_dir_old" > dependencies_dir
  printf "%s" "$configure_options_old" > foward_options
Pietro Incardona's avatar
Pietro Incardona committed
568

Pietro Incardona's avatar
Pietro Incardona committed
569
570
571
572
else
  echo -e "Install summary\033[91;5;1m FAILED \033[0m"
fi

573
574
echo ""
if [ x"$platform" = x"linux" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
575
  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"
576
else
Pietro Incardona's avatar
Pietro Incardona committed
577
  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"
578
579
fi
echo ""
Pietro Incardona's avatar
Pietro Incardona committed
580
echo -e "\033[1m source $HOME/openfpm_vars \033[0m"
581
echo ""
Pietro Incardona's avatar
Pietro Incardona committed
582
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
583
584
echo ""
echo ""
585
586
587
if [ $conf_err -ne 0 ]; then
  exit 1
fi