X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=Linux%2Finstallscript;h=b7c2f492c9209ee9dd3f42ab0e1f1a398675e40a;hb=86c5583aab988649d3987a15fcd17da4739baff3;hp=d861e39d25dbacd65717cb62788a9ad7ddc79fa3;hpb=c6a324a9e343fcd992fc3e73e886bc0323d5c0a7;p=creaToolsTools.git
diff --git a/Linux/installscript b/Linux/installscript
index d861e39..b7c2f49 100755
--- a/Linux/installscript
+++ b/Linux/installscript
@@ -23,122 +23,14 @@
#!/bin/bash -e
+scriptDirName=$(dirname $(readlink -f $0) )
+
#########################################################################
############ Local Functions #######################################
#########################################################################
-##########################################
-# check that $1 is one of $2, $3, ...
-function checkVal {
- local val=$1
- shift
- for x in $* ; do
- if [ "$val" == "$x" ] ; then
- echo "true"
- return
- fi
- done
- echo "false"
-}
-
-###########################################
-function bigDisplay {
- echo " ================================================================================================"
- echo " ================================================================================================"
- echo " ======= $1"
- echo " ================================================================================================"
- echo " ================================================================================================"
-}
-
-###########################################
-function checkDistrib {
- local OS=$1
-
- if [ "`checkVal $OS MacOS Fedora Ubuntu Mandriva`" == "false" ] ; then
- echo "Operating System not supported: $OS"
- echo "Currently supported system: Fedora Ubuntu MacOS"
- exit 1
- fi
-}
-
-###########################################
-function getDistrib {
- local OS=`uname`
-
- if [ "$OS" == Darwin ] ; then OS=MacOS;
- elif [ "$OS" == Linux ] ; then OS=`awk 'NR==1{print $1}' /etc/issue`
- else OS=""
- fi
-
-# checkDistrib $OS
-
- echo $OS
-}
-
-###########################################
-function getncore {
- if [ `uname` == Darwin ] ; then # MacOS
- system_profiler | grep Processor | awk '$1=="Number" {print $4}'
- else
- cat /proc/cpuinfo | grep processor | wc -l
- fi
-}
-
-###########################################
-function getbashrc {
- if [ ! -f $HOME/.bashrc ] ; then
- touch $HOME/.bashrc
- fi
- echo $HOME/.bashrc
-
-
-# # Do it, while we are under user, not under root! # JPR
-# if [ -f $HOME/.bashrc ] ; then
-# echo $HOME/.bashrc
-# else
-# if [ -f $HOME/.profile ] ; then
-# echo $HOME/.profile
-# else
-# echo "=============== BIG TROUBLE : neither $HOME/.bashrc nor $HOME/.profile file found" > /dev/stderr
-# echo "=============== You'd better abort the program and (try to) fix the issue" > /dec/stderr
-# read a # just to let the user time enough to read the message...
-# fi
-# fi
-}
-
-
-###########################################
-function printconfig {
-
- echo
- echo "Current Configuration:"
- 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 ] ; then
- echo " CVS User Name : $cvsUserName"
- fi
- echo " Login User Name : $loginUserName"
- echo " Login Group Name : $loginGroupName"
- echo " Build type : $buildType"
- echo " Gdcm version : $gdcmVersion"
- echo " ITK version : $ITKVersion"
- echo
-
-}
-
-
-##################################################################################################
-##################################################################################################
-##################################################################################################
-##################################################################################################
-##################################################################################################
-##################################################################################################
+source scripts/LocalFunctions.sh
configureFile="scripts/CreaTools-configure.sh"
@@ -146,26 +38,22 @@ configureFile="scripts/CreaTools-configure.sh"
# default configuration parameters
OperatingSystem=`getDistrib`
corenumber=`getncore`
-generationdir=$HOME/CreatoolsGenerationDir
+generationdir=$HOME/Creatis/creaTools
installPrefixThird=
installPrefix=
docgeneration=OFF
-sourcesFrom=HTML
+sourcesFrom=GIT
-cvsUserName=
loginUserName=$USER
loginGroupName=`groups | awk '{print $1}'`
-buildType=RelWithDebug
+buildType=Release
gdcmVersion=GDCM1
ITKVersion=ITK3
export ETC_BASHRC=`getbashrc`
-
-
-
function usage {
- echo "menu.sh [options] command"
+ echo "installscript [options] command"
echo "creatools configure/compile/install script"
echo ""
echo ""
@@ -173,27 +61,35 @@ function usage {
echo ""
echo ""
echo " command:"
- echo " all : configure / compile / install"
- echo " "
- echo " config : set the configuration parameters only"
+ echo ""
+ echo " as a normal user:"
+ echo " config : set the configuration parameters only"
echo " "
- echo " 3rd : Get, Compile, Install all 3rd party library "
- echo " 3rd-base : Install basic tools (cmake, doxygen...)"
- echo " 3rd-vtk : Get, Compile, Install vtk"
- echo " 3rd-itk : Get, Compile, Install itk"
- echo " 3rd-gdcm : Get, Compile, Install gdcm"
- echo " 3rd-wx : Get, Compile, Install wx widget (for Mac Users)"
+ echo " need root password:"
+ echo " 3rd : Get, Compile, Install all 3rd party library "
+ echo " 3rd-base : Install basic tools (cmake, doxygen...)"
+ echo " 3rd-vtk : Get, Compile, Install vtk"
+ echo " 3rd-itk : Get, Compile, Install itk"
+ echo " 3rd-gdcm : Get, Compile, Install gdcm"
+ echo " 3rd-wx : Get, Compile, Install wx widget (for Mac Users)"
+ echo " 3rd-wt : Get, Compile, Install wt"
echo " "
- echo " creatools : Get Compile and Install the CreaTools"
- echo " creatools-get : Get the CreaTools"
- echo " creatools-cmp : Compile the CreaTools"
- echo " creatools-install : Install the CreaTools"
+ echo " as a normal user:"
+ echo " creatools : Get Compile and Install the CreaTools"
+ echo " creatools-get : Get the CreaTools"
+ echo " creatools-cmp : Compile the CreaTools"
+ echo " creatools-install : Install the CreaTools"
echo " "
- echo " uninstall : uninstall the creatools"
+ echo " creatools-generateBinTGZ : generation of CreaTools.tgz (binary version)"
echo " "
- echo " printconfig : print the configuration"
- echo " help : print help"
- echo " env : print some environnement variables"
+ echo " uninstall : uninstall the creatools"
+ echo " "
+ echo " printconfig : print the configuration"
+ echo " help : print help"
+ echo " env : print some environnement variables"
+ echo ""
+ echo " all : configure / compile / install"
+ echo " "
echo " "
echo " "
echo " "
@@ -204,7 +100,9 @@ function usage {
echo " -gdir
: generation directory (default $generationdir)"
echo " -instprefix : creatools install prefix"
echo " -instprefix3 : 3rd party library install prefix"
- echo " -cvs : get creatools from cvs (CREATIS user only)"
+ echo " -html : get creatools from HTML"
+ echo " -git : get creatools from git (CREATIS user only)"
+ echo " -git-read-only : get creatools from git (anonymously, no write access)"
echo " -build : build type Release, RelWithDebug or Debug (default RelWithDebug)"
echo ""
echo " experimental configure options (use at your own risk!!):"
@@ -225,7 +123,10 @@ while [ $# -ge 1 ] ; do
-instprefix) installPrefix=$2; shift 2;;
-instprefix3) installPrefixThird=$2; shift 2;;
-doc) docgeneration=ON; shift 1;;
- -cvs) sourcesFrom=CVS; cvsUserName=$2; shift 2;;
+ -html) sourcesFrom=HTML; shift 1;;
+ -git) sourcesFrom=GIT; shift 1;;
+ -git-read-only) sourcesFrom=GIT-READ-ONLY;
+shift 1;;
-gdcm2) gdcmVersion=GDCM2; shift 1;;
-itk4) ITKVersion=ITK4; shift 1;;
-build) buildType=$2; shift 2;;
@@ -238,7 +139,7 @@ if [ $# -le 0 ] ; then usage; fi
command=$1
# check that command is valid
-if [ `checkVal $command all config 3rd 3rd-base 3rd-vtk 3rd-itk 3rd-gdcm 3rd-wx creatools creatools-get creatools-cmp creatools-install uninstall printconfig help env` == "false" ] ; then
+if [ `checkVal $command all config 3rd 3rd-base 3rd-vtk 3rd-itk 3rd-gdcm 3rd-wx 3rd-wt creatools creatools-get creatools-cmp creatools-install creatools-generateBinTGZ uninstall printconfig help env` == "false" ] ; then
echo "Unrecognized command: $command"
echo ""
usage
@@ -253,7 +154,7 @@ if [ `checkVal $command config all` == false ] ; then
exit
fi
source $configureFile
- if [ ! -f $installPrefixThird/share/creatools_third_party_library_config.sh ] ; then
+ if [ ! -f $installPrefixThird/share/creatools/creatools_third_party_library_config.sh ] ; then
echo WARNING
echo "the curently used Third Party libraries are NOT in $installPrefixThird but ... in :"
grep "installPrefixThird=" $ETC_BASHRC
@@ -273,8 +174,8 @@ fi
checkDistrib $OperatingSystem
# complete default install prefix
-if [ -z "$installPrefix" ] ; then installPrefix=$generationdir/creatools_install; fi
-if [ -z "$installPrefixThird" ] ; then installPrefixThird=$generationdir/thirdparty_install; fi
+if [ -z "$installPrefix" ] ; then installPrefix=$generationdir/ci; fi
+if [ -z "$installPrefixThird" ] ; then installPrefixThird=$generationdir/tpli; fi
# check build type
if [ `checkVal $buildType Release Debug RelWithDebug` == "false" ] ; then
@@ -289,7 +190,7 @@ fi
if [ `checkVal $command config all` == true ] ; then
echo "#!/bin/bash" > $configureFile
echo >> $configureFile
- echo "#File generated by 'menu.sh'" >> $configureFile
+ echo "#File generated by 'installscript'" >> $configureFile
echo "#DO NOT edit !" >> $configureFile
echo "#(except if you *do* know what you do)" >> $configureFile
echo >> $configureFile
@@ -300,7 +201,6 @@ if [ `checkVal $command config all` == true ] ; then
echo "installPrefixThird=$installPrefixThird" >> $configureFile
echo "docgeneration=$docgeneration" >> $configureFile
echo "sourcesFrom=$sourcesFrom" >> $configureFile
- echo "cvsUserName=$cvsUserName" >> $configureFile
echo "loginUserName=$loginUserName" >> $configureFile
echo "loginGroupName=$loginGroupName" >> $configureFile
echo "buildType=$buildType" >> $configureFile
@@ -328,49 +228,56 @@ if [ `checkVal $command config printconfig` == true ] ; then
exit
fi
+################################################################################## creatools
+# download creatools
+if [ `checkVal $command all creatools creatools-get` == true ] ; then
+ bigDisplay "DOWNLOAD CREATOOLS"
+ bash scripts/CreaTools-load.sh
+fi
################################################################################## 3rd library
# install packaged dependencies as root
if [ `checkVal $command all 3rd 3rd-base` == true ] ; then
bigDisplay "INSTALL PACKAGES DEPENDENCIES"
- if [ "`whoami`" == root ] ; then
- bash scripts/ThirdParty-install-Base-Stuff.sh
- else
- # must log as root
- echo "Please enter the root passwd to add necessary packages:";
- su -c "bash scripts/ThirdParty-install-Base-Stuff.sh"
- fi
+ source scripts/CreaTools-configure.sh
+ cd scripts
+ source ThirdParty-install-Base-Stuff.sh $OperatingSystem
+ cd ..
bash scripts/ThirdParty-install.sh
fi
# vtk
if [ `checkVal $command all 3rd 3rd-vtk` == true ] ; then
bigDisplay "INSTALL VTK"
- bash scripts/ThirdParty-install-VTK.sh
+ source scripts/ThirdParty-install-VTK.sh
+ cd $scriptDirName
fi
# gdcm
if [ `checkVal $command all 3rd 3rd-gdcm` == true ] ; then
bigDisplay "INSTALL $gdcmVersion"
- bash scripts/ThirdParty-install-gdcm.sh
+ source scripts/ThirdParty-install-gdcm.sh
+ cd $scriptDirName
fi
# itk
if [ `checkVal $command all 3rd 3rd-itk` == true ] ; then
bigDisplay "INSTALL $ITKVersion"
bash scripts/ThirdParty-install-ITK.sh
+ cd $scriptDirName
fi
-## ??
-#if [ `checkVal $command all 3rd` == true ] ; then
-# bash scripts/ThirdParty-install.sh
-#fi
+# wt
+if [ `checkVal $command all 3rd 3rd-wt` == true ] ; then
+ bigDisplay "INSTALL WT"
+ source scripts/ThirdParty-install-WT.sh
+ cd $scriptDirName
+fi
# Setup the user .bashrc correctly
-if [ `checkVal $command all 3rd 3rd-vtk 3rd-itk 3rd-gdcm 3rd-wx ` == true ] ; then
+if [ `checkVal $command all 3rd 3rd-vtk 3rd-itk 3rd-gdcm 3rd-wx 3rd-wt ` == true ] ; then
bigDisplay "FINALIZE 3RD PARTY LIBRARY INSTALLATION"
bash scripts/ThirdParty-install-Finalize.sh
- source $ETC_BASHRC
if [ `checkVal $command 3rd 3rd-vtk 3rd-itk 3rd-gdcm 3rd-wx ` == true ] ; then
bigDisplay "Third Party Install Done"
bigDisplay "Please copy paste the following command or open a new terminal: source ~/.bashrc"
@@ -378,16 +285,11 @@ if [ `checkVal $command all 3rd 3rd-vtk 3rd-itk 3rd-gdcm 3rd-wx ` == true ] ; th
fi
################################################################################## creatools
-
-# download creatools
-if [ `checkVal $command all creatools creatools-get` == true ] ; then
- bigDisplay "DOWNLOAD CREATOOLS"
- bash scripts/CreaTools-load.sh
-fi
-
# compile creatools
if [ `checkVal $command all creatools creatools-cmp` == true ] ; then
bigDisplay "COMPILE CREATOOLS"
+echo "EED installscript compile creatools"
+echo $ETC_BASHRC
source $ETC_BASHRC
bash -x scripts/CreaTools-compile.sh
@@ -411,10 +313,23 @@ if [ `checkVal $command all creatools creatools-install` == true ] ; then
source $ETC_BASHRC
bash scripts/CreaTools-install.sh
source $ETC_BASHRC
+ echo " "
+ echo " "
+ echo " "
+ echo " "
+ echo "Open a new terminal to run creatools."
+ echo "(Close this window and continue....) "
+ echo " "
+ echo " "
+ ##EED read -p "Press [Enter] key to continue..."
fi
-################################################################################## uninstall
+#generate TGZ version of the bin (Creatools and ThirdParty)
+if [ `checkVal $command creatools-generateBinTGZ` == true ] ; then
+ bash scripts/CreaTools-GenerateBinTGZ.sh
+fi
+################################################################################## uninstall
if [ `checkVal $command uninstall` == true ] ; then
bigDisplay "UNINSTALL CREATOOLS"
bash scripts/CreaTools-uninstall.sh