# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v3 # $Header: $ inherit versionator eutils qt4 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 data? ( http://geant4.cern.ch/support/source/G4NDL.3.12.tar.gz http://geant4.cern.ch/support/source/G4EMLOW.5.1.tar.gz http://geant4.cern.ch/support/source/G4RadioactiveDecay.3.2.tar.gz http://geant4.cern.ch/support/source/PhotonEvaporation.2.0.tar.gz http://geant4.cern.ch/support/source/G4ABLA.3.0.tar.gz )" # http://geant4.cern.ch/support/source/G4NDL.0.2.tar.gz # same as above # but w/o thermal neutrons and so much smaller 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?? DEPEND=" sci-physics/clhep qt4? ( $(qt4_min_version 4.0) ) 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}" DATA="/usr/share/geant4/data/" # the dir for data files src_unpack() { # some gymnastics since it's geant.*.gtar.gz upstream mv ${DISTDIR}/${PN}${PV}.gtar.gz ${DISTDIR}/${PN}${PV}.tar.gz unpack `echo ${A} | sed -e s/gtar/tar/g` 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 "Not installing data files." fi cd "${WORKDIR}/${PN}${PV}" 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 MYOPTS="" # use qt4 && MYOPTS+="-D g4ui_use_qt=y " # use motif && MYOPTS+="-D g4vis_xmhome=/usr/include/openmotif-2.3/Xm -D g4ui_use_xm=y" # #use Xaw && MYOPTS+="-D g4ui_use_xaw=y "# no ebuild? # use debug && MYOPTS+="-D g4debug=y " # use openinventor && MYOPTS+="-D g4debug=y " # use raytracerx && MYOPTS+="-D g4vis_use_raytracerx=y " # use openglx && MYOPTS+="-D g4vis_use_openglx=y " # use openglqt && MYOPTS+="-D g4vis_use_openglqt=y " # use openglxm && MYOPTS+="-D g4vis_use_openglxm=y " # use gdml && MYOPTS+="-D g4lib_build_gdml=y " # use vrml && MYOPTS+="-D g4vis_use_vrml=y " ./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 ReleaseNotes/ReleaseNotes"${PV}".* insinto /usr/share/doc/"${PF}"; doins -r "${D}"/usr/src/geant/examples dodir "${D}"/usr/share/doc/"${PF}"/environments; insinto /usr/share/doc/"{PF}"/environments if use MOMO; then doins -r "${D}"/usr/src/geant4/environments/MOMO fi if use g4py; then doins -r "${D}"/usr/src/geant4/environments/g4py fi doins -r config 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/ if use data; then find . -type f -print0 | xargs -0 chmod -x dodir "${DATA}"; insinto "${DATA}" doins -r G4NDL* G4EMLOW* RadioactiveDecay* G4ABLA* PhotonEvaporation* fi } 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/doc/${PF}/examples/ contains examples to get you started." }