Salome HOME
Update for 5.1.2
[tools/install.git] / config_files / build.sh
index b0adfa571971a9d772b7c253fb4eedb17bd46a2a..178cae277aad0d73ae258d1c8d5af0ba3838b43c 100755 (executable)
@@ -6,7 +6,7 @@
 #  Author    : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
 #  Project   : SALOME
 #  Module    : Installation Wizard
-#  Copyright : 2002-2006 CEA
+#  Copyright : 2002-2008 CEA
 #
 #  This script is the part of the SALOME installation procedure.
 #
@@ -25,7 +25,7 @@ usage(){
     echo "            make install commands"
     echo ""
     echo "Usage:"
-    echo "            build.csh [ <option> ] ... [ <module> [ <module> ... ] ]"
+    echo "            build.sh [ <option> ] ... [ <module> [ <module> ... ] ]"
     echo ""
     echo "<module>    Modules to build, separated by space(s)."
     echo "            If no modules are given - all SALOME modules are assumed."
@@ -38,6 +38,10 @@ usage(){
     echo ""
     echo "-c          Perform configure command for all given modules. Default is off."
     echo ""
+    echo "-w          Add --without-gui key to build_configure and configure commands"
+    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 "            Use this option carefully."
@@ -79,11 +83,12 @@ usage(){
 
 is_build_configure=0
 is_configure=0
+inst_with_gui=1
 is_delete=0
 verbose_level=2
 params=""
 b_params=""
-modules="KERNEL GUI GEOM MED SMESH VISU SUPERV NETGENPLUGIN GHS3DPLUGIN COMPONENT PYCALCULATOR CALCULATOR HELLO PYHELLO LIGHT"
+modules="KERNEL GUI GEOM MED SMESH VISU NETGENPLUGIN GHS3DPLUGIN BLSURFPLUGIN HexoticPLUGIN GHS3DPRLPLUGIN COMPONENT PYCALCULATOR CALCULATOR HELLO PYHELLO LIGHT PYLIGHT SIERPINSKY RANDOMIZER YACS"
 optim=""
 is_install=0
 is_tui=0
@@ -92,11 +97,12 @@ prefix=""
 #########################################################
 # parse parameters
 #########################################################
-while getopts ":hbcdoitv:p:" option ; do
+while getopts ":hbcwdoitv:p:" option ; do
     case $option in
         h ) usage ;;
         b ) is_build_configure=1 ; is_configure=1 ;;
         c ) is_configure=1 ;;
+        w ) inst_with_gui=0 ;;
         d ) is_delete=1 ;;
         o ) optim="--enable-production=yes --disable-debug" ;;
         i ) is_install=1 ;;
@@ -249,13 +255,16 @@ for module in ${modules}; do
                #########################################################
                 # call build_configure
                #########################################################
+               if [ $inst_with_gui -eq 0 ] ; then
+                   add_keys="--without-gui"
+               fi
                cd ${module_src}
-               ./build_configure >& ${LOG_DIR}/build_configure_${module}.log
+               ./build_configure ${add_keys} >& ${LOG_DIR}/build_configure_${module}.log
                #########################################################
                # echo possible errors
                #########################################################
                if [ $verbose_level -gt 0 ] ; then
-                   cat ${LOG_DIR}/build_configure_${module}.log | grep -E "(failed|: error:)" > /dev/stderr
+                   cat ${LOG_DIR}/build_configure_${module}.log | grep -E "(failed|: error:)" >&2
                fi
            fi
        fi
@@ -303,6 +312,9 @@ for module in ${modules}; do
        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 [ "$vx" == "" ] ; then
+               vx=`grep -e "^AC_INIT" ${module_src}/${cfg_file} | sed -e "s%.*\[\([[:digit:].]*\)\].*%\1%g"`
+           fi
        fi
        px=${BUILD_DIR}/${module}
        if [ "$prefix" != "" ] ; then
@@ -325,7 +337,13 @@ for module in ${modules}; do
                echo '!!! Warning !!! Can not find configure script in '${module_src}'.'
                echo
            else
-               if [  "${module}" == "NETGENPLUGIN" ] && [ "$NETGENHOME" != "" ] ; then
+               if [ $inst_with_gui -eq 0 ] ; then
+                   add_keys="--without-gui"
+               fi
+               if [  "${module}" == "MED" ] && [ "${METISDIR}" != "" ] && [ "${SCOTCHDIR}" != "" ] ; then
+                   add_keys="--enable-splitter=yes --with-metis=${METISDIR} --with-scotch=${SCOTCHDIR}"
+               fi
+               if [ "${module}" == "NETGENPLUGIN" ] && [ "$NETGENHOME" != "" ] ; then
                    add_keys="--with-netgen=${NETGENHOME}"
                fi
                ${module_src}/configure --prefix=$px ${optim} ${add_keys} >& ${LOG_DIR}/configure_${module}.log
@@ -333,10 +351,10 @@ for module in ${modules}; do
                # echo possible errors
                #########################################################
                if [ $verbose_level -gt 0 ] ; then
-                   cat ${LOG_DIR}/configure_${module}.log | grep ": error:" > /dev/stderr
+                   cat ${LOG_DIR}/configure_${module}.log | grep ": error:" >&2
                fi
                if [ $verbose_level -gt 1 ] ; then
-                   cat ${LOG_DIR}/configure_${module}.log | grep ": WARNING:" > /dev/stderr
+                   cat ${LOG_DIR}/configure_${module}.log | grep ": WARNING:" >&2
                fi
            fi
        fi
@@ -360,7 +378,7 @@ for module in ${modules}; do
         #########################################################
         # print make errors
         #########################################################
-       cat ${LOG_DIR}/make_${module}.log | grep '[*][*][*]' > /dev/stderr
+       cat ${LOG_DIR}/make_${module}.log | grep -Ei '[*][*][*].*error' >&2
         #########################################################
         # print compiler errors and warnings
         # Note: here awk is used to concatenate together several lines of single
@@ -369,10 +387,10 @@ for module in ${modules}; do
         #########################################################
        if [ $verbose_level -gt 0 ] ; then
            ###cat ${LOG_DIR}/make_${module}.log | grep ": error"
-           cat ${LOG_DIR}/make_${module}.log | awk 'substr($0,0,1)!=" " {print ""} {printf $0} END {print ""}' | grep "${module_src}/[A-Za-z_0-9./]*:" | sed s@"^${module_src}/src/"@@ > /dev/stderr
+           cat ${LOG_DIR}/make_${module}.log | awk 'substr($0,0,1)!=" " {print ""} {print $0} END {print ""}' | grep "${module_src}/[A-Za-z_0-9./]*:" | sed s@"^${module_src}/src/"@@ >&2
        fi
        if [ $verbose_level -gt 1 ] ; then
-           cat ${LOG_DIR}/make_${module}.log | awk 'substr($0,0,1)!=" " {print ""} {printf $0} END {print ""}' | grep ": warning" | sed s@"^${module_src}/src/"@@ > /dev/stderr
+           cat ${LOG_DIR}/make_${module}.log | awk 'substr($0,0,1)!=" " {print ""} {print $0} END {print ""}' | grep -E ": warning|* Warning" | sed s@"^${module_src}/src/"@@ >&2
        fi
         #########################################################
         # perform make dev_docs step if -t flag is given
@@ -383,7 +401,7 @@ for module in ${modules}; do
            if [ "$dd" != "" ] ; then
                echo "... Performing make dev_docs"
                make dev_docs >& ${LOG_DIR}/make_dev_docs_${module}.log
-               cat ${LOG_DIR}/make_dev_docs_${module}.log | grep '[*][*][*]' > /dev/stderr
+               cat ${LOG_DIR}/make_dev_docs_${module}.log | grep '[*][*][*]' >&2
            fi
        fi
        cd ${module_build}