install 17.7 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
incardon's avatar
incardon committed
8
source script/set_mpi
incardon's avatar
incardon committed
9
source script/conf_PETSC
incardon's avatar
incardon committed
10
source script/update_openfpm
11
source script/solve_python
12

incardon's avatar
incardon committed
13
### switch to the branch
incardon's avatar
incardon committed
14
15
#b_switch=`git rev-parse --abbrev-ref HEAD`
#b_switch=
incardon's avatar
incardon committed
16
17
18
b_switch=$(cat switch_branch)
if [ x"$b_switch" != x"" ]; then
        git checkout $b_switch
incardon's avatar
incardon committed
19
20
21
	rm switch_branch
	./install "$@"
	exit 0
incardon's avatar
incardon 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

incardon's avatar
incardon committed
31
32
## If 

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

incardon's avatar
incardon committed
40
while getopts di:smghc: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
	      ;;
incardon's avatar
incardon committed
58
59
60
61
62
63
64
            m)
              echo "Skip compilation of the test"
              nomake=1
              ;;
	    g)
	      echo "Installing with GPU support"
	      gpu_support=1
incardon's avatar
incardon committed
65
	      ;;
incardon's avatar
incardon committed
66
67
68
69
70
	    u)
	      echo "Updating openfpm"
	      update_openfpm=1
	      ;;
	    n)
71
          echo "Upgrading openfpm"
incardon's avatar
incardon committed
72
73
	      upgrade_openfpm=1
	      ;;
Pietro Incardona's avatar
Pietro Incardona committed
74
	    h)  #show help
75
76
77
78
      	  HELP
          ;;
    	\?) #unrecognized option - are fowarded to configure
          ;;
Pietro Incardona's avatar
Pietro Incardona committed
79
	esac
incardon's avatar
incardon committed
80
81
done

incardon's avatar
incardon committed
82
83
84
85
86
### Configure options

i_dir_old=$i_dir
configure_options_old=$configure_options

incardon's avatar
incardon committed
87
88
discover_os

89
90
## Remove old dependencies and installations

incardon's avatar
incardon committed
91
if [ x"$i_dir" == x"" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
92
93
94
 i_dir="$HOME"
fi

incardon's avatar
incardon committed
95
96
97
## Check and try to install the prerequisites


incardon's avatar
incardon committed
98
99
100
101
102
103
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
incardon's avatar
incardon committed
104
	update_openfpm update
incardon's avatar
incardon committed
105
	exit 0
incardon's avatar
incardon committed
106
107
108
fi

if [ $upgrade_openfpm -eq 1 ]; then
incardon's avatar
incardon committed
109
	update_openfpm upgrade
incardon's avatar
incardon committed
110
	exit 0
incardon's avatar
incardon committed
111
112
fi

113
remove_old $i_dir $configure_options
incardon's avatar
incardon committed
114
115
116
117
118

## Check and try to install the prerequisites

pre_req

incardon's avatar
incardon committed
119
## clone the dependencies
incardon's avatar
incardon committed
120
git submodule init
Yaser Afshar's avatar
Yaser Afshar committed
121
122
123
124
if [ $? -ne 0 ]; then
  echo -e "Configure\033[91;5;1m FAILED \033[0m"
  exit 1
fi
incardon's avatar
incardon committed
125

incardon's avatar
incardon committed
126
git submodule update
Yaser Afshar's avatar
Yaser Afshar committed
127
128
129
130
if [ $? -ne 0 ]; then
  echo -e "Configure\033[91;5;1m FAILED \033[0m"
  exit 1
fi
incardon's avatar
incardon committed
131

incardon's avatar
incardon committed
132
133
134
135
136
137
#### Eventualy remove garbage from old installation

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


incardon's avatar
incardon committed
138
139
# Create config directory in each submodule
cd openfpm_data
incardon's avatar
incardon committed
140
141
142
if [ ! -d src/config  ]; then
  mkdir src/config
fi
incardon's avatar
incardon committed
143
144
145
cd ..

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

cd openfpm_vcluster
incardon's avatar
incardon committed
152
153
154
if [ ! -d src/config  ]; then
  mkdir src/config
fi
incardon's avatar
incardon committed
155
156
157
cd ..

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

incardon's avatar
incardon committed
163
164
165
166
167
168
cd openfpm_numerics
if [ ! -d src/config  ]; then
  mkdir src/config
fi
cd ..

incardon's avatar
incardon committed
169
# Create config directory
incardon's avatar
incardon committed
170

incardon's avatar
incardon committed
171
172
173
if [ ! -d src/config ]; then
  mkdir src/config
fi
incardon's avatar
incardon committed
174

incardon's avatar
incardon committed
175
## generate configure script
incardon's avatar
incardon committed
176

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

incardon's avatar
incardon committed
183
## check for options
incardon's avatar
incardon committed
184
185
186
187

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

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

incardon's avatar
incardon committed
204
205
206
207
echo -e "Installing requirements into: $i_dir "

##

incardon's avatar
incardon committed
208
## Take all the options with the exception of -d -i -s
incardon's avatar
incardon committed
209
210
211

## call the configure script

incardon's avatar
incardon committed
212
213
### Installing PETSC

incardon's avatar
incardon committed
214
if [ ! -d "$i_dir/PETSC" -o ! -f "$i_dir/PETSC/include/petsc.h" -o ! -d "$i_dir/EIGEN" ]; then
incardon's avatar
incardon committed
215
216
217
    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)"
218
219
220
    if [ $sq -eq 0 ]; then
      read inst_lin_alg
    else
incardon's avatar
incardon committed
221
      inst_lin_alg="y"
222
    fi
223
224
225
226
227
228
229

    ### 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... "
230
      solve_python $platform
231
232
233
      command -v python
      if [ $? -ne 0 ]; then
	echo -e "python\033[91;5;1m FAILED \033[0m"
incardon's avatar
incardon committed
234
        exit 1
235
236
      fi
    fi
incardon's avatar
incardon committed
237
238
239
240
241
242

    if haveProg python2; then
      python_command=python2
    else
      # we check that python is python2
      py_ver=$(python --version 2>&1 | grep Python | sed 's/.*\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\)/\1/g')
incardon's avatar
incardon committed
243
      
incardon's avatar
incardon committed
244
245
      if [ $py_ver -eq 3 ]; then
        # we have to install python2
incardon's avatar
incardon committed
246
	echo -e "\033[1mPETSC require python2 installed, searching a solution to install python2 ... \033[0m"
incardon's avatar
incardon committed
247
248
249
250
251
        solve_python $platform
      fi
      python_command=python
    fi

incardon's avatar
incardon committed
252
253
fi

incardon's avatar
incardon committed
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
#### 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

####

269
270
lin_alg_dir=""
lin_alg_lib=""
Pietro Incardona's avatar
Pietro Incardona committed
271
lin_alg_inc=""
incardon's avatar
incardon committed
272
273
274
275
if [ -d "$i_dir/BOOST" ]; then
    configure_options=" $configure_options --with-boost=$i_dir/BOOST "
fi
if [ -d "$i_dir/HDF5" ]; then
incardon's avatar
incardon committed
276
    configure_options=" $configure_options --with-hdf5=$i_dir/HDF5/ "
incardon's avatar
incardon committed
277
fi
Pietro Incardona's avatar
Pietro Incardona committed
278
279
280
if [ -d "$i_dir/LIBHILBERT" ]; then
    configure_options=" $configure_options --with-libhilbert=$i_dir/LIBHILBERT "
fi
incardon's avatar
incardon committed
281

Pietro Incardona's avatar
Pietro Incardona committed
282
283
284
### if we are on linux we have to add -rt

if [ x"$platform" = x"linux" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
285
	lin_alg_lib="$lin_alg_lib -lrt"
Pietro Incardona's avatar
Pietro Incardona committed
286
287
fi

incardon's avatar
incardon committed
288
289
### MPI compilers must be in your PATH folder

incardon's avatar
incardon committed
290
set_mpi $i_dir $ncore $CC $CXX $F77 $FC $gpu_support
incardon's avatar
incardon committed
291

292
293
### METIS and ParMETIS must be installed independently from sistem wide installation

incardon's avatar
incardon committed
294
./script/install_Parmetis.sh $i_dir $ncore
295
configure_options=" $configure_options --with-parmetis=$i_dir/PARMETIS "
incardon's avatar
incardon committed
296

incardon's avatar
incardon committed
297
./script/install_Metis.sh $i_dir $CC $CXX $ncore
298
configure_options=" $configure_options --with-metis=$i_dir/METIS "
299

incardon's avatar
incardon committed
300
301
302
303
if [ x"$gpu_support" == x"1" ]; then
	configure_options=" $configure_options --enable-gpu "
fi

incardon's avatar
incardon committed
304
MPI_installed=0
incardon's avatar
incardon committed
305
MPI_System_prv=1
306
307
METIS_installed=1
PARMETIS_installed=1
incardon's avatar
incardon committed
308
BOOST_installed=0
incardon's avatar
incardon committed
309
BOOST_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
310
LAPACK_installed=0
incardon's avatar
incardon committed
311
LAPACK_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
312
SUITESPARSE_installed=0
incardon's avatar
incardon committed
313
SUITESPARSE_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
314
EIGEN_installed=0
incardon's avatar
incardon committed
315
EIGEN_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
316
HDF5_installed=0
incardon's avatar
incardon committed
317
HDF5_System_prv=1
Pietro Incardona's avatar
Pietro Incardona committed
318
LIBHILBERT_installed=0
incardon's avatar
incardon committed
319
320
conf_err=1

321

incardon's avatar
incardon committed
322
if [ $install_req -eq 0 ]; then
incardon's avatar
incardon committed
323
    ./configure $options $configure_options "$configure_blas_option"
incardon's avatar
incardon committed
324
325
326
else
    while [ $conf_err -ne 0 ]
    do
incardon's avatar
incardon committed
327
	pwd
328
        ./configure $options $configure_options "$configure_blas_option"
incardon's avatar
incardon committed
329
330
        conf_err=$?

331
        echo "Configure script terminated with $conf_err"
incardon's avatar
incardon committed
332
333
334

        ## if MPI or METIS installation required install it
        if [ $conf_err -eq 200  ]; then
335
            echo "MPI not found try to install, $MPI_installed"
incardon's avatar
incardon committed
336
337
338
339
            if [ $MPI_installed -eq 1 ]; then
                echo "Error the installation of MPI failed"
                exit 1
            fi
incardon's avatar
incardon committed
340
            ./script/install_MPI.sh $i_dir $ncore  $CC $CXX $F77 $FC $gpu_support
incardon's avatar
incardon committed
341
            MPI_installed=1
Pietro Incardona's avatar
Pietro Incardona committed
342
            export PATH="$i_dir/MPI/bin:$PATH"
343
            configure_options="$configure_options CXX=mpic++ "
incardon's avatar
incardon committed
344
345
346
347
348
349
        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
350
            ./script/install_Metis.sh $i_dir $CC $CXX
incardon's avatar
incardon committed
351
            METIS_installed=1
Yaser Afshar's avatar
Yaser Afshar committed
352
            configure_options=" $configure_options --with-metis=$i_dir/METIS "
incardon's avatar
incardon committed
353
        elif [ $conf_err -eq 202 ]; then
354
            echo "Boost not found try to install in $i_dir with $compiler_opt"
incardon's avatar
incardon committed
355
            if [ $BOOST_installed -eq 1  ]; then
incardon's avatar
incardon committed
356
357
358
                echo "Error the installation of Boost failed"
                exit 1
            fi
incardon's avatar
incardon committed
359
            if [ x"$CXX" == x"icpc" ]; then
incardon's avatar
incardon committed
360
              ./script/install_BOOST.sh $i_dir $ncore intel-linux
incardon's avatar
incardon committed
361
362
            elif [ x"$CXX" == x"clang++" ]; then
              ./script/install_BOOST.sh $i_dir $ncore darwin
incardon's avatar
incardon committed
363
364
365
            else
              ./script/install_BOOST.sh $i_dir $ncore gcc
            fi
incardon's avatar
incardon committed
366
            BOOST_installed=1
Yaser Afshar's avatar
Yaser Afshar committed
367
            configure_options=" $configure_options --with-boost=$i_dir/BOOST "
368
        elif [ $conf_err -eq 208 ]; then
369
370
371
372
373
            echo "ParMetis not found try to install"
            if [ $PARMETIS_installed -eq 1  ]; then
                echo "Error the installation of ParMETIS failed"
                exit 1
            fi
incardon's avatar
incardon committed
374
            ./script/install_Parmetis.sh $i_dir $ncore
375
376
            PARMETIS_installed=1
            configure_options=" $configure_options --with-parmetis=$i_dir/PARMETIS "
Pietro Incardona's avatar
Pietro Incardona committed
377
378
379
        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
380
                echo "Error the installation of HDF5 failed"
381
                exit 1
Pietro Incardona's avatar
Pietro Incardona committed
382
            fi
incardon's avatar
incardon committed
383
            ./script/install_HDF5.sh $i_dir $ncore
incardon's avatar
incardon committed
384
            configure_options=" $configure_options --with-hdf5=$i_dir/HDF5/ "
Pietro Incardona's avatar
Pietro Incardona committed
385
            HDF5_installed=1
Pietro Incardona's avatar
Pietro Incardona committed
386
387
388
389
390
391
392
393
394
        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
incardon's avatar
incardon committed
395
396
397
398
399
        elif [ $conf_err -ne 0 ]; then
            echo "I do not know how to recover from this error"
            exit 1
        fi
    done
incardon's avatar
incardon committed
400

incardon's avatar
incardon committed
401
    if [ x"$inst_lin_alg" == x"y" ]; then
incardon's avatar
incardon committed
402
        ./script/install_EIGEN.sh $i_dir $ncore
incardon's avatar
incardon committed
403
        ./script/install_PETSC.sh $i_dir $ncore $CC $CXX $F77 $FC
incardon's avatar
incardon committed
404
405
    fi

406
407
    ### collect PETSC configuration options
    conf_PETSC
incardon's avatar
incardon committed
408
409

    ./configure $options $configure_options "$configure_blas_option"
incardon's avatar
incardon committed
410
411
fi

Pietro Incardona's avatar
Pietro Incardona committed
412
### Create example.mk
413
install_base=$(cat install_dir)
414
415
openmp_flags="$(cat openmp_flags) $(cat openfpm_flags)"

incardon's avatar
incardon committed
416
417
418
419
420
421
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

incardon's avatar
incardon committed
422
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
incardon's avatar
incardon committed
423
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
incardon's avatar
incardon committed
424
425
426
427
428
429
430
431
if [ x"$gpu_support" == x"1" ]; then
    echo "LIBS=-lvcluster -lofpm_pdata -lofpmmemory -lparmetis -lmetis -lboost_iostreams -lhdf5 -llibhilbert $(cat cuda_lib) $lin_alg_lib" >> example.mk
    echo "LIBS_SE2=-lvcluster -lofpmmemory_se2 -lparmetis -lmetis -lboost_iostreams -lhdf5 -llibhilbert $(cat cuda_lib) $lin_alg_lib" >> example.mk
else
    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
fi
echo "INCLUDE_PATH_NVCC=$(cat openmp_flags) -Xcudafe \"--display_error_number --diag_suppress=2885 --diag_suppress=2887  --diag_suppress=2888 --diag_suppress=186 --diag_suppress=111\" --expt-extended-lambda -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
Pietro Incardona's avatar
Pietro Incardona committed
432
433
cp example.mk src/example.mk
cp example.mk example/example.mk
434

incardon's avatar
incardon committed
435
if [ $nomake -eq 0 ]; then
incardon's avatar
incardon committed
436
  make clean
incardon's avatar
incardon committed
437
  make -j $ncore
incardon's avatar
incardon committed
438
fi
incardon's avatar
incardon committed
439
440
441
442
443

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

incardon's avatar
incardon committed
444
445
echo "Command used to configure"
echo ""
incardon's avatar
incardon committed
446
echo -e "\033[1m ./configure $options $configure_options \033[0m "
incardon's avatar
incardon committed
447
echo ""
incardon's avatar
incardon committed
448
449

if [ x"$platform" = x"linux" ]; then
incardon's avatar
incardon committed
450
  bash_library="export LD_LIBRARY_PATH=\"\$LD_LIBRARY_PATH:/$install_base/openfpm_devices/lib:/$install_base/openfpm_vcluster/lib"
incardon's avatar
incardon committed
451
else
incardon's avatar
incardon committed
452
  bash_library="export DYLD_LIBRARY_PATH=\"\$DYLD_LIBRARY_PATH:/$install_base/openfpm_devices/lib:/$install_base/openfpm_vcluster/lib"
incardon's avatar
incardon committed
453
454
fi

incardon's avatar
incardon committed
455
bash_path="export PATH=\""
incardon's avatar
incardon committed
456
457
458
459

echo -e "\033[1;34;5m ---------------------------------------  \033[0m"
echo -e "\033[1;34;5m --------- INSTALLATION REPORT ---------  \033[0m"
echo ""
incardon's avatar
incardon committed
460
461
echo -e "\033[1;34;5m ---------- Mandatory packages ---------  \033[0m"
echo ""
incardon's avatar
incardon committed
462

incardon's avatar
incardon committed
463
464
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
465
  bash_path="$bash_path:$i_dir/MPI/bin:"
incardon's avatar
incardon committed
466
467
468
  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"
incardon's avatar
incardon committed
469
fi
incardon's avatar
incardon committed
470

Pietro Incardona's avatar
Pietro Incardona committed
471
if [ -d "$i_dir/METIS" ]; then
incardon's avatar
incardon committed
472
  installation_report="$installation_report \033[92;1mMETIS\033[0m Installed: \033[1m $i_dir/METIS \033[0m\n"
incardon's avatar
incardon committed
473
  bash_library="$bash_library:$i_dir/METIS/lib"
474
475
fi

Pietro Incardona's avatar
Pietro Incardona committed
476
if [ -d "$i_dir/PARMETIS" ]; then
incardon's avatar
incardon committed
477
478
479
480
  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
481
if [ -d "$i_dir/BOOST" ]; then
incardon's avatar
incardon committed
482
  installation_report="$installation_report \033[92;1mBOOST\033[0m Installed: \033[1m $i_dir/BOOST \033[0m\n"
incardon's avatar
incardon committed
483
  bash_library="$bash_library:$i_dir/BOOST/lib"
incardon's avatar
incardon committed
484
485
486
487
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
488
if [ -d "$i_dir/HDF5" ]; then
incardon's avatar
incardon committed
489
  installation_report="$installation_report \033[92;1mHDF5\033[0m Installed: \033[1m $i_dir/HDF5 \033[0m\n"
incardon's avatar
incardon committed
490
  bash_library="$bash_library:$hdf5_lib"
incardon's avatar
incardon committed
491
fi
incardon's avatar
incardon committed
492

Pietro Incardona's avatar
Pietro Incardona committed
493
494
495
496
497
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

incardon's avatar
incardon committed
498
499
500
501
502
503
504
echo -e "$installation_report"

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

installation_report=""
incardon's avatar
incardon committed
505
lin_alg_installed=""
incardon's avatar
incardon committed
506

incardon's avatar
incardon committed
507
if [ -d "$i_dir/PETSC" -a -f "$i_dir/PETSC/include/petsc.h" ]; then
incardon's avatar
incardon committed
508
509
  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"
incardon's avatar
incardon committed
510
  lin_alg_installed="y"
incardon's avatar
incardon committed
511
512
else
  installation_report="$installation_report \033[91;1mPETSC\033[0m Installed: \033[1m NO \033[0m\n"
incardon's avatar
incardon committed
513
fi
incardon's avatar
incardon committed
514

incardon's avatar
incardon committed
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
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/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
530
fi
incardon's avatar
incardon committed
531
532
533

if [ -d "$i_dir/SUITESPARSE" ]; then
  installation_report="$installation_report \033[92;1mSUITESPARSE\033[0m Installed: \033[1m $i_dir/SUITESPARSE \033[0m\n"
incardon's avatar
incardon committed
534
  bash_library="$bash_library:$i_dir/SUITESPARSE/lib"
incardon's avatar
incardon committed
535
536
else
  installation_report="$installation_report \033[91;1mSUITESPARSE\033[0m Installed: \033[1m NO \033[0m\n"
Pietro Incardona's avatar
Pietro Incardona committed
537
fi
incardon's avatar
incardon committed
538

539
bash_path="$bash_path\$PATH\""
incardon's avatar
incardon committed
540
bash_library="$bash_library\""
incardon's avatar
incardon committed
541
542
543
544
545
546

##### Writing openfpm_vars file

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

incardon's avatar
incardon committed
547
548
549
550
if [ x"$platform" = x"osx" ]; then
    echo "TMPDIR=/tmp/" >> $HOME/openfpm_vars
fi

incardon's avatar
incardon committed
551
echo -e "$installation_report"
incardon's avatar
incardon committed
552
553
554
555
echo ""
echo ""
if [ $conf_err -eq 0  ]; then
  echo -e "Install summary\033[92;5;1m SUCCEED \033[0m"
incardon's avatar
incardon committed
556
557
  
  ## Save dependencies dir and foward options
incardon's avatar
incardon committed
558
559
  printf "%s" "$i_dir_old" > dependencies_dir
  printf "%s" "$configure_options_old" > foward_options
incardon's avatar
incardon committed
560

incardon's avatar
incardon committed
561
562
563
564
else
  echo -e "Install summary\033[91;5;1m FAILED \033[0m"
fi

incardon's avatar
incardon committed
565
566
echo ""
if [ x"$platform" = x"linux" ]; then
incardon's avatar
incardon committed
567
  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"
incardon's avatar
incardon committed
568
else
incardon's avatar
incardon committed
569
  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"
incardon's avatar
incardon committed
570
571
fi
echo ""
incardon's avatar
incardon committed
572
echo -e "\033[1m source $HOME/openfpm_vars \033[0m"
incardon's avatar
incardon committed
573
echo ""
incardon's avatar
incardon committed
574
echo -e "\033[91;1m if you have in your .bashrc or .bash_profile old openfpm setting, please remove it\033[0m"
incardon's avatar
incardon committed
575
576
echo ""
echo ""
incardon's avatar
incardon committed
577
if [ x"$inst_lin_alg" == "y" -a x"$lin_alg_installed" == x"" ]; then
incardon's avatar
incardon committed
578
579
  conf_err=1
fi
580
581
582
if [ $conf_err -ne 0 ]; then
  exit 1
fi