From 6fb2f4e8860e2ccdf204e734333e11c026dbd066 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Honza=20Mach=C3=A1=C4=8Dek?= Date: Thu, 19 Sep 2013 09:56:37 +0200 Subject: sci-physics/openm updated to 3.7.6, corrected linking with fortran code using gcc. Package-Manager: portage-2.2.1 --- sci-physics/openmx/ChangeLog | 6 ++ sci-physics/openmx/Manifest | 2 +- sci-physics/openmx/openmx-3.7.4.ebuild | 163 ------------------------------- sci-physics/openmx/openmx-3.7.6.ebuild | 171 +++++++++++++++++++++++++++++++++ 4 files changed, 178 insertions(+), 164 deletions(-) delete mode 100644 sci-physics/openmx/openmx-3.7.4.ebuild create mode 100644 sci-physics/openmx/openmx-3.7.6.ebuild (limited to 'sci-physics/openmx') diff --git a/sci-physics/openmx/ChangeLog b/sci-physics/openmx/ChangeLog index b38e7280f..e0852b2c5 100644 --- a/sci-physics/openmx/ChangeLog +++ b/sci-physics/openmx/ChangeLog @@ -2,6 +2,12 @@ # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ +*openmx-3.7.6 (19 Sep 2013) + + 19 Sep 2013; Honza Macháček -openmx-3.7.4.ebuild, + +openmx-3.7.6.ebuild: + Updated to 3.7.6, corrected linking with fortran code using gcc. + 16 Jul 2013; Honza Macháček openmx-3.7.4.ebuild: Another quick fix, the version number of the PDF manual. diff --git a/sci-physics/openmx/Manifest b/sci-physics/openmx/Manifest index 6493a09d8..4f59a085b 100644 --- a/sci-physics/openmx/Manifest +++ b/sci-physics/openmx/Manifest @@ -1,4 +1,4 @@ DIST openmx3.6.tar.gz 83023744 SHA256 e344914a615d4179e724877207335e44f9d629cd3931b70e135011877355ab71 SHA512 f4d59e839bbd216893149c83d1059aa4dc4fb011d113cb40efbd99db96d558501b371628f0ea064d3091d8ef0d2c8664412b0c3541fa2a7135811e3536cb0018 WHIRLPOOL 54c72309133dbb010218ce138992362e98eb4c345eb3b2897e1d86f3f2469cc95a2024c8547cc3dc0db78befaf620e624640b6a64522c0937bf7158658a28109 DIST openmx3.7.tar.gz 117784869 SHA256 24329cd1fbad98d6cb99b04e4d988b0715e2ce3156f79e4855c46f93a0c981f9 SHA512 e05e2839776be17d0df71818444ff7234b75f00177111ff4003eacbe3663a025965990c293cd1dfa078c3960fe89385cbe16393c9cfaf5953e1c683e7964423a WHIRLPOOL 68694dd0ea3899a79c2c299377671725ad5e971af2d0a842501a422fc30483d43373dcc7d2f1e5dc62f6298dbf8f87cc5806a0d2eab3add80a3adca0a3f5a327 DIST patch3.6.1.tar.gz 202531 SHA256 56cba052a84c73bf332ff3a65787001376f8d50ec50e7e363a67dfb5b417febd SHA512 1f1c2c156c80a21649826cfaeb79a9b2b7d81b46920e713fb0e4489eeceb8cc6a9193c49efb0d4c1a1a69313e21186e10ed4fd97d27e63b555ce1092425c641d WHIRLPOOL 006cb7ec822ef485c03a371b9c3a99c426fc5e6e1249fd17d9f5527f0220f09df1acc049e31a59d6834a3ce44431ae385268954898613a9fe31ff892262a5503 -DIST patch3.7.4.tar.gz 73191 SHA256 1c57ed3e473eb036f96ad626c6c7ce1fec8ccda6f1a4fade360bdf6265935d61 SHA512 91c7ee6d6fd3bc4394d06b41bbd62d003695061d026f1f1f17e0e0adea17482a2fcb67a29425a74d8b4a9c81fd170de54814a782972b919709fb3e7171c43d5f WHIRLPOOL e65c4cb6e2699c659150c4eff9af77a690cd94a2772edeadea303d83b9d5b2d4dc3daf5497505e79ef9d31a7a4e89ec745bd9a5f55d74e57b5be774e0d25b9cf +DIST patch3.7.6.tar.gz 73220 SHA256 fc24dcf3ee22854def1b4c012cd1d459f406f7a785732fa478478be2f0c00dc9 SHA512 bafe4d0da12e4aab619720266f43e3f554360f292fb9a9cba26d772d7fe37146c2f7ec0a50f5967c1e473f6cf91602e6d283fc907cd413d0ba0300517d79dc69 WHIRLPOOL 60d15cf474bd471c27c905d37eb0ef3ae094ae1f3a0b89a8a97ad09881323540afd97f190910d175fb7f38d0d8c0c39fc64853cf98c5d97e1ae9aeb4f544b283 diff --git a/sci-physics/openmx/openmx-3.7.4.ebuild b/sci-physics/openmx/openmx-3.7.4.ebuild deleted file mode 100644 index e4fff03b6..000000000 --- a/sci-physics/openmx/openmx-3.7.4.ebuild +++ /dev/null @@ -1,163 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -EAPI=5 - -inherit eutils multilib toolchain-funcs fortran-2 - -PATCHDATE="13July03" - -DESCRIPTION="Material eXplorer using DFT, NC pseudopotentials, and pseudo-atomic localized basis functions" -HOMEPAGE="http://www.openmx-square.org/" -SRC_URI=" - http://www.openmx-square.org/${PN}${PV%.[0-9]}.tar.gz - http://www.openmx-square.org/bugfixed/${PATCHDATE}/patch${PV}.tar.gz" - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="-debug mpi openmp test" - -RDEPEND=" - virtual/blas - virtual/lapack - sci-libs/fftw:3.0[mpi?,openmp?] - mpi? ( virtual/mpi )" -DEPEND="${RDEPEND} - virtual/pkgconfig" - -S="${WORKDIR}/${PN}${PV%.[0-9]}" - -MAKEOPTS+=" -j1" - -FORTRAN_STANDARD=90 - -pkg_setup() { - if use mpi; then - export CC="mpicc" - export FC="mpif90" - else - tc-export CC - tc-export FC - fi - - if use openmp; then FORTRAN_NEED_OPENMP=1; fi - - fortran-2_pkg_setup - - if use openmp; then - # based on _fortran-has-openmp() of fortran-2.eclass - local code=ebuild-openmp-flags - local ret - local openmp - - pushd "${T}" - cat <<- EOF > "${code}.c" - # include - main () { - int nthreads; - nthreads=omp_get_num_threads(); - } - EOF - - for openmp in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp; do - ${CC} ${openmp} "${code}.c" -o "${code}.o" &>> "${T}"/_c_compile_test.log - ret=$? - (( ${ret} )) || break - done - - rm -f "${code}.*" - popd - - if (( ${ret} )); then - die "Please switch to an openmp compatible C compiler" - else - export CC="${CC} ${openmp}" - fi - - pushd "${T}" - cat <<- EOF > "${code}.f" - 1 call omp_get_num_threads - 2 end - EOF - - for openmp in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp; do - ${FC} ${openmp} "${code}.f" -o "${code}.o" &>> "${T}"/_f_compile_test.log - ret=$? - (( ${ret} )) || break - done - - rm -f "${code}.*" - popd - - if (( ${ret} )); then - die "Please switch to an openmp compatible fortran compiler" - else - export FC="${FC} ${openmp}" - fi - fi - -} - -src_prepare() { - cd "${WORKDIR}" - mv *.[hc] "${S}"/source - epatch "${FILESDIR}/3.7-fortran_objects.patch" -} - -src_configure() { - local FFTW_FLAVOUR=fftw3 - if use openmp; then - FFTW_FLAVOUR=fftw3_omp - else - export CFLAGS="${CFLAGS} -Dnoomp" - fi - if use mpi; then - FFTW_FLAVOUR=fftw3_mpi - else - export CFLAGS="${CFLAGS} -Dnompi" - fi - CFLAGS="${CFLAGS} $($(tc-getPKG_CONFIG) --cflags lapack)" - CFLAGS="${CFLAGS} $($(tc-getPKG_CONFIG) --cflags ${FFTW_FLAVOUR})" - export CFLAGS - - FCFLAGS="${FCFLAGS} -I/usr/include" - FCFLAGS="${FCFLAGS} $($(tc-getPKG_CONFIG) --cflags lapack)" - FCFLAGS="${FCFLAGS} $($(tc-getPKG_CONFIG) --cflags ${FFTW_FLAVOUR})" - export FCFLAGS - - local MX_LIB="$($(tc-getPKG_CONFIG) --static --libs lapack)" - MX_LIB="${MX_LIB} $($(tc-getPKG_CONFIG) --static --libs ${FFTW_FLAVOUR})" - if use mpi; then - MX_LIB="${MX_LIB} $(mpif90 -showme:link)" - fi - - sed \ - -e "s%^CC *=.*$%CC = ${CC} ${CFLAGS}%" \ - -e "s%^FC *=.*$%FC = ${FC} ${FCFLAGS}%" \ - -e "s%^LIB *=.*$%LIB = ${MX_LIB}%" \ - -i source/makefile || die -} - -src_compile() { - emake -C source -} - -src_test() { - cd work - ../source/openmx -runtest || die -} - -src_install() { - insinto /usr/share/${P} - doins -r DFT_DATA13 - cd work - insinto /usr/share/${P}/examples - doins -r * - cd ../source - dodir /usr/bin - emake DESTDIR="${D}/usr/bin" install - dodoc "${S}/${PN}${PV%.?}.pdf" - use test && dodoc "${S}"/work/runtest.result -} diff --git a/sci-physics/openmx/openmx-3.7.6.ebuild b/sci-physics/openmx/openmx-3.7.6.ebuild new file mode 100644 index 000000000..bb44f1648 --- /dev/null +++ b/sci-physics/openmx/openmx-3.7.6.ebuild @@ -0,0 +1,171 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 + +inherit eutils multilib toolchain-funcs fortran-2 + +PATCHDATE="13Sep01" + +DESCRIPTION="Material eXplorer using DFT, NC pseudopotentials, and pseudo-atomic localized basis functions" +HOMEPAGE="http://www.openmx-square.org/" +SRC_URI=" + http://www.openmx-square.org/${PN}${PV%.[0-9]}.tar.gz + http://www.openmx-square.org/bugfixed/${PATCHDATE}/patch${PV}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="-debug mpi openmp test" + +RDEPEND=" + virtual/blas + virtual/lapack + sci-libs/fftw:3.0[mpi?,openmp?] + mpi? ( virtual/mpi )" +DEPEND="${RDEPEND} + virtual/pkgconfig" + +S="${WORKDIR}/${PN}${PV%.[0-9]}" + +MAKEOPTS+=" -j1" + +FORTRAN_STANDARD=90 + +pkg_setup() { + # Link in the GNU Fortran library for Fortran code. + # Other compilers may need other hacks. + FC_LIB="" + if [[ $(tc-getCC)$ == *gcc* ]]; then + FC_LIB="-lgfortran" + fi + export FC_LIB + + if use mpi; then + export CC="mpicc" + export FC="mpif90" + else + tc-export CC + tc-export FC + fi + + if use openmp; then FORTRAN_NEED_OPENMP=1; fi + + fortran-2_pkg_setup + + if use openmp; then + # based on _fortran-has-openmp() of fortran-2.eclass + local code=ebuild-openmp-flags + local ret + local openmp + + pushd "${T}" + cat <<- EOF > "${code}.c" + # include + main () { + int nthreads; + nthreads=omp_get_num_threads(); + } + EOF + + for openmp in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp; do + ${CC} ${openmp} "${code}.c" -o "${code}.o" &>> "${T}"/_c_compile_test.log + ret=$? + (( ${ret} )) || break + done + + rm -f "${code}.*" + popd + + if (( ${ret} )); then + die "Please switch to an openmp compatible C compiler" + else + export CC="${CC} ${openmp}" + fi + + pushd "${T}" + cat <<- EOF > "${code}.f" + 1 call omp_get_num_threads + 2 end + EOF + + for openmp in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp; do + ${FC} ${openmp} "${code}.f" -o "${code}.o" &>> "${T}"/_f_compile_test.log + ret=$? + (( ${ret} )) || break + done + + rm -f "${code}.*" + popd + + if (( ${ret} )); then + die "Please switch to an openmp compatible fortran compiler" + else + export FC="${FC} ${openmp}" + fi + fi + +} + +src_prepare() { + cd "${WORKDIR}" + mv *.[hc] "${S}"/source + epatch "${FILESDIR}/3.7-fortran_objects.patch" +} + +src_configure() { + local FFTW_FLAVOUR=fftw3 + if use openmp; then + FFTW_FLAVOUR=fftw3_omp + else + export CFLAGS="${CFLAGS} -Dnoomp" + fi + if use mpi; then + FFTW_FLAVOUR=fftw3_mpi + else + export CFLAGS="${CFLAGS} -Dnompi" + fi + CFLAGS="${CFLAGS} $($(tc-getPKG_CONFIG) --cflags lapack)" + CFLAGS="${CFLAGS} $($(tc-getPKG_CONFIG) --cflags ${FFTW_FLAVOUR})" + export CFLAGS + + FCFLAGS="${FCFLAGS} -I/usr/include" + FCFLAGS="${FCFLAGS} $($(tc-getPKG_CONFIG) --cflags lapack)" + FCFLAGS="${FCFLAGS} $($(tc-getPKG_CONFIG) --cflags ${FFTW_FLAVOUR})" + export FCFLAGS + + local MX_LIB="$($(tc-getPKG_CONFIG) --static --libs lapack)" + MX_LIB="${MX_LIB} $($(tc-getPKG_CONFIG) --static --libs ${FFTW_FLAVOUR})" + if use mpi; then + MX_LIB="${MX_LIB} $(mpif90 -showme:link)" + fi + + sed \ + -e "s%^CC *=.*$%CC = ${CC} ${CFLAGS}%" \ + -e "s%^FC *=.*$%FC = ${FC} ${FCFLAGS}%" \ + -e "s%^LIB *=.*$%LIB = ${MX_LIB} ${FC_LIB}%" \ + -i source/makefile || die +} + +src_compile() { + emake -C source +} + +src_test() { + cd work + ../source/openmx -runtest || die +} + +src_install() { + insinto /usr/share/${P} + doins -r DFT_DATA13 + cd work + insinto /usr/share/${P}/examples + doins -r * + cd ../source + dodir /usr/bin + emake DESTDIR="${D}/usr/bin" install + dodoc "${S}/${PN}${PV%.?}.pdf" + use test && dodoc "${S}"/work/runtest.result +} -- cgit v1.2.3