# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v3 # $Header: $ inherit versionator eutils MY_PV=$(replace_version_separator 1 '') DESCRIPTION="CERN's detector description and simulation Tool" HOMEPAGE="http://geant4.cern.ch" SRC_URI="http://geant4.web.cern.ch/geant4/support/source/${PN}${PV}.gtar.gz" LICENSE="geant4" SLOT="0" KEYWORDS="~x86" IUSE="+data qt4 +motif debug openinventor +raytracerx +vrml +openglx openglqt openglxm gdml MOMO g4py" # data: install data files for geant4 # motif/qt4: use * as widget set, qt4 is considered experimental by upstream # TODO # openinventor, openglqt: not tested # Xaw: Athena Widgets support -- ebuild available?? RDEPEND="data? (sci-physics/geant4-data)" DEPEND=" sci-physics/clhep qt4? (>=x11-libs/qt-4) motif? (x11-libs/openmotif) openinventor? (media-libs/openinventor) raytracerx? (x11-base/xorg-server) openglx? (virtual/opengl) openglqt? (x11-libs/qt-opengl) openglxm? (x11-libs/Xaw3d) gdml? (dev-libs/xerces-c)" # TODO Xaw? (x11-libs/Xaw) S="${WORKDIR}/${PN}${PV}" FEATURE="sandbox collision-protect" src_unpack() { tar -xf ${DISTDIR}/${PN}${PV}.gtar.gz -C ${WORKDIR} cd "${S}" epatch "${FILESDIR}/0001-Ebuildify.patch" epatch "${FILESDIR}/0002-changed-config-env-sh.patch" } pkg_setup() { eval unset ${!G4_*} } src_compile() { if ! use data; then ewarn "You should always emerge sci-physics/geant4-data together with Geant4" ewarn " (unless you know what you are doing)." fi cd "${WORKDIR}/${PN}${PV}" MYOPTS="" if use qt4; then MYOPTS+='-D g4ui_use_qt=y ' elif use motif; then MYOPTS+="-D g4vis_xmhome=/usr/include/openmotif-2.3" MYOPTS+="-D g4ui_use_xm=y" #elif use Xaw; then MYOPTS+="-D g4ui_use_xaw=y " # no ebuild? elif use debug; then MYOPTS+="-D g4debug=y " elif use openinventor; then MYOPTS+="-D g4debug=y " elif use raytracerx; then MYOPTS+="-D g4vis_use_raytracerx=y " elif use openglx; then MYOPTS+="-D g4vis_use_openglx=y " elif use openglqt; then MYOPTS+="-D g4vis_use_openglqt=y " elif use openglxm; then MYOPTS+="-D g4vis_use_openglxm=y " elif use gdml; then MYOPTS+="-D g4lib_build_gdml=y " elif use vrml; then MYOPTS+="-D g4vis_use_vrml=y " fi einfo "Configuring build -- no input needed." einfo "Building will take a looooong time. If you only care about this build" einfo "being done, now is the time to do something else." epause 3 DATA="/usr/share/geant4/data/" ./Configure -build -d -e -s -O \ -D g4lib_build_shared=y \ -D g4lib_build_static=y \ -D g4debug=n \ -D g4ui_none=n \ -D g4ui_use_xaw=n \ -D g4ui_use_xm=n \ -D g4ui_use_qt=n \ -D g4vis_none=n \ -D g4vis_use_openglx=n \ -D g4vis_use_openglxm=n \ -D g4vis_use_dawn=n \ -D g4vis_use_oix=n \ -D g4vis_use_raytracerx=n \ -D g4vis_use_vrml=n \ -D g4vis_use_openglqt=n \ -D g4lib_build_gdml=n \ -D g4lib_build_g3tog4=y \ -D g4lib_build_zlib=n \ -D g4analysis_use=n \ -D g4includes_flag=y \ -D g4include="${D}/usr/include/geant4/" \ -D g4final_install="${D}/usr" \ -D g4levelgammadata="${DATA}/PhotonEvaporation" \ -D g4radioactivedata="${DATA}/RadioactiveDecay" \ -D g4ledata="${DATA}/G4EMLOW" \ -D g4neutronhpcrosssections="${DATA}/G4NDL" \ -D g4abladata="${DATA}/G4ABLA" \ $MYOPTS || die "Install failed" } src_install() { cd "${WORKDIR}/${PN}${PV}" ./Configure -install -s ./Configure dodoc LICENSE ReleaseNotes/ReleaseNotes"${PV}".* insinto /usr/share/geant4/environments mv "${D}"/usr/src/geant4/examples "${D}"/usr/share/geant4/ if use MOMO; then mv "${D}"/usr/src/geant4/environments/MOMO "${D}"/usr/share/geant4/ fi if use g4py; then mv "${D}"/usr/src/geant4/environments/g4py "${D}"/usr/share/geant4/ fi mv config/ "${D}"/usr/share/geant4/ sed -i -e "s~${WORKDIR}/${PN}${PV}~/usr/share/geant4/~g" env.* || die "Install failed" # G4INSTALL sed -i -e "s~${D}~/~g" env.* || die "Install failed" # all the rest ## TODO this breaks a lot of stuff # mv "${D}"/usr/lib/geant4/Linux-g++/* "${D}"/usr/lib/geant4/ # rmdir "${D}"/usr/lib/geant4/Linux-g++/ # sed -i -e "s~\${G4LIB}/\${G4SYSTEM}~\${G4LIB}~g" env.* || die "Install failed" # G4LIB doins env.csh env.sh rm -rf "${D}"/usr/src/ } pkg_postinst() { elog "Please make sure you set the environment variables needed for Geant4." elog "/usr/share/geant4/environments contains environment scripts for some shells," # tell user how to polute environment elog "so that e.g. for bash" elog " source /usr/share/geant4/environments/env.sh" elog "will set everything Geant4 wants." elog "" elog "/usr/share/geant4/examples/ contains examples to get you started." }