sci-physics/madgraph5 - 3.7.1 (science)

Search

Install

Install this version:

emerge -a =sci-physics/madgraph5-3.7.1

If this version is masked, you can unmask it using the autounmask tool or standard emerge options:

autounmask =sci-physics/madgraph5-3.7.1

Or alternatively:

emerge --autounmask-write -a =sci-physics/madgraph5-3.7.1

Package Information

Description:
MadGraph5_aMC@NLO
Homepage:
https://launchpad.net/mg5amcnlo https://github.com/mg5amcnlo/mg5amcnlo
License:
UoI-NCSA

Ebuild Details

Version EAPI Keywords Slot
3.7.1 8 ~amd64
View Raw Ebuild
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

PYTHON_COMPAT=( python3_{11..13} )
inherit fortran-2 python-single-r1

MY_PNN="MadGraph5"
MY_PV=$(ver_rs 1-3 '_')
MY_PN="MG5_aMC_v"
MY_PF=${MY_PN}${MY_PV}
MY_P=${MY_PNN}-${PV}

DESCRIPTION="MadGraph5_aMC@NLO"
HOMEPAGE="
	https://launchpad.net/mg5amcnlo
	https://github.com/mg5amcnlo/mg5amcnlo
"
if [[ ${PV} == 9999 ]]; then
	inherit git-r3
	EGIT_REPO_URI="https://github.com/mg5amcnlo/mg5amcnlo"
	EGIT_BRANCH="3.x"
else
	SRC_URI="https://launchpad.net/mg5amcnlo/$(ver_cut 1).0/$(ver_cut 1-2).x/+download/${MY_PN}${PV}.tar.gz -> ${MY_P}.tar.gz"
	S="${WORKDIR}/${PF}"
	KEYWORDS="~amd64"
fi

LICENSE="UoI-NCSA"
SLOT="${PVR}"
IUSE="+hepmc2 +lhapdf +fastjet +pythia collier thepeg madanalysis5 ninja samurai golem95 herwig yoda rivet"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"

DEPEND="
	${PYTHON_DEPS}
	virtual/zlib:=
	sys-devel/gcc:*[fortran]
	$(python_gen_cond_dep '
		dev-python/numpy[${PYTHON_USEDEP}]
		dev-python/six[${PYTHON_USEDEP}]
	')
	lhapdf? ( sci-physics/lhapdf[static-libs(-),${PYTHON_SINGLE_USEDEP}] )
	fastjet? ( sci-physics/fastjet[${PYTHON_SINGLE_USEDEP}] )
	pythia? (
		sci-physics/pythia:8=[static-libs(-),hepmc2(-),examples]
		sci-physics/hepmc:2=
	)
	hepmc2? ( sci-physics/hepmc:2 )
	collier? ( sci-physics/collier[static-libs] )
	thepeg? (
		sci-physics/thepeg[hepmc3(-),fastjet?,lhapdf?]
	)
	madanalysis5? ( sci-physics/madanalysis5 )
	ninja? ( sci-physics/ninja[static-libs] )
	samurai? ( sci-physics/samurai )
	golem95? ( sci-physics/golem95 )
	herwig? ( sci-physics/herwig )
	yoda? ( sci-physics/yoda )
	rivet? ( sci-physics/rivet )
	sci-physics/cuttools[static-libs(-),mpfun90(-)]
	sci-physics/iregi[static-libs]
	sci-physics/qcdloop[static-libs(-)]
	sci-physics/stdhep[static-libs(-)]
"
RDEPEND="${DEPEND}"
# Wants to know madgraph5 version ...
PDEPEND="
	pythia? ( sci-physics/madgraph5-pythia8-interface )
"

PATCHES=(
	"${FILESDIR}"/${PN}-3.6.5-nlo-template-libs.patch
	"${FILESDIR}"/${PN}-3.6.5-pythia-make.patch
	"${FILESDIR}"/${PN}-3.7.1-env.patch
)

src_unpack() {
	if [[ ${PV} == *9999* ]]; then
		git-r3_src_unpack
	else
		# Perserve permissions
		tar xzf "${DISTDIR}/${MY_PNN}-${PV}.tar.gz" -C "${WORKDIR}" || die
		mv ${MY_PF} ${PF}
	fi
}

src_configure() {
	sed -i "s/LIBDIR=lib/LIBDIR=$(get_libdir)/g" Template/NLO/MCatNLO/srcPythia8/Makefile || die
	sed -i "s/LIBDIR=lib/LIBDIR=$(get_libdir)/g" Template/NLO/MCatNLO/srcPythia8/Makefile_hep || die

	cat <<-EOF >> input/mg5_configuration.txt || die
	output_dependencies = environment_paths
	$(usex lhapdf "lhapdf_py3 = ${EPREFIX}/usr/bin/lhapdf-config" "")
	$(usex fastjet "fastjet = ${EPREFIX}/usr/bin/fastjet-config" "")
	$(usex pythia "pythia8_path = ${EPREFIX}/usr" "")
	$(usex pythia "mg5amc_py8_interface_path = ${EPREFIX}/opt/madgraph5-pythia8-interface" "")
	$(usex hepmc2 "hepmc_path = ${EPREFIX}/usr" "")
	$(usex collier "collier = ${EPREFIX}/usr/$(get_libdir)" "")
	$(usex thepeg "thepeg_path = ${EPREFIX}/usr/$(get_libdir)" "")
	$(usex herwig "hwpp_path = ${EPREFIX}/usr/$(get_libdir)" "")
	ninja = $(usex ninja "${EPREFIX}/usr/$(get_libdir)" "''")
	samurai = $(usex samurai "${EPREFIX}/usr/$(get_libdir)" "''")
	golem = $(usex golem95 "${EPREFIX}/usr/$(get_libdir)" "''")
	$(usex yoda "yoda_path= ${EPREFIX}/usr/$(get_libdir)" "")
	$(usex rivet "rivet_path= ${EPREFIX}/usr/$(get_libdir)" "")
	$(usex madanalysis5 "madanalysis5_path = ${EPREFIX}/opt/MadAnalysis5/" "")
	auto_update = 0
	EOF
}

src_compile() {
	# MadGraph needs to generate `Template/LO/Source/make_opts` which is done
	# automatically at startup.  This needs to be done during setup (or with root access)
	echo "exit" >> tmpfile || die
	bin/mg5_aMC ./tmpfile || die
	rm tmpfile || die
}

src_install() {
	# symlink entrypoint
	dosym ../../opt/${PF}/bin/mg5_aMC /usr/bin/mg5_aMC3-${PVR}
	mv "${WORKDIR}" "${ED}/opt/" || die

	newenvd - 99madgraph5 <<- _EOF_
		MG5_LIBRARY_PATH="${EPREFIX}/usr/$(get_libdir):${EPREFIX}/usr/include/mpfun90/"
	_EOF_
}

USE Flags

Manage flags for this package: euse -i <flag> -p sci-physics/madgraph5 | euse -E <flag> -p sci-physics/madgraph5 | euse -D <flag> -p sci-physics/madgraph5

Global/Standard Flags

hepmc2
Default: Enabled (+)
lhapdf
Default: Enabled (+)
fastjet
Default: Enabled (+)
pythia
Default: Enabled (+)

Inherited Eclasses

Dependencies

DEPEND

	${PYTHON_DEPS}
	virtual/zlib:=
	sys-devel/gcc:*[fortran]
	$(python_gen_cond_dep '
		dev-python/numpy[${PYTHON_USEDEP}]
		dev-python/six[${PYTHON_USEDEP}]
	')
	lhapdf? ( sci-physics/lhapdf[static-libs(-),${PYTHON_SINGLE_USEDEP}] )
	fastjet? ( sci-physics/fastjet[${PYTHON_SINGLE_USEDEP}] )
	pythia? (
		sci-physics/pythia:8=[static-libs(-),hepmc2(-),examples]
		sci-physics/hepmc:2=
	)
	hepmc2? ( sci-physics/hepmc:2 )
	collier? ( sci-physics/collier[static-libs] )
	thepeg? (
		sci-physics/thepeg[hepmc3(-),fastjet?,lhapdf?]
	)
	madanalysis5? ( sci-physics/madanalysis5 )
	ninja? ( sci-physics/ninja[static-libs] )
	samurai? ( sci-physics/samurai )
	golem95? ( sci-physics/golem95 )
	herwig? ( sci-physics/herwig )
	yoda? ( sci-physics/yoda )
	rivet? ( sci-physics/rivet )
	sci-physics/cuttools[static-libs(-),mpfun90(-)]
	sci-physics/iregi[static-libs]
	sci-physics/qcdloop[static-libs(-)]
	sci-physics/stdhep[static-libs(-)]

RDEPEND

	${PYTHON_DEPS}
	virtual/zlib:=
	sys-devel/gcc:*[fortran]
	$(python_gen_cond_dep '
		dev-python/numpy[${PYTHON_USEDEP}]
		dev-python/six[${PYTHON_USEDEP}]
	')
	lhapdf? ( sci-physics/lhapdf[static-libs(-),${PYTHON_SINGLE_USEDEP}] )
	fastjet? ( sci-physics/fastjet[${PYTHON_SINGLE_USEDEP}] )
	pythia? (
		sci-physics/pythia:8=[static-libs(-),hepmc2(-),examples]
		sci-physics/hepmc:2=
	)
	hepmc2? ( sci-physics/hepmc:2 )
	collier? ( sci-physics/collier[static-libs] )
	thepeg? (
		sci-physics/thepeg[hepmc3(-),fastjet?,lhapdf?]
	)
	madanalysis5? ( sci-physics/madanalysis5 )
	ninja? ( sci-physics/ninja[static-libs] )
	samurai? ( sci-physics/samurai )
	golem95? ( sci-physics/golem95 )
	herwig? ( sci-physics/herwig )
	yoda? ( sci-physics/yoda )
	rivet? ( sci-physics/rivet )
	sci-physics/cuttools[static-libs(-),mpfun90(-)]
	sci-physics/iregi[static-libs]
	sci-physics/qcdloop[static-libs(-)]
	sci-physics/stdhep[static-libs(-)]