]> SALOME platform Git repositories - tools/install.git/blob - config_files/gcc.sh
Salome HOME
Add dependency of ParaView on freetype and libxml2
[tools/install.git] / config_files / gcc.sh
1 #!/bin/bash -noprofile
2
3 ####################################################################################
4 #  File      : gcc.sh
5 #  Created   : Thu May 22 13:42:04 2014
6 #  Author    : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
7 #  Project   : SALOME
8 #  Module    : Installation Wizard
9 #  Copyright : 2002-2014 CEA
10 #
11 #  This script is the part of the SALOME installation procedure.
12 #
13 ####################################################################################
14
15 # minimal supported version
16
17 GCC_MIN_VERSION=4.2.0
18
19 check_version()
20 {
21     return 0
22 }
23
24 print_env_bin()
25 {
26     # check gcc available alternatives, to use version > GCC_MIN_VERSION if possible
27     local gcc_min=`echo ${GCC_MIN_VERSION} | awk -F. '{a1=0;a2=0;a3=0;if(NF>0)a1=$1;if(NF>1)a2=$2;if(NF>2)a3=$3;printf("%02d%02d%02d",a1,a2,a3);}'`
28     local gcc_ver=`gcc -dumpversion | awk -F. '{a1=0;a2=0;a3=0;if(NF>0)a1=$1;if(NF>1)a2=$2;if(NF>2)a3=$3;printf("%02d%02d%02d",a1,a2,a3);}'`
29     local gcc_found
30     local gxx_found
31     local fc_found
32     if [ ${gcc_ver} -le ${gcc_min} ] ; then
33         # search gcc
34         local wheregcc=$(dirname `which gcc`)
35         local all_gcc=$(find ${wheregcc}/gcc*)
36         local gcc_alt
37         local gcc_max=0
38         for gcc_alt in ${all_gcc} XXX ; do
39             if [ ${gcc_alt} = "XXX" ] ; then continue ; fi
40             gcc_ver=`${gcc_alt} -dumpversion 2>/dev/null | awk -F. '{a1=0;a2=0;a3=0;if(NF>0)a1=$1;if(NF>1)a2=$2;if(NF>2)a3=$3;printf("%02d%02d%02d",a1,a2,a3);}'`
41             if [ "${gcc_ver}" = "" ] ; then continue ; fi
42             if [ ${gcc_ver} -gt ${gcc_min} ] && [ ${gcc_ver} -gt ${gcc_max} ] ; then
43                 gcc_max=${gcc_ver}
44                 gcc_found=${gcc_alt}
45                 gxx_found=`echo ${gcc_found} | sed -e "s%gcc%g++%"`
46                 test -e ${gxx_found} || gxx_found=
47                 fc_found=`echo ${gcc_found} | sed -e "s%gcc%gfortran%"`
48                 test -e ${fc_found} || fc_found=
49             fi
50         done
51     fi
52     if [ "${gcc_found}" != "" ] && [ "${gxx_found}" != "" ] && [ "${fc_found}" != "" ] ; then
53         cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
54 #${DELIM} ${PRODUCT_TYPE} ${DELIM}
55 export CC=${gcc_found}
56 export CXX=${gxx_found}
57 export FC=${fc_found}
58 ##
59 EOF
60     fi
61     (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
62     make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
63 }
64
65 print_env_src()
66 {
67     return 0
68 }
69
70 # looks for the native product and collects it's environment (used by make_env())
71 try_native()
72 {
73     make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
74     return 0
75 }
76
77 install_source()
78 {
79     try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}                                                                                                                         
80 }
81
82 install_source_and_build()
83 {
84     install_source
85 }
86
87 install_binary()
88 {
89     try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}                                                                                                                         
90 }
91
92 try_preinstalled()
93 {
94     try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}                                                                                                                         
95 }
96
97 export PROCEDURE=$1;
98 export INSTALL_WORK=$2;
99 export SOURCE_DIR=$3;
100 export INST_ROOT=$4;
101 export PRODUCT_SEQUENCE=$5;
102 export PRODUCT_TYPE=$6;
103 export INSTALL_PRODUCTS=$7;
104 export PRODUCT="gcc"
105 export PRODUCT_DIR=${INST_ROOT}/${PRODUCT}
106 export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
107 source ./common.sh
108 ${PROCEDURE}