updated on Sat Jan 14 00:11:12 UTC 2012
[aur-mirror.git] / aster-mpi / PKGBUILD
blob3b022cf3b5362e5f99c789501c2478e6ae34127d
1 # Contributor: mickele <mimocciola@yahoo.com>
2 pkgname=aster-mpi
3 _pkgnamesrc=aster
4 pkgver=9.4.0
5 pkgrel=2
6 pkgdesc="Code-Aster provides a complete serie of analysis and multiphysics modelling methods. This version uses MPI thanks to mumps library."
7 url="http://www.code-aster.org/index.php"
8 license="GPL"
9 depends=('python' 'python-numeric' 'lapack' 'tcl' 'tk' 'scotch' 'hdf5>=1.8.0' 'med>=2.3.5' 'metis-edf>=4.1' 'astk>=1.7.1-4' 'mpich2' 'mumps')
10 makedepends=('sed' 'coreutils' 'patch')
11 optdepends=('homard>=9.5: to refine and de-refine meshes')
12 conflicts=()
13 replaces=()
14 backup=()
15 arch=('i686' 'x86_64')
16 install=(${pkgname}.install)
17 source=(http://www.code-aster.org/V2/UPLOAD/DOC/Telechargement/${_pkgnamesrc}-full-src-${pkgver}-2.noarch.tar.gz ${_pkgnamesrc}-${pkgver}.diff)
18 options=('!strip')
20 _pkgvershort=${pkgver:0:3}
21 _installdir=/opt/aster
22 _astkdir=${_installdir}/ASTK 
23 _mpich2dir=/opt/mpich2
24 _pythonver=2.6
25 # Change this var pointing to your favorite editor
26 _editor=/usr/bin/emacs
28 build() {
29   msg "  To create $pkgname follow these instructions:"
30   msg "    - as root create a file named "/etc/mpd.conf" containing following lines"
31   msg "          MPD_SECRETWORD=<your secret MPD_PASSWORD>"
32   msg "          MPD_USE_ROOT_MPD=1"
33   msg "    - change permissions of /etc/mpd.conf using following command"
34   msg "          $ sudo chmod 600 /etc/mpd.conf"
35   msg "    - verify that root can connect to sshd; usually you have to uncomment line"
36   msg "      <# PermitRootLogin yes> in file /etc/sshd_config"
37   msg "      from"
38   msg "          # PermitRootLogin yes"
39   msg "      to"
40   msg "          PermitRootLogin yes"
41   msg "      after having buillt ${pkgname} you can restore this option"
42   msg "    - run mpd ring using command"
43   msg "          $ sudo mpdboot"
44   msg "    - in this PKGBUILD, comment line <return 1> after this messages"
45   msg "      from"
46   msg "          return 1"
47   msg "      to"
48   msg "          # return 1"
49   msg "    - create package using command"
50   msg "          $ sudo makepkg --asroot"
51   msg "  If something goes wrong send a mail to mimocciola@yahoo.com"
52   return 1
53     
54   # We need a little change in aster
55   cd ${srcdir}
56   bsdtar -xf ${srcdir}/${_pkgnamesrc}-full-src-${pkgver}/SRC/${_pkgnamesrc}-src-${pkgver}-1.noarch.tar.gz
57   rm -rf ${srcdir}/$pkgname-full-src-${pkgver}/SRC/${_pkgnamesrc}-src-${pkgver}-1.noarch.tar.gz
58   mv STA${_pkgvershort} PAR${_pkgvershort} 
59   bsdtar -czf ${srcdir}/${_pkgnamesrc}-full-src-${pkgver}/SRC/${_pkgnamesrc}-src-${pkgver}-1.noarch.tar.gz PAR${_pkgvershort}
60   rm -rf ${srcdir}/PAR${_pkgvershort}
62   cd ${srcdir}/${_pkgnamesrc}-full-src-${pkgver}
64   msg "-- Modify source code and sets variables --"
66   patch -Np1 -i ${srcdir}/${_pkgnamesrc}-${pkgver}.diff
68   # Modify setup.py: No question to stop compilation
69   sed -e "s|should_continue()|#should_continue()|g" \
70       -i setup.py
72   sed -e "s|rep = should_continue()|#rep = should_continue()|" \
73       -i check_compilers.py
75   # Modify setup.cfg
76   sed -e "s|/opt/aster|${pkgdir}$_installdir|" \
77       -e "s|PREFER_SHARED_LIBS=False|PREFER_SHARED_LIBS=True|" \
78       -e "s|PREFER_COMPILER = 'Intel'|PREFER_COMPILER = 'GNU'|" \
79       -e "s|_install_omniORB   = True|#_install_omniORB   = True|" \
80       -e "s|_install_omniORBpy = True|#_install_omniORBpy = True|" \
81       -e "s|_install_pylotage  = True|#_install_pylotage  = True|" \
82       -i setup.cfg
84   echo "_install_hdf5 = False" >> setup.cfg
85   echo "HOME_HDF='/usr'" >> setup.cfg
86   echo "_install_med = False" >> setup.cfg
87   echo "HOME_MED='/usr'" >> setup.cfg
88   echo "_install_tcl = False" >> setup.cfg
89   echo "_install_tk  = False" >> setup.cfg
90   echo "HOME_TCL_TK='/usr'" >> setup.cfg
91   echo "_install_Numeric = False" >> setup.cfg
92   echo "_install_gmsh = False" >> setup.cfg
93   echo "_install_gmsh2 = False" >> setup.cfg
94   echo "_install_gibi = False" >> setup.cfg
95   echo "_install_grace = False" >> setup.cfg
96   echo "XMGRACE = 'xmgrace'" >> setup.cfg
97   echo "_install_homard = False" >> setup.cfg
98   echo "_install_Pmw = False" >> setup.cfg
99   echo "_install_eficas = False" >> setup.cfg
100   echo "_install_astk = False" >> setup.cfg
101   echo "_install_astk_serv = False" >> setup.cfg
102   echo "_install_metis = False" >> setup.cfg
103   echo "HOME_METIS='/opt/metis-edf'" >> setup.cfg
104   echo "_install_omniORB = False" >> setup.cfg
105   echo "_install_omniORBpy = False" >> setup.cfg
106   echo "_install_pylotage = False" >> setup.cfg
107   echo "_install_crpcrs = False" >> setup.cfg
108   echo "_install_aster_Linux = False" >> setup.cfg
109   echo "_install_scotch  = False" >> setup.cfg
110   echo "HOME_SCOTCH = '/usr'" >> setup.cfg
111   echo "HOME_ZMAT = ''" >> setup.cfg
112   echo "HOME_MPI = '${_mpich2dir}'" >> setup.cfg
113   echo "_install_mumps = False" >> setup.cfg
114   echo "HOME_MUMPS = '/usr'" >> setup.cfg
115   echo "MUMPSLIB = '-ldmumps -lzmumps -lmumps_common -lesmumps -lfax -lsymbol -ldof -lorder -lgraph -lscotch -lscotcherr -lcommon -lpord -lscalapack -llapack -lblacs -lblacsf77 -lblacs -lmetis -L${_mpich2dir}/lib -lmpich'" >> setup.cfg
116   mkdir -p ${pkgdir}${_installdir}/PAR${_pkgvershort}/include_mumps
117   for _FILE in cmumps_root.h cmumps_struc.h dmumps_root.h dmumps_struc.h smumps_root.h smumps_struc.h zmumps_root.h zmumps_struc.h
118   do
119     sed -e "s|INTEGER |INTEGER*4 |g" -e "s|INTEGER,|INTEGER*4,|g" < /usr/include/${_FILE} > ${pkgdir}${_installdir}/PAR${_pkgvershort}/include_mumps/${_FILE}
120   done
121   echo "INCLUDE_MUMPS='${pkgdir}${_installdir}/PAR${_pkgvershort}/include_mumps'" >> setup.cfg
122   echo "BLASLIB='/usr'" >> setup.cfg
123   echo "LAPACKLIB='/usr'" >> setup.cfg
124   echo "GZIP='/bin/gzip'" >> setup.cfg
125   echo "SHELL_EXECUTION='/bin/sh'" >> setup.cfg
126   echo "EDITOR='$_editor'" >> setup.cfg
128   echo "CC='${_mpich2dir}/bin/mpicc'" >> setup.cfg
129   echo "F77='${_mpich2dir}/bin/mpif77'" >> setup.cfg
130   echo "F90='${_mpich2dir}/bin/mpif90'" >> setup.cfg
131   echo "CXX='${_mpich2dir}/bin/mpicxx'" >> setup.cfg
132   echo "LD='${_mpich2dir}/bin/mpicc'" >> setup.cfg
134   echo "LDFLAGS='-lstdc++ $LDFLAGS'" >> setup.cfg
135   if [ "$CARCH" = "x86_64" ]; then
136     echo "FFLAGS='-ffixed-line-length-0 -fdefault-double-8 -fdefault-integer-8 -fdefault-real-8 $FFLAGS'" >> setup.cfg
137     echo "FFLAGS_DBG='-g -ffixed-line-length-0 -fdefault-double-8 -fdefault-integer-8 -fdefault-real-8 $FFLAGS'" >> setup.cfg
138     echo "F90FLAGS='-ffixed-line-length-0 -x f77-cpp-input -fdefault-double-8 -fdefault-integer-8 -fdefault-real-8 -I/usr/include -I${_mpich2dir}/include $FFLAGS'" >> setup.cfg
139     echo "F90FLAGS_DBG='-g -ffixed-line-length-0 -x f77-cpp-input -fdefault-double-8 -fdefault-integer-8 -fdefault-real-8 -I/usr/include -I${_mpich2dir}/include $FFLAGS'" >> setup.cfg
140   else # i686
141     echo "FFLAGS='-ffixed-line-length-0  $FFLAGS'" >> setup.cfg
142     echo "FFLAGS_DBG='-g -ffixed-line-length-0 $FFLAGS'" >> setup.cfg
143     echo "F90FLAGS='-xf77-cpp-input -ffixed-line-length-0 -I/usr/include -I${_mpich2dir}/include $FFLAGS'" >> setup.cfg
144     echo "F90FLAGS_DBG='-g -xf77-cpp-input -ffixed-line-length-0 -I/usr/include -I${_mpich2dir}/include $FFLAGS'" >> setup.cfg
145   fi
146   echo "CFLAGS='-fno-stack-protector -DH5_USE_16_API $CFLAGS'" >> setup.cfg
147   echo "CFLAGS_DBG='-g -fno-stack-protector -DH5_USE_16_API $CFLAGS'" >> setup.cfg
148   echo "CPPFLAGS='-DH5_USE_16_API $CXXFLAGS'" >> setup.cfg
149   echo "CXXFLAGS='-DH5_USE_16_API $CXXFLAGS'" >> setup.cfg
150   echo "MATH_LIST = ['blas', 'lapack', 'gfortran']">> setup.cfg
152   sed -e "s|STA|PAR|" \
153       -i setup.py
154   sed -e "s|STA|PAR|" \
155       -i products.py
157   /usr/bin/python /usr/lib/python$_pythonver/compileall.py ./
158   /usr/bin/python -O /usr/lib/python$_pythonver/compileall.py ./
160   mkdir -p ${pkgdir}/${_astkdir}
161   cp -rf ${_astkdir}/* ${pkgdir}/${_astkdir}
162   cp ${_astkdir}/../aster-mpihosts ${pkgdir}${_astkdir}/../
163   for _FILE in `grep -R -l "$_installdir" ${pkgdir}/${_astkdir}/*` ${pkgdir}${_astkdir}/../mpi_hostfile
164   do
165         sed -e "s|$_installdir|$pkgdir$_installdir|g" \
166             -i ${_FILE}
167   done
168   for _DIR in bin lib unittest
169   do
170     python /usr/lib/python${_pythonver}/compileall.py -f ${pkgdir}${_astkdir}/ASTK_SERV/${_DIR}
171     python -O /usr/lib/python${_pythonver}/compileall.py -f ${pkgdir}${_astkdir}/ASTK_SERV/${_DIR}
172   done
174   msg "--- Builds Code_Ater ---"
176   python setup.pyo --aster_root=${pkgdir}$_installdir install aster
178   chmod -x ${pkgdir}$_installdir/PAR$_pkgvershort/materiau/A42_REF_A.NOMI
180   echo "HDF5_DISABLE_VERSION_CHECK=1" >> ${pkgdir}$_installdir/PAR$_pkgvershort/profile.sh
182   for _FILE in astout.export forma01a.export
183   do
184     sed -e "s|${pkgdir}||g" \
185         -e 's|P mode astout|P mode interactif|' \
186         -e 's|P mode forma01a|P mode interactif|' \
187         -i ${pkgdir}$_installdir/PAR${_pkgvershort}/${_FILE}
188   done
189   for _FILE in Makefile config.txt
190   do
191     sed -e "s|${pkgdir}||g" \
192         -i ${pkgdir}${_installdir}/PAR${_pkgvershort}/${_FILE}
193   done
194   sed -e "s|cat ./fort.15 ./ficode|cat ./ficode|"       \
195       -i ${pkgdir}$_installdir/PAR$_pkgvershort/bibpyt/Execution/E_SUPERV.py
197   touch ${pkgdir}$_installdir/PAR$_pkgvershort/etude/forma01a.17
199   rm -rf ${pkgdir}${_installdir}/.postinst
200   rm -rf ${pkgdir}${_astkdir}
201   rm -rf ${pkgdir}${_installdir}/aster-mpihosts
203   for _FILE in bibpyt commande
204   do
205     python /usr/lib/python$_pythonver/compileall.py -f ${pkgdir}${_installdir}/PAR${_pkgvershort}/${_FILE}
206     python -O /usr/lib/python$_pythonver/compileall.py -f ${pkgdir}${_installdir}/PAR${_pkgvershort}/${_FILE}
207   done 
209   for _FILE in `find $pkgdir/ -name "*.o"`
210   do
211     rm -f ${_FILE}
212   done
213   # Removes files with wrong permission
214   rm -rf /tmp/astk_*
216 md5sums=('d28a1aee23413239166e77d4e934395a'
217          '9859a21a710d006009d1491dc6b15316')