| 1 | #!/bin/bash |
|---|
| 2 | #************************************************************ |
|---|
| 3 | # La llamada al script recibe dos argumentos: |
|---|
| 4 | # ./build.sh [tol|toltcl|tolbase|rtol] [|release|debug] |
|---|
| 5 | #************************************************************ |
|---|
| 6 | # Durante el proceso se pregunta por cada una de las etapas. |
|---|
| 7 | #************************************************************ |
|---|
| 8 | |
|---|
| 9 | BUILD_DIR=$PWD/$(dirname $0) |
|---|
| 10 | |
|---|
| 11 | if [ "$1" = "" ]; then |
|---|
| 12 | echo -n "project? " |
|---|
| 13 | read project |
|---|
| 14 | else |
|---|
| 15 | project=$1 |
|---|
| 16 | fi |
|---|
| 17 | if !([ "$project" = "tol" ] || [ "$project" = "toltcl" ] || [ "$project" = "tolbase" ] || [ "$project" = "rtol" ]); then |
|---|
| 18 | echo "(!) First argument should be: tol, toltcl, tolbase or rtol." |
|---|
| 19 | exit |
|---|
| 20 | fi |
|---|
| 21 | |
|---|
| 22 | PROJECT_DIR=$BUILD_DIR/../../$project |
|---|
| 23 | if ![ -d "$PROJECT_DIR" ]; then |
|---|
| 24 | echo "(!) Cannot find folder: $PROJECT_DIR" |
|---|
| 25 | exit |
|---|
| 26 | fi |
|---|
| 27 | |
|---|
| 28 | if [ "$2" = "" ]; then |
|---|
| 29 | mode=release |
|---|
| 30 | else |
|---|
| 31 | mode=$2 |
|---|
| 32 | fi |
|---|
| 33 | if !([ "$mode" = "release" ] || [ "$mode" = "debug" ]); then |
|---|
| 34 | echo "(!) Second argument should be: release, debug or should be avoided." |
|---|
| 35 | exit |
|---|
| 36 | fi |
|---|
| 37 | suffix=-$mode |
|---|
| 38 | if [ "$mode" = "release" ]; then |
|---|
| 39 | suffix= |
|---|
| 40 | fi |
|---|
| 41 | |
|---|
| 42 | echo "----------------------------------------------------" |
|---|
| 43 | echo " Building $project - $mode" |
|---|
| 44 | echo "----------------------------------------------------" |
|---|
| 45 | |
|---|
| 46 | CMAKE_DIR=~/CMake_Build/$project/$mode |
|---|
| 47 | if [ -d "$CMAKE_DIR" ]; then |
|---|
| 48 | echo "/!\ There is already a built folder of $project." |
|---|
| 49 | echo -n "mkdir? (y/n) " |
|---|
| 50 | read answer |
|---|
| 51 | if [ "$answer" = "y" ]; then |
|---|
| 52 | rm -r -f "$CMAKE_DIR" |
|---|
| 53 | mkdir -p "$CMAKE_DIR" |
|---|
| 54 | fi |
|---|
| 55 | else |
|---|
| 56 | mkdir -p "$CMAKE_DIR" |
|---|
| 57 | fi |
|---|
| 58 | cd $CMAKE_DIR |
|---|
| 59 | |
|---|
| 60 | echo -n "cmake? (y/n) " |
|---|
| 61 | read answer |
|---|
| 62 | if [ "$answer" = "y" ]; then |
|---|
| 63 | if [ "$project" = "tol" ]; then |
|---|
| 64 | cmake $PROJECT_DIR/. -DCMAKE_BUILD_TYPE=$mode -DCLAPACK_NAME=lapacke -DZIPARCHIVE_ROOT_DIR=/usr/local/ZipArchive$suffix -DZIPARCHIVE_AS_STATIC=TRUE -DCMAKE_INSTALL_PREFIX=/usr/local/tol3.2$suffix |
|---|
| 65 | else |
|---|
| 66 | cmake $PROJECT_DIR -DCMAKE_BUILD_TYPE=$mode -DTOL_PREFIX_PATH=/usr/local/tol3.2$suffix -DCMAKE_INSTALL_PREFIX=/usr/local/tol3.2$suffix |
|---|
| 67 | fi |
|---|
| 68 | fi |
|---|
| 69 | |
|---|
| 70 | echo -n "make? (y/n) " |
|---|
| 71 | read answer |
|---|
| 72 | if [ "$answer" = "y" ]; then |
|---|
| 73 | make |
|---|
| 74 | fi |
|---|
| 75 | |
|---|
| 76 | echo -n "install? (y/n) " |
|---|
| 77 | read answer |
|---|
| 78 | if [ "$answer" = "y" ]; then |
|---|
| 79 | sudo make install |
|---|
| 80 | fi |
|---|