diff options
Diffstat (limited to 'media-video/nvidia-glx/nvidia-glx-1.0.7676-r1.ebuild')
-rw-r--r-- | media-video/nvidia-glx/nvidia-glx-1.0.7676-r1.ebuild | 160 |
1 files changed, 106 insertions, 54 deletions
diff --git a/media-video/nvidia-glx/nvidia-glx-1.0.7676-r1.ebuild b/media-video/nvidia-glx/nvidia-glx-1.0.7676-r1.ebuild index 41f50a57f412..6eb4d2eb0d19 100644 --- a/media-video/nvidia-glx/nvidia-glx-1.0.7676-r1.ebuild +++ b/media-video/nvidia-glx/nvidia-glx-1.0.7676-r1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-glx/nvidia-glx-1.0.7676-r1.ebuild,v 1.4 2005/09/05 23:18:42 eradicator Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-glx/nvidia-glx-1.0.7676-r1.ebuild,v 1.5 2005/10/28 10:06:41 flameeyes Exp $ inherit eutils multilib versionator @@ -9,11 +9,13 @@ AMD64_PKG_V="pkg2" NV_V="${PV/1.0./1.0-}" X86_NV_PACKAGE="NVIDIA-Linux-x86-${NV_V}" AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${NV_V}" +X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${NV_V}" DESCRIPTION="NVIDIA X11 driver and GLX libraries" HOMEPAGE="http://www.nvidia.com/" SRC_URI="x86? ( ftp://download.nvidia.com/XFree86/Linux-x86/${NV_V}/${X86_NV_PACKAGE}-${X86_PKG_V}.run ) - amd64? ( http://download.nvidia.com/XFree86/Linux-x86_64/${NV_V}/${AMD64_NV_PACKAGE}-${AMD64_PKG_V}.run )" + amd64? ( http://download.nvidia.com/XFree86/Linux-x86_64/${NV_V}/${AMD64_NV_PACKAGE}-${AMD64_PKG_V}.run ) + x86-fbsd? ( http://download.nvidia.com/freebsd/${NV_V}/${X86_FBSD_NV_PACKAGE}.tar.gz )" LICENSE="NVIDIA" SLOT="0" @@ -26,21 +28,30 @@ IUSE="dlloader" RDEPEND="|| ( virtual/x11 >=x11-base/xorg-server-0.99.1-r7 ) || ( virtual/x11 media-libs/mesa ) app-admin/eselect-opengl - ~media-video/nvidia-kernel-${PV} + kernel_linux? ( ~media-video/nvidia-kernel-${PV} ) !app-emulation/emul-linux-x86-nvidia" +# This should be added to have full dependencies for Gentoo FreeBSD +# but can't be added until the profiles are in main portage (for repoman) +# kernel_FreeBSD? ( ~media-video/nvidia-freebsd-${PV} ) PROVIDE="virtual/opengl" export _POSIX2_VERSION="199209" if use x86; then - PKG_V="${X86_PKG_V}" + PKG_V="-${X86_PKG_V}" NV_PACKAGE="${X86_NV_PACKAGE}" elif use amd64; then - PKG_V="${AMD64_PKG_V}" + PKG_V="-${AMD64_PKG_V}" NV_PACKAGE="${AMD64_NV_PACKAGE}" +elif use x86-fbsd; then + PKG_V="" + NV_PACKAGE="${X86_FBSD_NV_PACKAGE}" fi -S="${WORKDIR}/${NV_PACKAGE}-${PKG_V}" +S="${WORKDIR}/${NV_PACKAGE}${PKG_V}" + +# On BSD userland it wants real make command +MAKE="make" check_xfree() { # This isn't necessary, true. But its about time people got the idea. @@ -61,13 +72,21 @@ pkg_setup() { src_unpack() { local NV_PATCH_PREFIX="${FILESDIR}/${PV}/NVIDIA_glx-${PV}" - cd ${WORKDIR} - bash ${DISTDIR}/${NV_PACKAGE}-${PKG_V}.run --extract-only + if ! use x86-fbsd; then + cd ${WORKDIR} + bash ${DISTDIR}/${NV_PACKAGE}${PKG_V}.run --extract-only + else + unpack ${A} + fi # Patchs go below here, add breif description cd ${S} - # nVidia wants us to use nvidia-installer, removing warning. - epatch ${NV_PATCH_PREFIX//$(get_version_component_range 3)/6629}-makefile.patch + if ! use x86-fbsd; then + # nVidia wants us to use nvidia-installer, removing warning. + epatch ${NV_PATCH_PREFIX//$(get_version_component_range 3)/6629}-makefile.patch + else + cd ${S}/doc + fi # Use the correct defines to make gtkglext build work epatch ${NV_PATCH_PREFIX//$(get_version_component_range 3)/6629}-defines.patch # Use some more sensible gl headers and make way for new glext.h @@ -102,15 +121,35 @@ src_install() { is_final_abi || return 0 - # Docs, remove nvidia-settings as provided by media-video/nvidia-settings - rm -f usr/share/doc/nvidia-settings* - dodoc usr/share/doc/* + if ! use x86-fbsd; then + # Docs, remove nvidia-settings as provided by media-video/nvidia-settings + rm -f usr/share/doc/nvidia-settings* + dodoc usr/share/doc/* + else + dodoc doc/README doc/README.Linux doc/XF86Config.sample + fi # nVidia want bug reports using this script exeinto /usr/bin doexe usr/bin/nvidia-bug-report.sh } +# Install nvidia library: +# the first parameter is the place where to install it +# the second paramis the base name of the library +# the third parameter is the provided soversion +donvidia() { + dodir $1 + exeinto $1 + + libname=$(basename $2) + + doexe $2.$3 + dosym ${libname}.$3 $1/${libname} + + [[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1 +} + src_install-libs() { local pkglibdir=lib local inslibdir=$(get_libdir) @@ -122,78 +161,91 @@ src_install-libs() { pkglibdir=lib32 fi + local usrpkglibdir=usr/${pkglibdir} + local libdir=usr/X11R6/${pkglibdir} + local drvdir=${libdir}/modules/drivers + local extdir=${libdir}/modules/extensions + local incdir=usr/include/GL + local sover=${PV} local NV_ROOT="/usr/${inslibdir}/opengl/nvidia" local NO_TLS_ROOT="${NV_ROOT}/no-tls" local TLS_ROOT="${NV_ROOT}/tls" local X11_LIB_DIR="/usr/${inslibdir}/xorg" + if use x86-fbsd; then + # on FreeBSD everything is on obj/ + pkglibdir=obj + usrpkglibdir=obj + x11pkglibdir=obj + drvdir=obj + extdir=obj + + # don't ask me why the headers are there.. glxext.h is missing + incdir=doc + + # on FreeBSD it has just .1 suffix + sover=1 + fi + # The GLX libraries - exeinto ${NV_ROOT}/lib - doexe usr/${pkglibdir}/libGL.so.${PV} - doexe usr/${pkglibdir}/libGLcore.so.${PV} - dosym libGL.so.${PV} ${NV_ROOT}/lib/libGL.so - dosym libGL.so.${PV} ${NV_ROOT}/lib/libGL.so.1 - dosym libGLcore.so.${PV} ${NV_ROOT}/lib/libGLcore.so - dosym libGLcore.so.${PV} ${NV_ROOT}/lib/libGLcore.so.1 + donvidia ${NV_ROOT}/lib ${usrpkglibdir}/libGL.so ${sover} + donvidia ${NV_ROOT}/lib ${usrpkglibdir}/libGLcore.so ${sover} dodir ${NO_TLS_ROOT} - exeinto ${NO_TLS_ROOT} - doexe usr/${pkglibdir}/libnvidia-tls.so.${PV} - dosym libnvidia-tls.so.${PV} ${NO_TLS_ROOT}/libnvidia-tls.so - dosym libnvidia-tls.so.${PV} ${NO_TLS_ROOT}/libnvidia-tls.so.1 + donvidia ${NO_TLS_ROOT} ${usrpkglibdir}/libnvidia-tls.so ${sover} - dodir ${TLS_ROOT} - exeinto ${TLS_ROOT} - doexe usr/${pkglibdir}/tls/libnvidia-tls.so.${PV} - dosym libnvidia-tls.so.${PV} ${TLS_ROOT}/libnvidia-tls.so - dosym libnvidia-tls.so.${PV} ${TLS_ROOT}/libnvidia-tls.so.1 + if ! use x86-fbsd; then + donvidia ${TLS_ROOT} ${usrpkglibdir}/tls/libnvidia-tls.so ${sover} + fi if want_tls ; then dosym ../tls/libnvidia-tls.so ${NV_ROOT}/lib dosym ../tls/libnvidia-tls.so.1 ${NV_ROOT}/lib - dosym ../tls/libnvidia-tls.so.${PV} ${NV_ROOT}/lib + dosym ../tls/libnvidia-tls.so.${sover} ${NV_ROOT}/lib else dosym ../no-tls/libnvidia-tls.so ${NV_ROOT}/lib dosym ../no-tls/libnvidia-tls.so.1 ${NV_ROOT}/lib - dosym ../no-tls/libnvidia-tls.so.${PV} ${NV_ROOT}/lib + dosym ../no-tls/libnvidia-tls.so.${sover} ${NV_ROOT}/lib fi - # Not sure whether installing the .la file is neccessary; - # this is adopted from the `nvidia' ebuild - local ver1=$(get_version_component_range 1) - local ver2=$(get_version_component_range 2) - local ver3=$(get_version_component_range 3) - sed -e "s:\${PV}:${PV}:" \ - -e "s:\${ver1}:${ver1}:" \ - -e "s:\${ver2}:${ver2}:" \ - -e "s:\${ver3}:${ver3}:" \ - -e "s:\${libdir}:${inslibdir}:" \ - ${FILESDIR}/libGL.la-r2 > ${D}/${NV_ROOT}/lib/libGL.la + if ! use x86-fbsd; then + # Not sure whether installing the .la file is neccessary; + # this is adopted from the `nvidia' ebuild + local ver1=$(get_version_component_range 1) + local ver2=$(get_version_component_range 2) + local ver3=$(get_version_component_range 3) + sed -e "s:\${PV}:${PV}:" \ + -e "s:\${ver1}:${ver1}:" \ + -e "s:\${ver2}:${ver2}:" \ + -e "s:\${ver3}:${ver3}:" \ + -e "s:\${libdir}:${inslibdir}:" \ + ${FILESDIR}/libGL.la-r2 > ${D}/${NV_ROOT}/lib/libGL.la + fi exeinto ${X11_LIB_DIR}/modules/drivers - # The below section was changed to fix bug #96514 and bug #91101. + if use dlloader; then - [[ -f usr/X11R6/${pkglibdir}/modules/drivers/nvidia_drv.so ]] && \ - doexe usr/X11R6/${pkglibdir}/modules/drivers/nvidia_drv.so + [[ -f ${drvdir}/nvidia_drv.so ]] && \ + doexe ${drvdir}/nvidia_drv.so else - [[ -f usr/X11R6/${pkglibdir}/modules/drivers/nvidia_drv.o ]] && \ - doexe usr/X11R6/${pkglibdir}/modules/drivers/nvidia_drv.o + [[ -f ${drvdir}/nvidia_drv.o ]] && \ + doexe ${drvdir}/nvidia_drv.o fi insinto ${X11_LIB_DIR} - [[ -f usr/X11R6/${pkglibdir}/libXvMCNVIDIA.a ]] && \ - doins usr/X11R6/${pkglibdir}/libXvMCNVIDIA.a + [[ -f ${libdir}/libXvMCNVIDIA.a ]] && \ + doins ${libdir}/libXvMCNVIDIA.a exeinto ${X11_LIB_DIR} - [[ -f usr/X11R6/${pkglibdir}/libXvMCNVIDIA.so.${PV} ]] && \ - doexe usr/X11R6/${pkglibdir}/libXvMCNVIDIA.so.${PV} + [[ -f ${libdir}/libXvMCNVIDIA.so.${PV} ]] && \ + doexe ${libdir}/libXvMCNVIDIA.so.${PV} exeinto ${NV_ROOT}/extensions - [[ -f usr/X11R6/${pkglibdir}/modules/extensions/libglx.so.${PV} ]] && \ - newexe usr/X11R6/${pkglibdir}/modules/extensions/libglx.so.${PV} libglx.so + [[ -f ${extdir}/libglx.so.${sover} ]] && \ + newexe ${extdir}/libglx.so.${sover} libglx.so # Includes insinto ${NV_ROOT}/include - doins usr/include/GL/*.h + doins ${incdir}/*.h } pkg_preinst() { |