From a6f431800a491c7eab9e6f98753df80602abdc82 Mon Sep 17 00:00:00 2001 From: Daniel Mierswa Date: Sun, 21 Dec 2008 05:41:17 +0100 Subject: [PATCH] it's actually mesa! --- .../x11-dri/gallium/gallium-scm.exheres-0 | 65 ------ packages/x11-dri/mesa/files/dri.pc | 10 + packages/x11-dri/mesa/files/gl.pc | 11 ++ packages/x11-dri/mesa/files/glu.pc | 11 ++ packages/x11-dri/mesa/files/libGL.la | 32 +++ packages/x11-dri/mesa/files/libGLU.la | 32 +++ packages/x11-dri/mesa/mesa-scm.exheres-0 | 185 ++++++++++++++++++ 7 files changed, 281 insertions(+), 65 deletions(-) delete mode 100644 packages/x11-dri/gallium/gallium-scm.exheres-0 create mode 100644 packages/x11-dri/mesa/files/dri.pc create mode 100644 packages/x11-dri/mesa/files/gl.pc create mode 100644 packages/x11-dri/mesa/files/glu.pc create mode 100644 packages/x11-dri/mesa/files/libGL.la create mode 100644 packages/x11-dri/mesa/files/libGLU.la create mode 100644 packages/x11-dri/mesa/mesa-scm.exheres-0 diff --git a/packages/x11-dri/gallium/gallium-scm.exheres-0 b/packages/x11-dri/gallium/gallium-scm.exheres-0 deleted file mode 100644 index e8ba208..0000000 --- a/packages/x11-dri/gallium/gallium-scm.exheres-0 +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright (c) 2008 Daniel Mierswa -# Distributed under the terms of the GNU General Public License v2 - -SCM_REPOSITORY="git://anongit.freedesktop.org/git/nouveau/mesa" -SCM_BRANCH="gallium-0.1" -require eutils multilib scm-git toolchain-funcs - -SUMMARY="nouveau mesa driver" -DESCRIPTION="The nouveau driver for the mesa OpenGL implementation." -HOMEPAGE="http://nouveau.freedesktop.org/wiki/GalliumHowto" - -LICENCES="FIXME" -SLOT="0" -PLATFORMS="~amd64 ~x86" -MYOPTIONS="platform:amd64 platform:x86" - -DEPENDENCIES=" - build+run: - x11-dri/mesa -" - -get_target() { - option platform:amd64 && TARGET="linux-dri-x86-64" - option platform:x86 && TARGET="linux-dri-x86" - [[ -z "${TARGET}" ]] \ - && die "Sorry, I don't know how to build gallium for your platform." -} - -src_prepare() { - get_target - sed \ - -e '/^ARCH_FLAGS/s: = : = -DGLX_USE_TLS :' \ - -i "configs/${TARGET}" \ - || die "sed configs/${TARGET} failed" - sed \ - -e '/^OPT_FLAGS =/s:=.*:=:' \ - -e "/^CFLAGS = /s:= := ${CFLAGS} :" \ - -e "/^CXXFLAGS = /s:= := ${CXXFLAGS} :" \ - -i "configs/linux-dri" \ - || die "sed configs/linux-dri failed" -} - -src_compile() { - get_target - emake DRI_DIRS="nouveau" "${TARGET}" \ - CC=$(tc-getCC) \ - CXX=$(tc-getCXX) -} - -src_install() { - mkdir -p "${IMAGE}/usr/$(get_libdir)/dri" || die "mkdir failed" - cp "$(get_libdir)/nouveau_dri.so" "${IMAGE}/usr/$(get_libdir)/dri" || die "cp failed" - bin/installmesa "${IMAGE}/usr/$(get_libdir)/opengl/gallium" \ - || die "bin/installmesa failed" - - cd "${IMAGE}/usr/$(get_libdir)/opengl/gallium" || die "cd failed" - mv include/{GL/*,} || die "mv failed" - rmdir include/GL || die "rmdir failed" -} - -pkg_postinst() { - einfo "If you encounter a black screen while rendering, you may have to add" - einfo " Option \"GlxVisuals\" \"all\"" - einfo "to your xorg.conf, see ${HOMEPAGE}." -} diff --git a/packages/x11-dri/mesa/files/dri.pc b/packages/x11-dri/mesa/files/dri.pc new file mode 100644 index 0000000..cfd224b --- /dev/null +++ b/packages/x11-dri/mesa/files/dri.pc @@ -0,0 +1,10 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib64 +includedir=/usr/include +dridriverdir=/usr/lib64/dri + +Name: dri +Description: Direct Rendering Infrastructure +Version: 7.2.0 +Cflags: -I${includedir} diff --git a/packages/x11-dri/mesa/files/gl.pc b/packages/x11-dri/mesa/files/gl.pc new file mode 100644 index 0000000..3e2ac12 --- /dev/null +++ b/packages/x11-dri/mesa/files/gl.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib64 +includedir=/usr/include + +Name: gl +Description: Mesa OpenGL library +Requires: libdrm >= 2.3.1 +Version: 7.2.0 +Libs: -L${libdir} -lGL +Cflags: -I${includedir} diff --git a/packages/x11-dri/mesa/files/glu.pc b/packages/x11-dri/mesa/files/glu.pc new file mode 100644 index 0000000..0536226 --- /dev/null +++ b/packages/x11-dri/mesa/files/glu.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib64 +includedir=/usr/include + +Name: glu +Description: Mesa OpenGL Utility library +Requires: gl +Version: 7.2.0 +Libs: -L${libdir} -lGLU +Cflags: -I${includedir} diff --git a/packages/x11-dri/mesa/files/libGL.la b/packages/x11-dri/mesa/files/libGL.la new file mode 100644 index 0000000..cc2fd24 --- /dev/null +++ b/packages/x11-dri/mesa/files/libGL.la @@ -0,0 +1,32 @@ +# libGL.la - a libtool library file +# Generated by ltmain.sh - GNU libtool 1.4 (1.920 2001/04/24 23:26:18) +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libGL.so.1' + +# Names of this library. +library_names='libGL.so.1.2 libGL.so.1 libGL.so' + +# The name of the static archive. +old_library='' + +# Libraries that this one depends upon. +dependency_libs=' -L/usr/${libdir} -lSM -lICE -lXmu -lXt -lXext -lXi -lX11 -ldl -lpthread ' + +# Version information for libGL. +current=3 +age=2 +revision=0 + +# Is this an already installed library? +installed=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/${libdir}' diff --git a/packages/x11-dri/mesa/files/libGLU.la b/packages/x11-dri/mesa/files/libGLU.la new file mode 100644 index 0000000..cc76b4b --- /dev/null +++ b/packages/x11-dri/mesa/files/libGLU.la @@ -0,0 +1,32 @@ +# libGLU.la - a libtool library file +# Generated by ltmain.sh - GNU libtool 1.4 (1.920 2001/04/24 23:26:18) +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libGLU.so.1' + +# Names of this library. +library_names='libGLU.so.1.3 libGLU.so.1 libGLU.so' + +# The name of the static archive. +old_library='' + +# Libraries that this one depends upon. +dependency_libs=' -L/usr/lib -lGL -lSM -lICE -lXmu -lXt -lXext -lXi -lX11 -ldl -lpthread ' + +# Version information for libGLU. +current=4 +age=3 +revision=0 + +# Is this an already installed library? +installed=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/lib' diff --git a/packages/x11-dri/mesa/mesa-scm.exheres-0 b/packages/x11-dri/mesa/mesa-scm.exheres-0 new file mode 100644 index 0000000..5ea43ca --- /dev/null +++ b/packages/x11-dri/mesa/mesa-scm.exheres-0 @@ -0,0 +1,185 @@ +# Copyright (c) 2008 Daniel Mierswa +# Distributed under the terms of the GNU General Public License v2 +# based on mesa.exlib in x11.git + +SCM_REPOSITORY="git://anongit.freedesktop.org/git/nouveau/mesa" +SCM_BRANCH="gallium-0.1" +require flag-o-matic multilib versionator scm-git + +OPENGL_DIR="xorg-x11" + +SUMMARY="Mesa's OpenGL library" +HOMEPAGE="http://mesa3d.sourceforge.net/" + +LICENCES="FIXME" +SLOT="0" + +PLATFORMS="~amd64" + +video_drivers="intel mach64 mga nouveau r128 radeon s3virge savage sis sunffb tdfx trident via" + +MYOPTIONS="examples motif python xcb +platform: x86 amd64 +video_drivers: ${video_drivers}" + +DEPENDENCIES=" + build: + dev-util/pkg-config + x11-proto/glproto + x11-proto/inputproto + x11-proto/xextproto + x11-proto/xf86driproto + x11-proto/xf86vidmodeproto + x11-utils/makedepend + build+run: + x11-dri/eclectic-opengl + !x11-dri/mesa-lib + !x11-dri/mesa-demos + >=x11-dri/libdrm-2.3.1 + x11-libs/libICE + x11-libs/libX11[xcb?] + >=x11-libs/libXdamage-1.1.1 + x11-libs/libXext + x11-libs/libXi + x11-libs/libXmu + x11-libs/libXxf86vm + xcb? ( x11-libs/libxcb ) + run: + python? ( dev-lang/python ) +" + +determine_target() { + TARGET= + option platform:amd64 && TARGET="linux-dri-x86-64" + option platform:x86 && TARGET="linux-dri-x86" + + [[ -z "${TARGET}" ]] \ + && die "I don't know how to build mesa for your platform." +} + +driver_enable() { + if option ${1}; then + shift + DRI_DRIVERS="${DRI_DRIVERS} $@" + fi +} + +add_config() { + echo ${@} >> "configs/${TARGET}" || die "echo >> configs/${TARGET} failed" +} + +src_prepare() { + default + + determine_target + rm -f "${WORK}"/include/GL/glut*h + + driver_enable video_drivers:intel i810,i915,i965 + driver_enable video_drivers:mach64 mach64 + driver_enable video_drivers:mga mga + driver_enable video_drivers:nouveau nouveau + driver_enable video_drivers:r128 r128 + driver_enable video_drivers:radeon radeon,r200,r300 + driver_enable video_drivers:s3virge s3v + driver_enable video_drivers:savage savage + driver_enable video_drivers:sis sis + driver_enable video_drivers:sunffb ffb + driver_enable video_drivers:tdfx tdfx + driver_enable video_drivers:trident trident + driver_enable video_drivers:via unichrome + + find src/mesa/drivers/dri -name *.[hc] -exec egrep -l "\#define\W+DO_DEBUG\W+1" {} \; | \ + xargs sed -i -re "s/\#define\W+DO_DEBUG\W+1/\#define DO_DEBUG 0/" ; + + sed \ + -e "/^LIB_DIR = /s:lib:$(get_libdir):" \ + -e '/^SRC_DIRS = /s:glut/glx::' \ + -e '/^INSTALL_DIR = /s:/usr/local:/usr:' \ + -e '/^DRI_DRIVER_INSTALL_DIR = /s:lib:$(LIB_DIR):' \ + -i configs/default \ + || die "sed configs/default failed" + + if ! option examples ; then + sed \ + -e '/^PROGRAM_DIRS = /s:demos redbook samples glsl::' \ + -i configs/default \ + || die "sed configs/default failed (examples)" + fi + + if option motif ; then + add_config 'GLW_LIB_DEPS += -lXm' + add_config 'GLW_SOURCES += GLwMDrawA.c' + fi + + if option xcb ; then + add_config 'DEFINES += -DUSE_XCB' + for pkg in xcb x11-xcb xcb-glx ; do + add_config "X11_INCLUDES += $(pkg-config --cflags-only-I ${pkg})" + add_config "GL_LIB_DEPS += $(pkg-config --libs ${pkg})" + done + fi + + add_config "EXTRA_LIB_PATH = $(pkg-config --libs-only-L x11)" + add_config 'ARCH_FLAGS += -DGLX_USE_TLS' + add_config "CFLAGS += ${CFLAGS}" + add_config "CXXFLAGS += ${CXXFLAGS}" + add_config "DRI_DIRS = ${DRI_DRIVERS}" + + emake "${TARGET}" \ + OPT_FLAGS="" \ + CC=$(tc-getCC) \ + CXX=$(tc-getCXX) +} + +src_install() { + for bin in $(find "${WORK}/progs" -type f -perm -u=x) ; do + dobin "${bin}" + done + + cd "${IMAGE}" || die "cd failed (1)" + rm ./usr/bin/glslnoise.c || die "rm failed (1)" + + if ! option python ; then + rm ./usr/bin/api_speed.py || die "rm failed (2)" + else + sed \ + -e 's:env python2:env python:' \ + -i ./usr/bin/api_speed.py \ + || die "sed ./usr/bin/api_speed.py failed" + fi + + mkdir -p "${IMAGE}/tmp" || die "mkdir failed (1)" + cd "${WORK}" || die "cd failed (2)" + bin/installmesa "${IMAGE}/tmp" || die "bin/installmesa failed" + + local opengl_path="/usr/$(get_libdir)/opengl/${OPENGL_DIR}" + + dodir "${opengl_path}/"{lib,include} + dodir "/usr/$(get_libdir)" + dodir /usr/include + + cd "${IMAGE}" || die "cd failed (3)" + mv ./tmp/lib/libGL.so* "${IMAGE}/${opengl_path}/lib" \ + || die "mv failed (1)" + mv ./tmp/lib/* "${IMAGE}/usr/$(get_libdir)" \ + || die "mv failed (2)" + mv ./tmp/include/GL/gl{,x}{,ext}.h "${IMAGE}/${opengl_path}/include" \ + || die "mv failed (3)" + mv ./tmp/include/* "${IMAGE}/usr/include" \ + || die "mv failed (4)" + + rm -rf "${IMAGE}/tmp" || die "rm -rf failed" + + insinto "/usr/$(get_libdir)/dri" + doins "${WORK}/$(get_libdir)/"*_dri.so + + insinto "/usr/$(get_libdir)/pkgconfig" + doins "${FILES}/"*.pc + + insinto "/usr/$(get_libdir)" + doins "${FILES}/"*.la +} + +pkg_postinst() { + eclectic opengl set --use-old xorg-x11 +}