echo " to build SALOME module sources without GUI."
echo " By default sources are built with GUI."
echo ""
- echo "-d Delete build directories before calling configure, to enforce full"
- echo " rebuild (and reinstall if -i or -p option is used) of module."
+ echo "-d Delete build directories before calling configure, to force full"
+ echo " rebuild and reinstall of the module."
echo " Use this option carefully."
echo ""
echo "-o Build sources in optimized mode. Default is off that means"
echo "-t Performs make dev_docs step to build TUI documentation for those"
echo " modules which support this. Default is off."
echo ""
- echo "-i Performs make install step. Default is off that means only make"
- echo " step."
- echo ""
echo "-p <prefix> Define the directory where to install modules after compilation."
echo " By default the directory where compilation is performed is used."
echo ""
echo "Note: If no keys are given script just performs make step."
echo ""
echo "Example:"
- echo " ./build.csh -o -i -b KERNEL MED GEOM"
+ echo " ./build.csh -o -p /home/user/salome -b KERNEL MED GEOM"
echo ""
echo " This will make KERNEL, GEOM and MED modules: build_configure,"
echo " configure, make and install procedures will be performed for all"
is_delete=0
verbose_level=2
params=""
-b_params=""
-modules="KERNEL GUI GEOM MED SMESH VISU NETGENPLUGIN GHS3DPLUGIN BLSURFPLUGIN HexoticPLUGIN GHS3DPRLPLUGIN COMPONENT PYCALCULATOR CALCULATOR HELLO PYHELLO LIGHT SIERPINSKY RANDOMIZER YACS"
+modules="KERNEL GUI GEOM MED SMESH VISU YACS NETGENPLUGIN GHS3DPLUGIN BLSURFPLUGIN HexoticPLUGIN GHS3DPRLPLUGIN COMPONENT PYCALCULATOR CALCULATOR HELLO PYHELLO LIGHT PYLIGHT SIERPINSKY RANDOMIZER"
optim=""
-is_install=0
+is_install=1
is_tui=0
prefix=""
+def_install_dir="/INSTALL"
#########################################################
# parse parameters
#########################################################
-while getopts ":hbcwdoitv:p:" option ; do
+while getopts ":hbcwdotv:p:" option ; do
case $option in
h ) usage ;;
b ) is_build_configure=1 ; is_configure=1 ;;
w ) inst_with_gui=0 ;;
d ) is_delete=1 ;;
o ) optim="--enable-production=yes --disable-debug" ;;
- i ) is_install=1 ;;
t ) is_tui=1 ;;
v ) verbose_level=$OPTARG ;;
p ) is_install=1 ; prefix=$OPTARG ;;
# shift to have the good number of other args
shift $((OPTIND - 1))
+b_params=""
+
for arg in $@ ; do
known=0
for m in $modules ; do
if [ "$m" == "$arg" ] ; then known=1 ; break ; fi
done
- if [ $known -eq 1 ] ; then
- params="$params $arg"
- else
- b_params="$b_params $arg"
+ if [ $known -eq 0 ] ; then
echo
- echo '!!! Warning !!! Unknown module: '$arg'. Skipping.'
+ echo '!!! Warning !!! Unknown module: '$arg'.'
+ b_params="$b_params $arg"
+ else
+ params="$params $arg"
fi
done
for p in $params ; do
if [ "$p" == "$module" ] ; then found=1 ; break ; fi
done
- if [ $found -eq 1 ] ; then xparams="$xparams $module" ; fi
+ if [ $found -eq 1 ] ; then
+ xparams="$xparams $module"
+ fi
done
- modules="$xparams"
+ modules="$xparams $b_params"
elif [ "${b_params}" != "" ] ; then
- echo
- echo "Nothing to be built. Exiting."
- echo
- exit 1
+ modules="$b_params"
fi
echo
-echo ">>> The following SALOME packages will be built:"
+echo ">>> The following modules will be built:"
echo $modules
+echo
#########################################################
# set environment
if [ ! -e $env_script ] ; then
env_script=`dirname $0`/env_products.sh
fi
+if [ ! -e $env_script ] ; then
+ env_script=`dirname $0`/env.sh
+fi
if [ -e $env_script ] ; then
echo
echo ">>> Setting environment"
else
echo
echo '!!! Warning !!! Environment is not set.'
- echo 'Neither env_build.sh nor env_products.sh file is found.'
+ echo 'No environment file (env_build.sh, env_products.sh, env.sh) is found.'
echo 'Proceed with the current environment.'
fi
# define installation prefix
#########################################################
if [ "$prefix" == "" ] ; then
- prefix=${BUILD_DIR}/INSTALL
- if [ $is_install -eq 1 ] ; then
- echo
- echo '!!! Warning !!! Installation directory is not set.'
- echo "All the modules will be installed to the $prefix"
- elif [ "`echo ${modules} | grep KERNEL`" != "" ] ; then
- echo
- echo '!!! Warning !!! KERNEL module requires install step to be performed.'
- echo "For this module -i option will be forced."
- echo "The module(s) will be installed to the $prefix"
- fi
+ echo
+ echo '!!! Warning !!! Installation directory is not set.'
+ echo "All the modules will be installed to the ${BUILD_DIR}${def_install_dir}"
else
if [ "`echo $prefix | grep -E '^/'`" == "" ] ; then
prefix=${BUILD_DIR}/$prefix
module_build=${BUILD_DIR}/${module}_BUILD
if [ "${module_src}" != "" ] ; then
- add_keys=""
cd ${BUILD_DIR}
#########################################################
# check if sources directory exists
#########################################################
# call build_configure
#########################################################
+ mybuildconf_keys="${BUILDCONF_OPTS}"
if [ $inst_with_gui -eq 0 ] ; then
- add_keys="--without-gui"
+ mybuildconf_keys="${mybuildconf_keys} --without-gui"
fi
cd ${module_src}
- ./build_configure ${add_keys} >& ${LOG_DIR}/build_configure_${module}.log
+ ./build_configure ${mybuildconf_keys} >& ${LOG_DIR}/build_configure_${module}.log
#########################################################
# echo possible errors
#########################################################
#########################################################
if [ -e ${module_build} ] && [ $is_delete -eq 1 ] ; then
echo "... Removing ${module_build}"
- rm -rf ${module_build}
+ chmod -R +w ${module_build} && rm -rf ${module_build} >& /dev/null
+ if [ "$?" != "0" ] ; then
+ echo
+ echo '!!! Warning !!! Cannot remove build directory ${module_build}. Permission denied.'
+ echo
+ fi
fi
#########################################################
# creating build directory if it does not exist
#########################################################
if [ ! -e ${module_build} ] ; then
- mkdir -p ${module_build}
+ mkdir -p ${module_build} >& /dev/null
+ if [ "$?" != "0" ] ; then
+ echo
+ echo '!!! Error !!! Cannot create build directory ${module_build}. Permission denied.'
+ echo
+ continue
+ fi
fi
cd ${module_build}
#########################################################
# number); default is a build directory
#########################################################
vx=""
- cfg_file=configure.ac
- if [ ! -e ${module_src}/${cfg_file} ] ; then
- cfg_file=configure.in.base
- fi
- if [ -e ${module_src}/${cfg_file} ] ; then
- vx=`grep -e "^VERSION=" ${module_src}/${cfg_file} | awk -F= '{ if (NF>1) print $NF; }' | tr -d '[:space:]'`
+ if [ -e ${module_src}/configure.ac ] ; then
+ vx=`grep -e "^AC_INIT" ${module_src}/configure.ac | sed -e "s%.*\[\([[:digit:].]*\)\].*%\1%g"`
+ elif [ -e ${module_src}/configure.in.base ] ; then
+ vx=`grep -e "^VERSION=" ${module_src}/configure.in.base | awk -F= '{ if (NF>1) print $NF; }' | tr -d '[:space:]'`
if [ "$vx" == "" ] ; then
- vx=`grep -e "^AC_INIT" ${module_src}/${cfg_file} | sed -e "s%.*\[\([[:digit:].]*\)\].*%\1%g"`
+ vx=`grep -e "^AC_INIT" ${module_src}/configure.in.base | sed -e "s%.*\[\([[:digit:].]*\)\].*%\1%g"`
fi
fi
- px=${BUILD_DIR}/${module}
- if [ "$prefix" != "" ] ; then
- px=$prefix/${module}
- fi
if [ "$vx" != "" ] ; then
- px="$px"_"$vx"
+ vx="_$vx"
+ fi
+ if [ "$prefix" == "" ] ; then
+ #module_root_dir=`printenv ${module}_ROOT_DIR`
+ #if [ "$module_root_dir" != "" ] ; then
+ # px=$module_root_dir
+ #else
+ px=${BUILD_DIR}${def_install_dir}/${module}${vx}
+ #fi
+ else
+ px=$prefix/${module}${vx}
fi
#########################################################
# perform configure if -c flag is given or if
echo '!!! Warning !!! Can not find configure script in '${module_src}'.'
echo
else
+ myconf_keys="${CONF_OPTS}"
if [ $inst_with_gui -eq 0 ] ; then
- add_keys="--without-gui"
+ myconf_keys="${myconf_keys} --without-gui"
fi
- if [ "${module}" == "MED" ] && [ "${METISDIR}" != "" ] && [ "${SCOTCHDIR}" != "" ] ; then
- add_keys="--enable-splitter=yes --with-metis=${METISDIR} --with-scotch=${SCOTCHDIR}"
+ if [ "${module}" == "MED" ] && [ "${METISDIR}" != "" ] && [ "${SCOTCHDIR}" != "" ] ; then
+ myconf_keys="${myconf_keys} --enable-splitter=yes --with-metis=${METISDIR} --with-scotch=${SCOTCHDIR}"
fi
if [ "${module}" == "NETGENPLUGIN" ] && [ "$NETGENHOME" != "" ] ; then
- add_keys="--with-netgen=${NETGENHOME}"
+ myconf_keys="${myconf_keys} --with-netgen=${NETGENHOME}"
fi
- ${module_src}/configure --prefix=$px ${optim} ${add_keys} >& ${LOG_DIR}/configure_${module}.log
+ ${module_src}/configure --prefix=$px ${optim} ${myconf_keys} >& ${LOG_DIR}/configure_${module}.log
#########################################################
# echo possible errors
#########################################################
# if make step is successful set the ${module}_ROOT_DIR
# environment variable
#########################################################
- if [ $sts -eq 0 ] ; then
- export ${module}_ROOT_DIR=${module_build}
- fi
+ #if [ $sts -eq 0 ] ; then
+ # export ${module}_ROOT_DIR=${module_build}
+ #fi
#########################################################
# print make errors
#########################################################
#########################################################
if [ -e $px ] && [ $is_delete -eq 1 ] ; then
echo "... Removing $px"
- rm -rf $px
+ rm -rf $px >& /dev/null
+ if [ "$?" != "0" ] ; then
+ echo
+ echo '!!! Warning !!! Cannot remove install directory ${px}. Permission denied.'
+ echo
+ fi
fi
echo "... Performing make install"
make install >& ${LOG_DIR}/make_install_${module}.log