Salome HOME
New version of doxygen (1.4.6) is introduced
[tools/install.git] / config_files / doxygen-1.4.6.sh
1 #!/bin/sh
2
3 check_version()
4 {
5 check_lib_version doxygen $PATH
6 if [ "$?" -ne "0" ]; then
7    return 1
8 fi
9 ver=`doxygen --version`
10 maj_ver=`echo $ver | awk -F. '{if(NF>0) print $1; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
11 min_ver=`echo $ver | awk -F. '{if(NF>1) print $2; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
12 rel_ver=`echo $ver | awk -F. '{if(NF>2) print $3; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
13 let ver=$maj_ver*10000+$min_ver*100+$rel_ver
14 if [ $ver -eq 10406 ] ; then
15     return 0
16 fi
17 return 1
18 }
19
20 print_env()
21 {
22 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
23 #$DELIM ${PRODUCT_TYPE} $DELIM
24 export PATH=\${INSTALL_ROOT}/${PRODUCT}/bin:\${PATH}
25 ##
26 EOF
27 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
28 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
29 }
30
31 # looks for the native product and collects it's environment (used by make_env())
32 # we need version 1.4.4 or newer
33 try_native(){
34 doxyhome="`find_in_path doxygen ${PATH}:/usr/bin`"
35 if [ -n "${doxyhome}" ] ; then
36     ver=`doxygen --version`
37     maj_ver=`echo $ver | awk -F. '{if(NF>0) print $1; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
38     min_ver=`echo $ver | awk -F. '{if(NF>1) print $2; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
39     rel_ver=`echo $ver | awk -F. '{if(NF>2) print $3; else print 0}' | sed -e 's/^\([0-9]*\).*$/\1/'`
40     let ver=$maj_ver*10000+$min_ver*100+$rel_ver
41     if [ $ver -ge 10404 ] ; then
42         tmp="${doxyhome} ${doxyhome} \${PATH} ${PATH}";
43         path=`sort_path ${tmp}`
44         cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
45 #$DELIM ${PRODUCT_TYPE} $DELIM
46 export PATH=${path}
47 ##
48 EOF
49         make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
50         return 0
51     fi
52 fi
53 return 1;
54 }
55
56 try_preinstalled(){
57 try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
58 return $?
59 }
60
61 install_source()
62 {
63 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
64 source ${INSTALL_WORK}/$SHRC
65
66 check_jb tar xfz ${SOURCE_DIR}/doxygen-1.4.6.tar.gz -C ${INSTALL_WORK}
67
68 cd ${PRODUCT_WORK}
69 makedir ${PRODUCT_DIR}
70 # vsr: fix a bug on Mandrake-10.1: wrong qt library reference
71 sed -e "s/-lqt$/-lqt-mt/g" ./tmake/lib/linux-g++/tmake.conf > ./tmake/lib/linux-g++/tmake.conf.new
72 mv ./tmake/lib/linux-g++/tmake.conf.new ./tmake/lib/linux-g++/tmake.conf
73 # vsr: fix bug - configure fails on Red Hat 9 because of incorrect autodetect check for install tool
74 # so it is necessary to put it directly
75 f_install="--install "`which install`
76 check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --with-doxywizard --prefix ${PRODUCT_DIR} $f_install
77 GCC=`which gcc`
78 cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
79 used gcc=$GCC
80 EOF
81 check_job ${PRODUCT_DIR}/MAKE.LOG make
82 check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
83
84 which epstopdf >/dev/null 2>&1;  ISFOUND=$?
85 if [ ${ISFOUND} -eq 0 ] ; then  which dot >/dev/null 2>&1; ISFOUND=$?; fi
86 if [ ${ISFOUND} -eq 0 ] ; then  which makeindex >/dev/null 2>&1; ISFOUND=$?; fi
87 if [ ${ISFOUND} -eq 0 ] ; then  which latex >/dev/null 2>&1; ISFOUND=$?; fi
88 #if [ ${ISFOUND} -eq 0 ] ; then  which latex2html >/dev/null 2>&1; ISFOUND=$?; fi
89 if [ ${ISFOUND} -eq 0 ] ; then  which pdflatex >/dev/null 2>&1; ISFOUND=$?; fi
90 if [ ${ISFOUND} -eq 0 ] ; then  which pslatex >/dev/null 2>&1; ISFOUND=$?; fi
91 #if [ ${ISFOUND} -eq 0 ] ; then  which pstoimg >/dev/null 2>&1; ISFOUND=$?; fi
92 if [ ${ISFOUND} -eq 0 ] ; then
93     check_job ${PRODUCT_DIR}/MAKEDOCS.LOG make docs
94     check_job ${PRODUCT_DIR}/MAKEINSTALLDOCS.LOG make install_docs
95 else
96     cat >> ${PRODUCT_DIR}/MAKEDOCS.LOG <<EOF
97 Can't find \"epstopdf\", \"latex\" or another documentation tool on the computer.
98 doxygen documentation can not be built!
99 SALOME DOCUMENTATION MIGHT NOT BE BUILT ALSO!
100 EOF
101 fi
102
103 #du -sk ${PRODUCT_WORK} > ${PRODUCT_DIR}/size.log
104 cd ${PRODUCT_DIR}; rm -fr ${PRODUCT_WORK}
105 print_env
106 }
107
108 install_binary()
109 {
110 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
111 source ${INSTALL_WORK}/$SHRC
112
113 check_jb tar xfz ${SOURCE_DIR}/doxygen-1.4.6.tar.gz -C ${INSTALL_ROOT}
114
115 print_env
116 }
117
118 export PROCEDURE=$1;
119 export INSTALL_WORK=$2;
120 export SOURCE_DIR=$3;
121 export INSTALL_ROOT=$4;
122 export PRODUCT_SEQUENCE=$5;
123 if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="doxygen" ; fi
124 export PRODUCT="doxygen-1.4.6"
125 export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
126 export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
127 source ./common.sh
128 $PROCEDURE