.../
... + -- EO
| |
| |
+-- src ----- + -- EDO
| |
| |
+-- test + -- MO
| |
| |
+-- tutorial + -- MOEO
| |
| |
+-- doc + -- SMP
| |
| |
... + -- EOMPI
|
|
+ -- EOSERIAL
Question for current maintainers: ./README: new release?
Also:
* Moving out eompi & eoserial modules (issue #2).
* Correction of the errors when executing "make doc" command.
* Adding a solution for the conflicting headers problem (see the two CMake Cache
Values: PROJECT_TAG & PROJECT_HRS_INSTALL_SUBPATH) (issue #1)
* Header inclusions:
** src: changing absolute paths into relative paths ('#include <...>' -> '#include "..."')
** test, tutorial: changing relative paths into absolute paths ('#include "..."' -> '#include <...>')
* Moving out some scripts from EDO -> to the root
* Add a new script for compilation and installation (see build_gcc_linux_install)
* Compilation with uBLAS library or EDO module: now ok
* Minor modifications on README & INSTALL files
* Comment eompi failed tests with no end
*** TODO: CPack (debian (DEB) & RedHat (RPM) packages) (issues #6 & #7) ***
250 lines
5.2 KiB
Bash
Executable file
250 lines
5.2 KiB
Bash
Executable file
#!/usr/bin/env sh
|
|
|
|
color() {
|
|
echo $(tput bold)$(tput setaf $1)$2$(tput sgr0)
|
|
}
|
|
|
|
##################################################################################
|
|
# This script allows you to compile and install the sources, tests, tutorials, #
|
|
# and documentation of the framework depending on what you want to do! #
|
|
# #
|
|
# Launch this script on your terminal and let it be your guide ! #
|
|
##################################################################################
|
|
|
|
mkdir -pv build
|
|
cd build
|
|
|
|
color 5 '\nDefine CMAKE cache values.\n'
|
|
|
|
##################################
|
|
# choose modules for compilation #
|
|
# default modules: only EO #
|
|
##################################
|
|
|
|
FLAG="-DEO_ONLY=false" #default
|
|
|
|
color 1 'Do you want to compile the EO module only (false by default)?(y/n)'
|
|
read res
|
|
|
|
if [ "$res" = "y" ]; then
|
|
FLAG="-DEO_ONLY=true"
|
|
else
|
|
color 1 'Do you want to compile the EDO module (no by default)?(y/n)'
|
|
read res
|
|
|
|
if [ "$res" = "y" ]; then
|
|
FLAG=$FLAG' '" -DEDO=true"
|
|
|
|
##################################
|
|
# choose the library used by EDO #
|
|
# default library: Eigen3 #
|
|
##################################
|
|
|
|
color 1 'Compile EDO module with uBLAS (Eigen3 by default)?(y/n)'
|
|
read res
|
|
|
|
if [ "$res" = "y" ]; then
|
|
FLAG=$FLAG' '" -DEDO_USE_LIB=uBLAS"
|
|
else
|
|
FLAG=$FLAG' '" -DEDO_USE_LIB=Eigen3"
|
|
fi #EDO_USE_LIB
|
|
else
|
|
FLAG=$FLAG' '" -DEDO=false" #default
|
|
fi #EDO
|
|
|
|
color 1 'Do you want to compile the SMP module (no by default)?(y/n)'
|
|
read res
|
|
|
|
if [ "$res" = "y" ]; then
|
|
FLAG=$FLAG' '" -DSMP=true"
|
|
else
|
|
FLAG=$FLAG' '" -DSMP=false"
|
|
fi #SMP
|
|
|
|
color 1 'Do you want to compile the MOEO module (no by default)?(y/n)'
|
|
read res
|
|
|
|
if [ "$res" = "y" ]; then
|
|
FLAG=$FLAG' '" -DMOEO=true"
|
|
else
|
|
FLAG=$FLAG' '" -DMOEO=false"
|
|
fi #MOEO
|
|
|
|
color 1 'Do you want to compile the MO module (no by default)?(y/n)'
|
|
read res
|
|
|
|
if [ "$res" = "y" ]; then
|
|
FLAG=$FLAG' '" -DMO=true"
|
|
else
|
|
FLAG=$FLAG' '" -DMO=false"
|
|
fi #MO
|
|
|
|
color 1 'Do you want to compile the EOSERIAL module (no by default)?(y/n)'
|
|
read res
|
|
|
|
if [ "$res" = "y" ]; then
|
|
FLAG=$FLAG' '" -DEOSERIAL=true"
|
|
else
|
|
FLAG=$FLAG' '" -DEOSERIAL=false"
|
|
fi #EOSERIAL
|
|
|
|
color 1 'Do you want to compile the EOMPI module (no by default)?(y/n)'
|
|
read res
|
|
|
|
if [ "$res" = "y" ]; then
|
|
FLAG=$FLAG' '" -DEOMPI=true"
|
|
else
|
|
FLAG=$FLAG' '" -DEOMPI=false"
|
|
fi #EOMPI
|
|
|
|
fi #EO_ONLY
|
|
|
|
##################
|
|
# Other settings #
|
|
##################
|
|
|
|
color 1 'Do you want to enable GNUPLOT (no by default)?(y/n)'
|
|
read res
|
|
|
|
if [ "$res" = "y" ]; then
|
|
FLAG=$FLAG' '" -DENABLE_GNUPLOT=true"
|
|
else
|
|
FLAG=$FLAG' '" -DENABLE_GNUPLOT=false"
|
|
fi #ENABLE_GNUPLOT
|
|
|
|
color 1 'Do you want to enable OPENMP (no by default)?(y/n)'
|
|
read res
|
|
|
|
if [ "$res" = "y" ]; then
|
|
FLAG=$FLAG' '" -DENABLE_OPENMP=true"
|
|
else
|
|
FLAG=$FLAG' '" -DENABLE_OPENMP=false"
|
|
fi #ENABLE_OPENMP
|
|
|
|
color 5 "\nset $FLAG\n"
|
|
|
|
cmake $FLAG ..
|
|
|
|
###############
|
|
# compile doc #
|
|
# default: no #
|
|
###############
|
|
|
|
color 1 '\nDo you want to compile the documentation (be patient it can be a bit long)?(y/n)'
|
|
read res
|
|
|
|
if [ "$res" = "y" ]; then
|
|
|
|
make doc
|
|
fi
|
|
|
|
##############################################
|
|
# install sources on your laptop #
|
|
# default path: /usr/local/include/paradiseo #
|
|
##############################################
|
|
|
|
color 1 '\nDo you want to install the sources on your laptop?(y/n)
|
|
If "no" you will not be able to compile tests or tutorials
|
|
which require the project library installation on your laptop.'
|
|
read res
|
|
|
|
if [ "$res" = "y" ]; then
|
|
|
|
color 5 '\nOk. For your information we let you the possibility
|
|
to change the install path on your laptop but also to
|
|
personalize the project name in order to avoid some
|
|
name conflicts with headers.
|
|
Go see the script line 166-170 to see what it looks like.'
|
|
|
|
color 1 'Continue the installation?(y/n)'
|
|
read res
|
|
|
|
if [ "$res" = "n" ]; then
|
|
exit
|
|
fi
|
|
|
|
#cmake -DCMAKE_INSTALL_PREFIX=new_path .. #default
|
|
#cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
|
|
|
|
#cmake -DPROJECT_HDRS_INSTALL_SUBPATH=/include .. #default
|
|
#cmake -DPROJECT_TAG=paradiseo .. #default
|
|
|
|
sudo make install
|
|
|
|
#################
|
|
# compile tests #
|
|
# default: no #
|
|
#################
|
|
|
|
color 1 '\nDo you want to compile tests?(y/n)'
|
|
read test_compile
|
|
|
|
if [ "$test_compile" = "y" ]; then
|
|
|
|
FLAG=$FLAG' '" -DENABLE_CMAKE_TESTING=true"
|
|
|
|
else
|
|
|
|
FLAG=$FLAG' '" -DENABLE_CMAKE_TESTING=false"
|
|
|
|
fi
|
|
|
|
#####################
|
|
# compile tutorials #
|
|
# default: no #
|
|
#####################
|
|
|
|
color 1 'Do you want to compile tutorials?(y/n)'
|
|
read tutorial_compile
|
|
|
|
if [ "$tutorial_compile" = "y" ]; then
|
|
|
|
FLAG=$FLAG' '" -DENABLE_CMAKE_EXAMPLE=true"
|
|
|
|
else
|
|
|
|
FLAG=$FLAG' '" -DENABLE_CMAKE_EXAMPLE=false"
|
|
|
|
fi
|
|
|
|
color 5 "\nset $FLAG\n"
|
|
cmake $FLAG ..
|
|
|
|
if [ "$test_compile" = "y" ] || [ "$tutorial_compile" = "y" ]; then
|
|
|
|
color 1 'And do you want to install tests or tutorials?(y/n)'
|
|
read install
|
|
|
|
|
|
if [ "$install" = "y" ]; then
|
|
|
|
sudo make install
|
|
|
|
else
|
|
|
|
make
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
#################
|
|
# execute tests #
|
|
#################
|
|
|
|
if [ "$test_compile" = "y" ] && [ "$install" = "y" ]; then
|
|
|
|
color 1 'Do you want to execute the tests?(y/n)'
|
|
read test_execute
|
|
|
|
if [ "$test_execute" = "y" ]; then
|
|
|
|
ctest ..
|
|
fi
|
|
fi
|
|
|
|
else
|
|
|
|
make
|
|
|
|
fi
|