]> SALOME platform Git repositories - tools/install.git/blob - config_files/netgen-4.5.sh
Salome HOME
Improve INSTALL wizard: move all patch files to the separate directory
[tools/install.git] / config_files / netgen-4.5.sh
1 #!/bin/sh
2
3 check_version()
4 {
5 # check existance of netgen
6 # unfortunarely we can't find anything about netgen version
7 if [ -n "$NETGENROOT" ]; then
8   return 0
9 fi
10 return 1
11 }
12
13 print_env()
14 {
15 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
16 #$DELIM ${PRODUCT_TYPE} $DELIM
17 export NETGENHOME=\${INSTALL_ROOT}/${PRODUCT}
18 ##
19 EOF
20 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
21 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
22 }
23
24 # looks for the native product and collects it's environment (used by make_env())
25 try_native(){
26 check_version
27 if [ $? -eq 0 ] ; then
28     cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
29 #$DELIM ${PRODUCT_TYPE} $DELIM
30 export NETGENHOME=\${NETGENROOT}
31 ##
32 EOF
33     make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
34     return 0
35 fi
36 return 1;
37 }
38
39 try_preinstalled(){
40 try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
41 return $?
42 }
43
44 install_source()
45 {
46 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
47 source ${INSTALL_WORK}/$SHRC
48
49 makedir ${PRODUCT_DIR}
50
51 check_jb tar xfz ${SOURCE_DIR}/netgen-4.5.tar.gz -C ${INSTALL_WORK}
52
53 # apply general patch for SALOME
54 if [ -f patches/netgen-4.5-for-SALOME.patch ] ; then
55     cp patches/netgen-4.5-for-SALOME.patch ${PRODUCT_WORK}
56     ( cd ${PRODUCT_WORK}; patch -p1 < netgen-4.5-for-SALOME.patch )
57 fi
58
59 # apply patch for 64-bit platforms
60 if test `uname -m` = "x86_64" ; then
61     if [ -f patches/netgen-4.5-lib64.patch ] ; then
62         cp patches/netgen-4.5-lib64.patch ${PRODUCT_WORK}
63         ( cd ${PRODUCT_WORK}; patch -p1 < netgen-4.5-lib64.patch )
64     fi
65 fi
66
67 # additional patching for SALOME
68 (cd ${PRODUCT_WORK}; cp ngtcltk/ngnewdelete.* libsrc/interface)
69
70 # apply patch: to make compilable on latest versions of gcc
71 (cd ${PRODUCT_WORK}/libsrc/meshing; echo -e '16s/^$/class Mesh;\nwq' | ed - meshtype.hpp > /dev/null)
72
73 # apply patch: to make compilable with CASCADE-6.1.1
74 (cd ${PRODUCT_WORK}/libsrc; sed -e "s%\(.*\)-DHAVE_LIMITS\'%\1-DHAVE_LIMITS_H%g" makefile.inc > makefile.inc.new; mv makefile.inc.new makefile.inc)
75
76 # set platform type variable
77 if test `uname -m` = "x86_64" ; then
78     export MACHINE=LINUX64
79 else
80     export MACHINE=LINUX
81 fi
82
83 # compile
84 for directory in csg general geom2d gprim interface linalg occ meshing opti stlgeom ; do
85     cd ${PRODUCT_WORK}/libsrc/${directory}
86     check_job ${PRODUCT_DIR}/MAKE.LOG make
87 done
88
89 # install
90 mkdir -p ${PRODUCT_DIR}/lib
91 cp -f ${PRODUCT_WORK}/lib/${MACHINE}/* ${PRODUCT_DIR}/lib
92 mkdir -p ${PRODUCT_DIR}/include
93 cp -f ${PRODUCT_WORK}/libsrc/interface/nglib.h ${PRODUCT_DIR}/include
94 for directory in csg general geom2d gprim linalg occ meshing opti stlgeom ; do
95     cp -f ${PRODUCT_WORK}/libsrc/${directory}/*.hpp ${PRODUCT_DIR}/include
96 done
97 cp -f ${PRODUCT_WORK}/libsrc/include/mystdlib.h ${PRODUCT_WORK}/libsrc/include/mydefs.hpp ${PRODUCT_DIR}/include
98
99 #du -sk ${PRODUCT_WORK} > ${PRODUCT_DIR}/size.log
100 cd ${PRODUCT_DIR}; rm -fr ${PRODUCT_WORK}
101 print_env
102 }
103
104 install_binary()
105 {
106 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
107 source ${INSTALL_WORK}/$SHRC
108
109 check_jb tar xfz ${SOURCE_DIR}/netgen-4.5.tar.gz -C ${INSTALL_ROOT}
110
111 print_env
112 }
113
114 export PROCEDURE=$1;
115 export INSTALL_WORK=$2;
116 export SOURCE_DIR=$3;
117 export INSTALL_ROOT=$4;
118 export PRODUCT_SEQUENCE=$5;
119 if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="netgen" ; fi
120 export PRODUCT="netgen-4.5"
121 export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
122 export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
123 source ./common.sh
124 $PROCEDURE