103 lines
2.6 KiB
Bash
103 lines
2.6 KiB
Bash
# Copyright 1999-2013 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Header: /var/cvsroot/gentoo-x86/sci-physics/pythia/pythia-8.1.80.ebuild,v 1.1 2013/10/29 22:04:54 bicatali Exp $
|
|
|
|
EAPI=5
|
|
|
|
inherit eutils versionator toolchain-funcs multilib
|
|
|
|
MV=$(get_major_version)
|
|
MY_P=${PN}$(replace_all_version_separators "" ${PV})
|
|
|
|
DESCRIPTION="Lund Monte Carlo high-energy physics event generator"
|
|
HOMEPAGE="http://pythia8.hepforge.org/"
|
|
SRC_URI="http://home.thep.lu.se/~torbjorn/${PN}${MV}/${MY_P}.tgz"
|
|
|
|
SLOT="8"
|
|
LICENSE="GPL-2"
|
|
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
|
|
IUSE="doc examples gzip +hepmc static-libs"
|
|
|
|
DEPEND="
|
|
gzip? ( dev-libs/boost sys-libs/zlib )
|
|
hepmc? ( sci-physics/hepmc )"
|
|
RDEPEND="${DEPEND}"
|
|
|
|
S="${WORKDIR}/${MY_P}"
|
|
|
|
src_prepare() {
|
|
PYTHIADIR="${EPREFIX}/usr/share/pythia8"
|
|
# set datadir for xmldor in include file
|
|
sed -i \
|
|
-e "s:../xmldoc:${PYTHIADIR}/xmldoc:" \
|
|
include/Pythia8/Pythia.h || die
|
|
# respect libdir, prefix, flags
|
|
sed -i \
|
|
-e "s:/lib:/$(get_libdir):g" \
|
|
-e "s:/usr:${EPREFIX}/usr:g" \
|
|
-e "s:-O2::g" \
|
|
configure || die
|
|
sed -i \
|
|
-e "s:LIBDIR=.*:LIBDIR=$(get_libdir):" \
|
|
-e "s:LIBDIRARCH=.*:LIBDIRARCH=$(get_libdir):" \
|
|
-e "s:cp -r lib:cp -r $(get_libdir):" \
|
|
-e '/ln -fs/d' \
|
|
Makefile examples/Makefile || die
|
|
}
|
|
|
|
src_configure() {
|
|
export USRCXXFLAGS="${CXXFLAGS}"
|
|
export USRLDFLAGSSHARED="${LDFLAGS}"
|
|
tc-export CC CXX
|
|
# homemade configure script
|
|
./configure \
|
|
--installdir="${EPREFIX}/usr" \
|
|
--datadir="${PYTHIADIR}" \
|
|
--enable-shared \
|
|
$(usex gzip "--enable-gzip=yes" "") \
|
|
$(usex hepmc "--with-hepmcversion=2 --with-hepmc=${EPREFIX}/usr" "") \
|
|
|| die
|
|
if ! use static-libs; then
|
|
sed -i \
|
|
-e '/targets.*=$(LIBDIR.*\.a$/d' \
|
|
-e 's/+=\(.*libpythia8\.\)/=\1/' \
|
|
Makefile || die
|
|
sed -i \
|
|
-e 's:\.a:\.so:g' \
|
|
-e 's:$(LIBDIRARCH):$(LIBDIR):g' \
|
|
examples/Makefile || die
|
|
fi
|
|
}
|
|
|
|
src_test() {
|
|
cd examples || die
|
|
# use emake for parallel instead of long runmains
|
|
emake main0{1..9}
|
|
for i in main0{1..9}*.exe; do
|
|
LD_LIBRARY_PATH="${S}/$(get_libdir):${LD_LIBRARY_PATH}" \
|
|
./${i} > ${i}.out || die "test ${i} failed"
|
|
done
|
|
if use hepmc; then
|
|
emake main31
|
|
LD_LIBRARY_PATH="${S}/$(get_libdir):${LD_LIBRARY_PATH}" \
|
|
./main31.exe > main31.exe.out || die
|
|
fi
|
|
emake clean && rm main*out
|
|
}
|
|
|
|
src_install() {
|
|
emake INSTALLDIR="${ED}/usr" DATADIR="${D}/${PYTHIADIR}" install
|
|
rm -r "${D}"/${PYTHIADIR}/{html,php}doc || die
|
|
echo "PYTHIA8DATA=${PYTHIADIR}/xmldoc" >> 99pythia8
|
|
doenvd 99pythia8
|
|
|
|
dodoc GUIDELINES AUTHORS README
|
|
if use doc; then
|
|
dodoc worksheet.pdf
|
|
dohtml -r htmldoc/*
|
|
fi
|
|
if use examples; then
|
|
insinto /usr/share/doc/${PF}
|
|
doins -r examples
|
|
fi
|
|
}
|