# Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit multilib flag-o-matic eutils python #IUSE="mozilla png sdl static truetype" IUSE="blender-game ffmpeg jpeg nls openal openexr png sdl" FFMPEG_SNAP="0.4.9-p20070330" DESCRIPTION="3D Creation/Animation/Publishing System" HOMEPAGE="http://www.blender.org/" SRC_URI="http://download.blender.org/source/${P}.tar.gz ffmpeg? ( mirror://gentoo/ffmpeg-${FFMPEG_SNAP}.tar.bz2 )" SLOT="0" LICENSE="|| ( GPL-2 BL )" KEYWORDS="~amd64 ppc ppc64 ~sparc x86" RDEPEND=">=dev-libs/openssl-0.9.6 ffmpeg? ( >=media-video/ffmpeg-${FFMPEG_SNAP/-/_} >=media-libs/x264-svn-20061014-r1 ) jpeg? ( media-libs/jpeg ) media-libs/tiff >=dev-lang/python-2.4 nls? ( >=media-libs/freetype-2.0 virtual/libintl >=media-libs/ftgl-2.1 ) openal? ( media-libs/openal media-libs/freealut ) openexr? ( media-libs/openexr ) png? ( media-libs/libpng ) sdl? ( >=media-libs/libsdl-1.2 ) virtual/opengl" DEPEND="dev-util/scons || ( x11-libs/libXt virtual/x11 ) ${RDEPEND}" blend_with() { local UWORD="$2" if [ -z "${UWORD}" ]; then UWORD="$1" fi if useq $1; then echo "WITH_BF_${UWORD}=1" | tr '[:lower:]' '[:upper:]' \ >> ${BLENDER_CONFIG} else echo "WITH_BF_${UWORD}=0" | tr '[:lower:]' '[:upper:]' \ >> ${BLENDER_CONFIG} fi } # this function extracts the first job-option from MAKEOPTS # inspired by get-flag from flag-o-matic extract-jobs() { local f do_print=0 short="-j" long="--jobs" for f in ${*} ; do if [ ${do_print} -eq 1 ] ; then printf " %s\n" ${f} return 0 elif [ "${f/#${short}}" != "${f}" ] ; then printf "%s" "${f}" if [ "${short}" == "${f}" ] ; then do_print=1 else printf "\n" return 0 fi elif [ "${f/#${long}}" != "${f}" ] ; then printf "%s" "${f}" if [ "${long}" == "${f}" ] ; then do_print=1 else printf "\n" return 0 fi fi done return 1 } src_unpack() { unpack ${A} cd ${S}/release/plugins chmod 755 bmake cp -pPR ${S}/source/blender/blenpluginapi include cd ${S} epatch ${FILESDIR}/blender-2.37-dirs.patch if use ffmpeg ; then cd ${S}/extern mv ffmpeg/Makefile ffmpeg/common.mak ${T} unpack ffmpeg-${FFMPEG_SNAP}.tar.bz2 mv ${T}/Makefile ${T}/common.mak ffmpeg fi # set python version to newest stable in portage (from 2.5 to 2.4) # and prepend ${ROOT} to all toplevel paths sed -i -e "s:/usr:${ROOT}usr:" -e '8s:2\.5:2\.4:' \ ${S}/config/linux2-config.py # pass compiler flags to the scons build system BLENDER_CONFIG="${S}/user-config.py" cat <<- EOF > ${BLENDER_CONFIG} CFLAGS += '${CFLAGS}' CCFLAGS += ['${CXXFLAGS// /','}'] EOF } src_compile() { for arg in 'openal' \ 'openexr' \ 'jpeg' \ 'ffmpeg' \ 'png' \ 'nls international' \ 'blender-game gameengine'; do blend_with ${arg} done # There are lots of make options that scons does not understand local SCONSOPTS=$(extract-jobs ${MAKEOPTS}) scons ${SCONSOPTS} -h > scons.config # save a config file scons ${SCONSOPTS} || die \ "!!! Please add ${S}/scons.config when filing bugs reports to bugs.gentoo.org" cd ${S}/release/plugins emake || die } src_install() { exeinto /usr/bin/ doexe ${WORKDIR}/install/linux2/blender dodir /usr/share/${PN} exeinto /usr/$(get_libdir)/${PN}/textures doexe ${S}/release/plugins/texture/*.so exeinto /usr/$(get_libdir)/${PN}/sequences doexe ${S}/release/plugins/sequence/*.so insinto /usr/include/${PN} doins ${S}/release/plugins/include/*.h if use nls ; then mv ${WORKDIR}/install/linux2/.blender/{.Blanguages,.bfont.ttf} \ ${D}/usr/share/${PN} mv ${WORKDIR}/install/linux2/.blender/locale \ ${D}/usr/share/locale fi mv ${WORKDIR}/install/linux2/.blender/scripts ${D}/usr/share/${PN} insinto /usr/share/pixmaps doins ${FILESDIR}/${PN}.png insinto /usr/share/applications doins ${FILESDIR}/${PN}.desktop dodoc COPYING INSTALL README } pkg_preinst(){ if [ -h "${ROOT}/usr/$(get_libdir)/blender/plugins/include" ]; then rm -f ${ROOT}/usr/$(get_libdir)/blender/plugins/include fi }