install 18 KB
Newer Older
Pietro Incardona's avatar
Pietro Incardona committed
1
#! /bin/bash
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
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

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"
28
	 exit 1
29 30
fi

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
37 38
update_openfpm=0
upgrade_openfpm=0
39

incardon's avatar
incardon committed
40
while getopts di:smhc:nu FLAG; do
Pietro Incardona's avatar
Pietro Incardona committed
41
	case $FLAG in
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
	      ;;
70
	    h)  #show help
71 72 73 74
      	  HELP
          ;;
    	\?) #unrecognized option - are fowarded to configure
          ;;
Pietro Incardona's avatar
Pietro Incardona committed
75
	esac
incardon's avatar
incardon committed
76 77
done

incardon's avatar
incardon 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

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

incardon's avatar
incardon 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
incardon's avatar
incardon committed
101
	exit 0
102 103 104
fi

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

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

## Check and try to install the prerequisites

pre_req

incardon's avatar
incardon committed
115
## clone the dependencies
incardon's avatar
incardon 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
incardon's avatar
incardon committed
121

incardon's avatar
incardon 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
incardon's avatar
incardon committed
127

incardon's avatar
incardon 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
incardon's avatar
incardon committed
136 137 138
if [ ! -d src/config  ]; then
  mkdir src/config
fi
139 140 141
cd ..

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

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

cd openfpm_io
incardon's avatar
incardon 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 ..

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

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

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

incardon's avatar
incardon 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

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

Pietro Incardona's avatar
Pietro Incardona committed
195
ncore=4
incardon's avatar
incardon 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
incardon's avatar
incardon committed
200

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

##

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

## call the configure script

incardon's avatar
incardon committed
209 210
### Installing PETSC

incardon's avatar
incardon committed
211
if [ ! -d "$i_dir/PETSC" -o ! -d "$i_dir/EIGEN" ]; then
incardon's avatar
incardon 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"
incardon's avatar
incardon committed
231
        exit 1
232 233
      fi
    fi
234 235 236 237 238 239

    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
240
      
241 242
      if [ $py_ver -eq 3 ]; then
        # we have to install python2
incardon's avatar
incardon committed
243
	echo -e "\033[1mPETSC require python2 installed, searching a solution to install python2 ... \033[0m"
244 245 246 247 248
        solve_python $platform
      fi
      python_command=python
    fi

incardon's avatar
incardon committed
249 250
fi

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

####

266 267
lin_alg_dir=""
lin_alg_lib=""
268
lin_alg_inc=""
incardon's avatar
incardon committed
269 270 271 272 273 274 275 276 277 278 279
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 "
incardon's avatar
incardon committed
280
fi
281 282 283
if [ -d "$i_dir/LIBHILBERT" ]; then
    configure_options=" $configure_options --with-libhilbert=$i_dir/LIBHILBERT "
fi
incardon's avatar
incardon committed
284

285 286 287
### if we are on linux we have to add -rt

if [ x"$platform" = x"linux" ]; then
Pietro Incardona's avatar
Pietro Incardona committed
288
	lin_alg_lib="$lin_alg_lib -lrt"
289 290
fi

incardon's avatar
incardon committed
291 292
### MPI compilers must be in your PATH folder

293
set_mpi $i_dir $ncore $CC $CXX $F77 $FC
incardon's avatar
incardon committed
294

295 296
### METIS and ParMETIS must be installed independently from sistem wide installation

incardon's avatar
incardon committed
297
./script/install_Parmetis.sh $i_dir $ncore
298
configure_options=" $configure_options --with-parmetis=$i_dir/PARMETIS "
incardon's avatar
incardon committed
299
./script/install_Metis.sh $i_dir $compiler_gcc $compiler_gpp $ncore
300
configure_options=" $configure_options --with-metis=$i_dir/METIS "
301

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

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

327
        echo "Configure script terminated with $conf_err"
incardon's avatar
incardon committed
328 329 330

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

incardon's avatar
incardon committed
397
    if [ x"$inst_lin_alg" == x"y" ]; then
incardon's avatar
incardon committed
398
        ./script/install_EIGEN.sh $i_dir $ncore
incardon's avatar
incardon committed
399
        ./script/install_PETSC.sh $i_dir $ncore $CC $CXX $F77 $FC
incardon's avatar
incardon committed
400 401
    fi

402 403
    ### collect PETSC configuration options
    conf_PETSC
404 405

    ./configure $options $configure_options "$configure_blas_option"
incardon's avatar
incardon committed
406 407
fi

Pietro Incardona's avatar
Pietro Incardona committed
408
### Create example.mk
409
install_base=$(cat install_dir)
410 411
openmp_flags="$(cat openmp_flags) $(cat openfpm_flags)"

412 413 414 415 416 417
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

418
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
419
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
420 421
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
422 423
cp example.mk src/example.mk
cp example.mk example/example.mk
424

incardon's avatar
incardon committed
425
if [ $nomake -eq 0 ]; then
incardon's avatar
incardon committed
426
  make clean
incardon's avatar
incardon committed
427 428
  make
fi
incardon's avatar
incardon committed
429 430 431 432 433

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

incardon's avatar
incardon committed
434 435
echo "Command used to configure"
echo ""
incardon's avatar
incardon committed
436
echo -e "\033[1m ./configure $options $configure_options \033[0m "
incardon's avatar
incardon committed
437
echo ""
incardon's avatar
incardon committed
438 439 440 441 442 443 444

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

incardon's avatar
incardon committed
445
bash_path="export PATH=\""
incardon's avatar
incardon committed
446 447 448 449

echo -e "\033[1;34;5m ---------------------------------------  \033[0m"
echo -e "\033[1;34;5m --------- INSTALLATION REPORT ---------  \033[0m"
echo ""
incardon's avatar
incardon committed
450 451
echo -e "\033[1;34;5m ---------- Mandatory packages ---------  \033[0m"
echo ""
incardon's avatar
incardon committed
452

incardon's avatar
incardon committed
453 454
if [ -d "$i_dir/MPI" ]; then
  installation_report="$installation_report \033[92;1mMPI\033[0m Installed: \033[1m $i_dir/MPI \033[0m\n"
455
  bash_path="$bash_path:$i_dir/MPI/bin:"
incardon's avatar
incardon committed
456 457 458
  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
459
fi
incardon's avatar
incardon committed
460

Pietro Incardona's avatar
Pietro Incardona committed
461
if [ -d "$i_dir/METIS" ]; then
incardon's avatar
incardon committed
462
  installation_report="$installation_report \033[92;1mMETIS\033[0m Installed: \033[1m $i_dir/METIS \033[0m\n"
incardon's avatar
incardon committed
463
  bash_library="$bash_library:$i_dir/METIS/lib"
464 465
fi

Pietro Incardona's avatar
Pietro Incardona committed
466
if [ -d "$i_dir/PARMETIS" ]; then
incardon's avatar
incardon committed
467 468 469 470
  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
471
if [ -d "$i_dir/BOOST" ]; then
incardon's avatar
incardon committed
472
  installation_report="$installation_report \033[92;1mBOOST\033[0m Installed: \033[1m $i_dir/BOOST \033[0m\n"
incardon's avatar
incardon committed
473
  bash_library="$bash_library:$i_dir/BOOST/lib"
incardon's avatar
incardon committed
474 475 476 477
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
478
if [ -d "$i_dir/HDF5" ]; then
incardon's avatar
incardon committed
479
  installation_report="$installation_report \033[92;1mHDF5\033[0m Installed: \033[1m $i_dir/HDF5 \033[0m\n"
480
  bash_library="$bash_library:$hdf5_lib"
incardon's avatar
incardon committed
481
fi
incardon's avatar
incardon committed
482

483 484 485 486 487
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
488 489 490 491 492 493 494
echo -e "$installation_report"

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

installation_report=""
incardon's avatar
incardon committed
495
lin_alg_installed=""
incardon's avatar
incardon committed
496 497 498 499

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"
incardon's avatar
incardon committed
500
  lin_alg_installed="y"
incardon's avatar
incardon committed
501 502
else
  installation_report="$installation_report \033[91;1mPETSC\033[0m Installed: \033[1m NO \033[0m\n"
incardon's avatar
incardon committed
503
fi
incardon's avatar
incardon committed
504

incardon's avatar
incardon committed
505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526
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"
527
fi
incardon's avatar
incardon committed
528 529 530

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
531
  bash_library="$bash_library:$i_dir/SUITESPARSE/lib"
incardon's avatar
incardon committed
532 533
else
  installation_report="$installation_report \033[91;1mSUITESPARSE\033[0m Installed: \033[1m NO \033[0m\n"
534
fi
incardon's avatar
incardon committed
535 536 537 538 539 540

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"
541
fi
incardon's avatar
incardon committed
542

incardon's avatar
incardon committed
543 544 545 546 547
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"
548
fi
incardon's avatar
incardon committed
549 550 551 552 553 554

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"
555 556
fi

incardon's avatar
incardon committed
557 558 559 560 561 562 563
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

564
bash_path="$bash_path\$PATH\""
incardon's avatar
incardon committed
565
bash_library="$bash_library\""
incardon's avatar
incardon committed
566 567 568 569 570 571

##### Writing openfpm_vars file

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

incardon's avatar
incardon committed
572 573 574 575
if [ x"$platform" = x"osx" ]; then
    echo "TMPDIR=/tmp/" >> $HOME/openfpm_vars
fi

incardon's avatar
incardon committed
576
echo -e "$installation_report"
incardon's avatar
incardon committed
577 578 579 580
echo ""
echo ""
if [ $conf_err -eq 0  ]; then
  echo -e "Install summary\033[92;5;1m SUCCEED \033[0m"
incardon's avatar
incardon committed
581 582
  
  ## Save dependencies dir and foward options
incardon's avatar
incardon committed
583 584
  printf "%s" "$i_dir_old" > dependencies_dir
  printf "%s" "$configure_options_old" > foward_options
incardon's avatar
incardon committed
585

incardon's avatar
incardon committed
586 587 588 589
else
  echo -e "Install summary\033[91;5;1m FAILED \033[0m"
fi

incardon's avatar
incardon committed
590 591
echo ""
if [ x"$platform" = x"linux" ]; then
incardon's avatar
incardon committed
592
  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
593
else
incardon's avatar
incardon committed
594
  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
595 596
fi
echo ""
incardon's avatar
incardon committed
597
echo -e "\033[1m source $HOME/openfpm_vars \033[0m"
incardon's avatar
incardon committed
598
echo ""
incardon's avatar
incardon committed
599
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
600 601
echo ""
echo ""
incardon's avatar
incardon committed
602
if [ x"$inst_lin_alg" == "y" -a x"$lin_alg_installed" == x"" ]; then
incardon's avatar
incardon committed
603 604
  conf_err=1
fi
605 606 607
if [ $conf_err -ne 0 ]; then
  exit 1
fi