]> Creatis software - creaToolsTools.git/blobdiff - Linux/menu.sh
Feature #1930 Updated the documentation related to installscript.
[creaToolsTools.git] / Linux / menu.sh
index 9af41e2546f529019dd8a1c2510ee302544e5920..2d1dbd41cf0fbd967acc5e962cba35349f982502 100644 (file)
@@ -1,3 +1,27 @@
+# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
+#                        pour la Santé)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+#
+#  This software is governed by the CeCILL-B license under French law and 
+#  abiding by the rules of distribution of free software. You can  use, 
+#  modify and/ or redistribute the software under the terms of the CeCILL-B 
+#  license as circulated by CEA, CNRS and INRIA at the following URL 
+#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
+#  or in the file LICENSE.txt.
+#
+#  As a counterpart to the access to the source code and  rights to copy,
+#  modify and redistribute granted by the license, users are provided only
+#  with a limited warranty  and the software's author,  the holder of the
+#  economic rights,  and the successive licensors  have only  limited
+#  liability. 
+#
+#  The fact that you are presently reading this means that you have had
+#  knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------  
+
+
 #!/bin/bash -e
 
   if [ -f scripts/CreaTools-configure.sh ]
@@ -5,6 +29,7 @@
      source scripts/CreaTools-configure.sh
   fi
 
+expanded="NO"
 i=999
 while [ "$i" != 9 ]
 do
@@ -14,15 +39,43 @@ do
    echo
    echo "                MENU"
    echo
+   echo " This MENU is deprecated."
+   echo " Please use installscipt instead." 
+   echo
    echo " Choose what you want to do :"
    echo  
-   echo " Configure :........................0 "
-   echo " Install Third Party Libraries :....1 (as root)"
-   echo " Get the 'CreaTools' source files :.2 (CVS : as user!)" 
-   echo " Compile   the CreaTools :..........3 "
-   echo " Install   the CreaTools :..........4 (as root)"
-   echo " Uninstall the CreaTools :..........5 (as root)"
+   echo " Configure :........................0"
+
+   if [ $expanded = "YES" ]
+   then 
+      echo " Install all base stuff  :..........1.0"
+      echo "        (cmake, doxygen, graphviz, ...)"
+      echo " Get, Compile, Install vtk   .......1.1"                
+      echo " Get, Compile, Install gdcm :.. .  .1.2" 
+      echo " Get, Compile, Install itk  :.......1.3"
+      echo " Get, Compile, Install Wx (for Mac Users)  :…....1.4"
+
+   else
+      echo " Install Third Party Libraries :....1 (as root)"   
+   fi
+     
+   if [ $expanded = "YES" ]
+   then
+      echo " Get the 'CreaTools' source files :.2.1 (GIT : as user!)" 
+      echo " Compile   the CreaTools :..........2.2"
+      # Install creatools as user (no longer as root) // JPR 2/5/2011   
+      echo " Install   the CreaTools :..........2.3"
+   else
+      echo " Get and Install the 'CreaTools':...2"
+   fi
    echo
+   if [ $expanded = "NO" ]
+   then
+      echo " Use Expanded menu :................5 "
+   else
+      echo " Use compact menu :.................5 "
+   fi
+   echo " Uninstall the CreaTools :..........6 "
    echo " Help ..............................7 Help about this menu"   
    echo " Show some Environment Variables ...8"
    echo " Exit :.............................9"
@@ -35,6 +88,22 @@ do
 
   case $i in
   0)
+
+  # Do it, while we are under user, not under root! # JPR
+             if [ -f $HOME/.bashrc ]
+             then
+                export ETC_BASHRC=$HOME/.bashrc
+             else
+                if [ -f $HOME/.profile ]
+                    then
+                   export ETC_BASHRC=$HOME/.profile
+                    else
+                       echo "======================== BIG TROUBLE : neither $HOME/.bashrc nor $HOME/.profile file found"
+                       echo "======================== You'd better to abort the program and (try to) fix the issue"
+                       read a # just to let the user time enough to read the message...
+                    fi
+          fi
+
   clear
   suitable=XXX
   #ls -l  scripts/CreaTools-configure.sh
@@ -47,33 +116,24 @@ do
               "$suitable" != "NO"  && \
               "$suitable" != "no"  ]]
      do          
-        echo "'Configure' already done : "
+        echo "'Configure' already done; Content of scripts/CreaTools-configure.sh :"
         echo "------------------------"
         more scripts/CreaTools-configure.sh
         echo "------------------------"
        
-       # WARNING : $installPrefixThird is taken from CreaTools-configure.sh
-        # if user configured without installing third party library,
-        # Last third party library is still in use!  JPR
-
+           # WARNING : $installPrefixThird is taken from CreaTools-configure.sh
+        # If user configured without installing third party library,
+        # last third party library is still in use!  JPR
 
         if [ ! -f $installPrefixThird/share/creatools_third_party_library_config.sh ]
         then
-              echo WARNING
-              echo
-             if [ ! -f /etc/bashrc ]
-             then
-                export ETC_BASHRC="/etc/bash.bashrc"
-              else
-                 export ETC_BASHRC="/etc/bashrc"
-              fi             
-              echo "the curently used Third Party libraries are NOT in $installPrefixThird but in :"
-                
-              grep "installPrefixThird=" $ETC_BASHRC 
-              echo "VTK_DIR :...." $VTK_DIR
-              echo "ITK_DIR :...." $ITK_DIR
-              echo "GDCM_DIR :..." $GDCM_DIR
-             echo "(Have a look at $ETC_BASHRC=, edit it or run again Install Third Party Libraries if you disagree)"
+           echo WARNING
+           echo "the curently used Third Party libraries are NOT in $installPrefixThird but ... in :"
+           grep "installPrefixThird=" $ETC_BASHRC
+           echo "VTK_DIR  : " $VTK_DIR
+           echo "ITK_DIR  : " $ITK_DIR
+           echo "GDCM_DIR : " $GDCM_DIR
+           echo "(Have a look at $ETC_BASHRC=, edit it or run again Install Third Party Libraries if you disagree)"
         fi
        echo    
         echo "Are these values suitable for you : YES/NO? (default is YES)"
@@ -86,7 +146,7 @@ do
   else
      suitable="NO"
   fi
-  
+
   if [[ "$suitable" = "YES" || "$suitable" = "Y" || "$suitable" = "yes" || "$suitable" = "y" ]]
   then
      source scripts/CreaTools-configure.sh
@@ -100,7 +160,7 @@ do
      confirm="NO"
      while [ "$confirm" != "YES" ]
      do
-     
+        # ///\TODO what about SuSE? Debian? Mandriva? Gentoo?    
         OperatingSystem="XXX"
         while [[ "$OperatingSystem" != "Fedora" && \
                  "$OperatingSystem" != "Ubuntu" && \
@@ -116,13 +176,26 @@ do
         echo "you said : [" $OperatingSystem "]"
         echo
         echo
+       
+        # ------------------
+        echo "How many cores on your computer 2 (default is 2)"
+        read corenumber
+        if [ "$corenumber" = "" ]
+        then
+           corenumber="2"
+        fi
+        echo "you said : [" $corenumber "]"
 
+        echo
+        echo
+               
+        racine=$HOME/myDefaultCreatoolsGenerationDir
         # ------------------
-        echo "Name of the Generation Directory (default is /tmp/myGenerationDir)"
+        echo "Name of the Generation Directory (default is $racine)"
         read generationdir
         if [ "$generationdir" = "" ]
         then
-           generationdir="/tmp/myGenerationDir"
+           generationdir=$racine
         fi
         echo "you said : [" $generationdir "]"
 
@@ -153,29 +226,35 @@ do
         echo 
         # ------------------
 
+if [ false ]
+then
         docgeneration="___"
         while [[ "$docgeneration" != "ON"  && "$docgeneration" != "OFF" ]]
         do
            echo "Boolean For Doc Generation : ON/OFF (default is OFF)"
            read docgeneration
-          if [ "$docgeneration" = "" ]
-          then
-             docgeneration="OFF"
-          fi
-          echo "you said : [" $docgeneration "]"
+           if [ "$docgeneration" = "" ]
+           then
+              docgeneration="OFF"
+           fi
+           echo "you said : [" $docgeneration "]"
         done
         echo
         echo
+fi
+
+docgeneration="OFF"
+
         # ------------------
 
         sourcesFrom="___"
-        while [[ "$sourcesFrom" != "CVS"  && "$sourcesFrom" != "HTML" ]]
+        while [[ "$sourcesFrom" != "GIT"  && "$sourcesFrom" != "HTML" ]]
         do
-           echo "Where do you want to get source files from : CVS/HTML (default is CVS)"
+           echo "Where do you want to get source files from : GIT/HTML ( GIT : for registered CREATIS users only! )"
            read sourcesFrom
            if [ "$sourcesFrom" = "" ]
            then
-              sourcesFrom="CVS"
+              sourcesFrom="GIT"
            fi
            echo "you said : [" $sourcesFrom "]"
         done
@@ -183,41 +262,41 @@ do
         echo
         # ------------------
 
-        cvsUserName=""
-        if [ "$sourcesFrom" = "CVS" ]
+        gitUserName=""
+        if [ "$sourcesFrom" = "GIT" ]
         then
-           while [ "$cvsUserName" == "" ]
+           while [ "$gitUserName" == "" ]
            do
-              echo "CVS User Name (mandatory!)"
-              read cvsUserName
+              echo "GIT User Name ( registered CREATIS user : mandatory!)"
+              read gitUserName
            done
-           echo "you said : [" $cvsUserName "]"
+           echo "you said : [" $gitUserName "]"
         else
-           cvsUserName="ForgetThisOne" 
+           gitUserName="ForgetThisOne" 
         fi
         echo
         echo
         # ------------------
 
 
-        loginUserName=""
-        while [ "$loginUserName" == "" ]
-        do 
+        #loginUserName=""
+           loginUserName=$USER
+        #while [ "$loginUserName" == "" ]
+        #do 
            echo "Have a look at the following line to know 'Login User Name'/'Login Group Name'"
            ls -l menu.sh
-           echo "Login User Name (mandatory!)"
-           read loginUserName  
-           echo "you said : [" $loginUserName "]"  
-        done
+         #  echo "Login User Name (mandatory!)"
+         #  read loginUserName  
+         #  echo "you said : [" $loginUserName "]"  
+        #done
         echo
         echo
 
         loginGroupName=""
         while [ "$loginGroupName" == "" ]
         do
-            #echo "Have a look at the following line to know 'Login User Name'/'Login Group Name'"
-            #echo "Login Group Name (mandatory!)"
-          echo "Login Group Name (mandatory!)"
+           echo "Have a look at the following line to know 'Login User Name'/'Login Group Name'"
+              echo "Login Group Name (mandatory!)"
            read loginGroupName  
            echo "you said : [" $loginGroupName "]"  
         done
@@ -241,7 +320,7 @@ do
         # ------------------
 
         gdcmVersion="___"
-        while [[ "$gdcmVersion" != "GDCM1"  && "$gdcmVersion " != "GDCM2" ]]
+        while [[ "$gdcmVersion" != "GDCM1"  && "$gdcmVersion" != "GDCM2" ]]
         do
            echo "Gdcm version : GDCM1/GDCM2 (default is GDCM1)"
            read gdcmVersion
@@ -251,25 +330,41 @@ do
            fi
            echo "you said : [" $gdcmVersion "]"
         done
+
+# NOT YET CHECKED ! JPR
+        ITKVersion="___"
+        while [[ "$ITKVersion" != "ITK3"  && "$ITKVersion" != "ITK4" ]]
+        do
+           echo "ITK version : ITK3/ITK4 (default is ITK3)"
+           read ITKVersion
+           if [ "$ITKVersion" = "" ]
+           then
+              ITKVersion="ITK3"
+           fi
+           echo "you said : [" $ITKVersion "]"
+        done
+
         echo
         echo
         echo
         echo
         echo "You said :"
         echo "  Operating System                           : $OperatingSystem"
+        echo "  Number of Cores                            : $corenumber"      
         echo "  Name of the Generation Directory           : $generationdir"
         echo "  Install Prefix for Third Party Libraries   : $installPrefixThird"      
         echo "  Install Prefix for CreaTools               : $installPrefix"
         echo "  Boolean for Doc Generation                 : $docgeneration"
         echo "  Where do you want to get source files from : $sourcesFrom"
-        if [ $sourcesFrom = CVS ]
+        if [ $sourcesFrom = GIT ]
         then
-           echo "  CVS User Name                              : $cvsUserName"
+           echo "  GIT User Name                              : $gitUserName"
         fi
         echo "  Login User Name                            : $loginUserName"
         echo "  Login Group Name                           : $loginGroupName"
         echo "  Build type                                 : $buildType"          
         echo "  Gdcm version                               : $gdcmVersion"
+        echo "  ITK version                                : $ITKVersion"
         echo
         echo
      
@@ -281,11 +376,7 @@ do
        fi
    done
 
- # GROS SOUCIS : Ou generer le fichier CreaTools-configure.sh?
- # dans $generationdir/creatools_bin ?
- # -> il n'est pas encore cree !
- # dans ./Linux/scripts?
- # ==> On le genere chez l'utilisateur (no choice!)...
+ # ==> On genere le fichier CreaTools-configure.sh genere chez l'utilisateur (no choice!)...
  # 
 
    configureFile="scripts/CreaTools-configure.sh"
@@ -294,20 +385,23 @@ do
    echo                                          >> $configureFile
    echo "#File generated by 'menu.sh'"           >> $configureFile
    echo "#DO NOT edit !"                         >> $configureFile
-   echo "#(except if you *know* what you do)"    >> $configureFile
+   echo "#(except if you *do* know what you do)" >> $configureFile
    echo                                          >> $configureFile
    echo "OperatingSystem=$OperatingSystem"       >> $configureFile
+   echo "corenumber=$corenumber"                 >> $configureFile   
    echo "generationdir=$generationdir"           >> $configureFile
    echo "installPrefix=$installPrefix"           >> $configureFile
    echo "installPrefixThird=$installPrefixThird" >> $configureFile
    echo "docgeneration=$docgeneration"           >> $configureFile
    echo "sourcesFrom=$sourcesFrom"               >> $configureFile
-   echo "cvsUserName=$cvsUserName"               >> $configureFile 
+   echo "gitUserName=$gitUserName"               >> $configureFile 
    echo "loginUserName=$loginUserName"           >> $configureFile
    echo "loginGroupName=$loginGroupName"         >> $configureFile
    echo "buildType=$buildType"                   >> $configureFile
    echo "gdcmVersion=$gdcmVersion"               >> $configureFile
-   
+   echo "ITKVersion=$ITKVersion"                 >> $configureFile
+   echo "ETC_BASHRC=$ETC_BASHRC"                 >> $configureFile
+
   # ------------------      
   # endif 'suitable'
   fi 
@@ -316,33 +410,91 @@ do
   1)
      echo "========================== 1 "
      source scripts/Check-if-root.sh
+     bash scripts/ThirdParty-install-Base-Stuff.sh     
+     bash scripts/ThirdParty-install-VTK.sh
+     bash scripts/ThirdParty-install-gdcm.sh
+     bash scripts/ThirdParty-install-ITK.sh
      bash scripts/ThirdParty-install.sh
+     bash scripts/ThirdParty-install-Finalize.sh
 
-     if [ "$sourcesFrom" = "CVS" ]
+     if [ "$sourcesFrom" = "GIT" ]
      then
         echo "----------------------------------------------------------------------"
         echo OK
         echo "To go on, run again 'bash menu.sh' as '$loginUserName', in a new window"
-        echo "---------------------------------------------------------------------"
+        echo "----------------------------------------------------------------------"
      else
         echo "----------------------------------------------------------------------"
         echo OK
         echo "To go on, run again 'bash menu.sh'  in a new window"
-        echo "---------------------------------------------------------------------"
+        echo "----------------------------------------------------------------------"
      fi
      echo
-     echo "==> Hit any key to exit close current window" 
+     echo "==>"
+     echo "==> You HAVE to leave current window to continue!" 
+     echo "==>"
+     source $ETC_BASHRC
+     read a
+  ;;
+
+  1.0)
+     echo "========================== 1.0 "
+     source scripts/Check-if-root.sh
+     bash scripts/ThirdParty-install-Base-Stuff.sh     
+     bash scripts/ThirdParty-install-Finalize.sh
+  ;;
+
+  1.1)
+     echo "========================== 1.1 "
+     #source scripts/Check-if-root.sh 
+     bash scripts/ThirdParty-install-VTK.sh  
+     bash scripts/ThirdParty-install-Finalize.sh
+  ;;
+
+  1.2)
+     echo "========================== 1.2 "
+     #source scripts/Check-if-root.sh
+     bash scripts/ThirdParty-install-gdcm.sh
+     bash scripts/ThirdParty-install-Finalize.sh
+  ;;
+
+  1.3)
+     echo "========================== 1.3 "
+     #source scripts/Check-if-root.sh
+     bash scripts/ThirdParty-install-ITK.sh
+     bash scripts/ThirdParty-install-Finalize.sh         
+  ;;
+  1.4)
+    echo "========================== 1.4 "
+     #source scripts/Check-if-root.sh
+     bash scripts/ThirdParty-install-WX.sh     
+     bash scripts/ThirdParty-install-Finalize.sh         
      read a
-     kill $PPID    
   ;;
 
   2)
-     echo "========================== 2" 
+     #2.1
+     bash scripts/CreaTools-load.sh
+     #2.2
+     source scripts/CreaTools-configure.sh
+     bash scripts/CreaTools-compile.sh
+     #2.3
+     bash scripts/CreaTools-install.sh
+     echo "==>"
+     echo "==> You HAVE to leave current window to continue!"
+     echo "==>"
+     source $ETC_BASHRC
+     read a
+     kill -9 $PPID
+  ;;
+
+  2.1)
+     echo "========================== 2.1"
      bash scripts/CreaTools-load.sh
   ;;
 
-  3)
-     echo "========================== 3"
+  2.2)
+     echo "========================== 2.2"
      source scripts/CreaTools-configure.sh
      
      bash scripts/CreaTools-compile.sh
@@ -359,42 +511,39 @@ do
      else
         chown -R $loginUserName  $generationdir/creatools_source
         chgrp -R $loginGroupName $generationdir/creatools_source
-        # Too much time consuming
-        #chown -R $loginUserName $generationdir/creatools_source 
-        #chgrp -R $loginGroupName $generationdir/creatools_source
     fi    
   ;;
-  
-  4) 
-      if [ $UID != 0 ]
-      then
-         echo
-         echo "..ERROR.."
-         echo "==================================================="
-         echo "REMEMBER !"
-         echo ""
-         echo "YOU NEED TO RUN THIS ONE AS root"
-         echo "==================================================="
-         echo
-         echo
-         exit 0
-      fi
+
+  2.3)
+
       echo "========================= 4"
-      bash scripts/CreaTools-install.sh 
-      if [ $UID != 0 ]
-      then
-        echo "You HAVE to leave current window to continue!"
-      else
-        echo "==> Hit any key to close current window"
-      fi
-      echo "You HAVE to leave current window to continue!"
-      read a
-      kill $PPID     
+      
+      bash scripts/CreaTools-install.sh
+   
+#      if [ $UID != 0 ]
+#      then
+#        echo "You HAVE to leave current window to continue!"
+#      else
+#        echo "==> Hit any key to close current window"
+#      fi
+     source $ETC_BASHRC
   ;;
+
   5)
+   if [ $expanded = "NO" ]
+   then
+     expanded="YES"
+   else
+     expanded="NO"
+   fi
+  ;;
+
+  6)
      echo "========================= 5"
-     bash scripts/CreaTools-uninstall.sh
+     bash scripts/CreaTools-uninstall.sh 
+     echo
+     echo "==> Hit any key to go on"
+     read a
   ;;
 
   7)
@@ -411,8 +560,8 @@ do
      echo "==================================="
      
      # WARNING : $installPrefixThird is taken from CreaTools-configure.sh
-     # if user configured without installing third party library,
-     # Last third party library is still in use!  JPR
+     # If user configured without installing third party library,
+     # last third party library is still in use!  JPR
 
 
      if [ ! -f $installPrefixThird/share/creatools_third_party_library_config.sh ]
@@ -420,17 +569,17 @@ do
         echo WARNING
         echo
         echo "the curently used Third Party libraries are NOT in $installPrefixThird but in :"
-        grep "installPrefixThird=" /etc/bashrc
-        echo "VTK_DIR :...." $VTK_DIR
-        echo "ITK_DIR :...." $ITK_DIR
-        echo "GDCM_DIR :..." $GDCM_DIR
-           echo
-           echo "installPrefixThird ... " $installPrefixThird
+        grep "installPrefixThird=" $ETC_BASHRC
+        echo "VTK_DIR  : " $VTK_DIR
+        echo "ITK_DIR  : " $ITK_DIR
+        echo "GDCM_DIR : " $GDCM_DIR
+       echo
+       echo "installPrefixThird ... " $installPrefixThird
      fi
             
      if [ -f $installPrefixThird/share/creatools_third_party_library_config.sh ]
      then
-        echo  $installPrefixThird/share/creatools_third_party_library_config.sh
+        echo  "Third party config file : " $installPrefixThird/share/creatools_third_party_library_config.sh
            echo  ------
            more $installPrefixThird/share/creatools_third_party_library_config.sh
            echo  ------
@@ -440,28 +589,57 @@ do
      
      if [ -f $installPrefix/share/creatools_base_library_config.sh ]
      then
-        echo  $installPrefix/share/creatools_base_library_config.sh
+        echo  "Creatools base library config file : " $installPrefix/share/creatools_base_library_config.sh
            echo  ------ 
            more $installPrefix/share/creatools_base_library_config.sh
            echo  ------ 
            echo
         echo "installPrefix ... " $installPrefix
-     fi   
-     echo "==================================="
-     echo
-     echo "Press any key to continue"
-     read a
+     fi
+     echo  ------
+        echo "VTK_DIR  :                 " $VTK_DIR
+        echo "ITK_DIR  :                 " $ITK_DIR
+        echo "GDCM_DIR :                 " $GDCM_DIR
+        echo
+        echo "crea_DIR :                 " $crea_DIR
+        echo "BBTK_DIR :                 " $BBTK_DIR
+        echo "creaMaracasVisu_DIR :      " $creaMaracasVisu_DIR
+        echo "creaEnvironment_DIR :      " $creaEnvironment_DIR
+        echo "creaBruker_DIR :           " $creaBruker_DIR
+        echo "creaImageIO_DIR :          " $creaImageIO_DIR
+        echo "creaContours_DIR :         " $creaContours_DIR
+        echo "creaRigidRegistration_DIR :" $creaRigidRegistration_DIR
+        echo "bbtkGEditor_DIR :          " $bbtkGEditor_DIR
+        echo "creaTools_DIR :            " $creaTools_DIR
+        echo "creaMiniTools_DIR :        " $creaMiniTools_DIR
+        echo "Ido_DIR :                  " $Ido_DIR
+        echo "==================================="
+        echo
+        echo "Press any key to continue"
+        read a
    ;;
-               
+
   9) 
-  echo 
-  exit 0
-  ;;
-   
+    echo
+    exit 0
+    ;;
+
+  10)
+  # Hiden option, usefull at debug time
+    bash scripts/ThirdParty-install_no_compile.sh  
+    ;;
+      
   *)
-  echo "Your answer must be in {0, 1, 2, 3, 4, 5, 7, 8, 9} (was [ $i ])"
+
+  if [ expanded="NO" ]
+  then
+     echo "Your answer must be in {0, 1, 2, 5, 6, 7, 8, 9} (was [ $i ])"
+  else
+     echo "Your answer must be in {0, 1, 2.1, 2.2, 2.3, 5, 6, 7, 8, 9} (was [ $i ])"
+  fi
   ;;
   esac
 
 done
 
+