From 9e7046296bbd307f7c3de4654c87d2a056a86391 Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Sat, 21 Mar 2015 22:38:49 +0000 Subject: [PATCH] mesa: added recipes for 10.3.7 and 10.4.7 * enable 10.2.9 for x86 * 10.3.7 and 10.4.7 tested on x86 with llvm 3.5.1 * GLTeapot with 10.4.7 produces a blue teapot (instead of red) --- sys-libs/mesa/mesa-10.2.9.recipe | 2 +- sys-libs/mesa/mesa-10.3.7.recipe | 152 +++++++++++++++++++++ sys-libs/mesa/mesa-10.4.7.recipe | 152 +++++++++++++++++++++ sys-libs/mesa/patches/mesa-10.4.7.patchset | 21 +++ 4 files changed, 326 insertions(+), 1 deletion(-) create mode 100644 sys-libs/mesa/mesa-10.3.7.recipe create mode 100644 sys-libs/mesa/mesa-10.4.7.recipe create mode 100644 sys-libs/mesa/patches/mesa-10.4.7.patchset diff --git a/sys-libs/mesa/mesa-10.2.9.recipe b/sys-libs/mesa/mesa-10.2.9.recipe index 6e8d3f584..0bbe7ef29 100644 --- a/sys-libs/mesa/mesa-10.2.9.recipe +++ b/sys-libs/mesa/mesa-10.2.9.recipe @@ -11,7 +11,7 @@ LICENSE="MIT" SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/10.2.9/MesaLib-10.2.9.tar.bz2" CHECKSUM_SHA256="f6031f8b7113a92325b60635c504c510490eebb2e707119bbff7bd86aa34657d" REVISION="1" -ARCHITECTURES="?x86 ?x86_64 ?arm ?ppc" +ARCHITECTURES="x86 ?x86_64 ?arm ?ppc" if [ $effectiveTargetArchitecture != x86_gcc2 ]; then # x86_gcc2 is fine as primary target architecture as long as we're building # for a different secondary architecture. diff --git a/sys-libs/mesa/mesa-10.3.7.recipe b/sys-libs/mesa/mesa-10.3.7.recipe new file mode 100644 index 000000000..278106894 --- /dev/null +++ b/sys-libs/mesa/mesa-10.3.7.recipe @@ -0,0 +1,152 @@ +SUMMARY="Multi-platform GL implementation" +DESCRIPTION=" +Mesa is an open-source implementation of the OpenGL specification. The OpenGL \ +specification documents a system for rendering interactive 3D graphics. +Mesa fills the role of the Haiku OpenGL kit providing 3D rendering to Haiku \ +applications. +" +HOMEPAGE="http://www.mesa3d.org/" +COPYRIGHT="1999-2015 Brian Paul All Rights Reserved." +LICENSE="MIT" +SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/$portVersion/MesaLib-$portVersion.tar.bz2" +CHECKSUM_SHA256="43c6ced15e237cbb21b3082d7c0b42777c50c1f731d0d4b5efb5231063fb6a5b" +REVISION="1" +ARCHITECTURES="?x86 ?x86_64 ?arm ?ppc" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES ?x86_gcc2" +fi +SECONDARY_ARCHITECTURES="?x86" + +PROVIDES=" + mesa$secondaryArchSuffix = $portVersion compat >= 10.0 + lib:libGL$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libstdc++$secondaryArchSuffix + lib:libgcc_s$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + " +BUILD_PREREQUIRES=" + libxml2_python + llvm${secondaryArchSuffix} + cmd:bison + cmd:find + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:scons + cmd:sed + " + +SOURCE_DIR="Mesa-$portVersion" +#PATCHES="mesa-$portVersion.patchset" + +BUILD() +{ + if [ -n "$secondaryArchSuffix" ]; then + export HAIKU_SECONDARY_ARCH="$effectiveTargetArchitecture" + fi + scons $jobArgs build=release + #scons $jobArgs build=debug +} + +INSTALL() +{ + mesaBuildDir=build/haiku-$effectiveTargetArchitecture + + # libGL.so makes up the core of our OpenGL kit + mkdir -p $libDir + cp $(find $mesaBuildDir -name 'libGL.so') $libDir + mkdir -p $developLibDir + symlinkRelative -s $libDir/libGL.so $developLibDir + + # Our rendering add-ons + mkdir -p $addOnsDir/opengl + cp $(find $mesaBuildDir -name 'libswrast.so') \ + "$addOnsDir/opengl/Software Rasterizer" + cp $(find $mesaBuildDir -name 'libswpipe.so') \ + "$addOnsDir/opengl/Software Pipe" + + # Set some nice version info + setversion "$libDir/libGL.so" -app 10 3 7 -long "Haiku OpenGL kit" + setversion "$addOnsDir/opengl/Software Rasterizer" -app 10 3 7 -long "Mesa software rasterization renderer" + setversion "$addOnsDir/opengl/Software Pipe" -app 10 3 7 -long "Gallium LLVM software pipe renderer" + + # OpenGL Kit + mkdir -p $includeDir/os/opengl + cp ./include/HaikuGL/OpenGLKit.h $includeDir/os/ + cp ./include/HaikuGL/GLView.h $includeDir/os/opengl/ + cp ./include/HaikuGL/GLRenderer.h $includeDir/os/opengl/ + + # Standard GL headers + mkdir -p $includeDir/GL + cp ./include/GL/gl.h $includeDir/GL/ + cp ./include/GL/gl_mangle.h $includeDir/GL/ + cp ./include/GL/glext.h $includeDir/GL/ + + # Create GL symlink in opengl kit + symlinkRelative -s $includeDir/GL $includeDir/os/opengl/GL + + # devel package + packageEntries devel \ + $developDir + + # swpipe renderer package + packageEntries swpipe \ + "$addOnsDir/opengl/Software Pipe" + + # swrast renderer package + packageEntries swrast \ + "$addOnsDir/opengl/Software Rasterizer" +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + mesa${secondaryArchSuffix}_devel = $portVersion + devel:libGL$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + mesa$secondaryArchSuffix == $portVersion base + " + +# ===== Mesa OpenGL Add-ons ================================================== +# ----- swrast package ------------------------------------------------------- + +SUMMARY_swrast="Mesa software rasterization renderer" +DESCRIPTION_swrast="This 3D BGLRenderer add-on provides Mesa software \ +rasterization on Haiku systems. Software rasterization performs all 3D \ +rendering on the systems CPU and doesn't require any specialized hardware. \ +Software rasterization is generally considered a fallback 3D rendering method \ +as performance is limited. +" +PROVIDES_swrast=" + mesa${secondaryArchSuffix}_swrast = $portVersion + " +REQUIRED_swrast=" + mesa$secondaryArchSuffix == $portVersion base + " + +# ===== Gallium OpenGL Add-ons =============================================== +# ----- swpipe package ------------------------------------------------------- + +SUMMARY_swpipe="Mesa LLVM enhanced Gallium software pipe renderer" +DESCRIPTION_swpipe="This 3D BGLRenderer add-on provides Gallium LLVM enhanced \ +software rendering. Software pipe rendering performs all 3D rendering on the \ +systems CPU and doesn't require any specialized hardware. The usage of LLVM \ +over traditional rasterization gives this renderer a boost in performance. +Gallium software pipe rendering is in an extremely early state as of this \ +version of Mesa, and may not function as expected. +" +PROVIDES_swpipe=" + mesa${secondaryArchSuffix}_swpipe = $portVersion + " +REQUIRED_swpipe=" + mesa$secondaryArchSuffix == $portVersion base + " diff --git a/sys-libs/mesa/mesa-10.4.7.recipe b/sys-libs/mesa/mesa-10.4.7.recipe new file mode 100644 index 000000000..c4e3e8acb --- /dev/null +++ b/sys-libs/mesa/mesa-10.4.7.recipe @@ -0,0 +1,152 @@ +SUMMARY="Multi-platform GL implementation" +DESCRIPTION=" +Mesa is an open-source implementation of the OpenGL specification. The OpenGL \ +specification documents a system for rendering interactive 3D graphics. +Mesa fills the role of the Haiku OpenGL kit providing 3D rendering to Haiku \ +applications. +" +HOMEPAGE="http://www.mesa3d.org/" +COPYRIGHT="1999-2015 Brian Paul All Rights Reserved." +LICENSE="MIT" +SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/$portVersion/MesaLib-$portVersion.tar.bz2" +CHECKSUM_SHA256="2c351c98671f9a7ab3fd9c601bb7a255801b1580f5dd0992639f99152801b0d2" +REVISION="1" +ARCHITECTURES="?x86 ?x86_64 ?arm ?ppc" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES ?x86_gcc2" +fi +SECONDARY_ARCHITECTURES="?x86" + +PROVIDES=" + mesa$secondaryArchSuffix = $portVersion compat >= 10.0 + lib:libGL$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libstdc++$secondaryArchSuffix + lib:libgcc_s$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + " +BUILD_PREREQUIRES=" + libxml2_python + llvm${secondaryArchSuffix} + cmd:bison + cmd:find + cmd:flex + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:scons + cmd:sed + " + +SOURCE_DIR="Mesa-$portVersion" +PATCHES="mesa-$portVersion.patchset" + +BUILD() +{ + if [ -n "$secondaryArchSuffix" ]; then + export HAIKU_SECONDARY_ARCH="$effectiveTargetArchitecture" + fi + scons $jobArgs build=release + #scons $jobArgs build=debug +} + +INSTALL() +{ + mesaBuildDir=build/haiku-$effectiveTargetArchitecture + + # libGL.so makes up the core of our OpenGL kit + mkdir -p $libDir + cp $(find $mesaBuildDir -name 'libGL.so') $libDir + mkdir -p $developLibDir + symlinkRelative -s $libDir/libGL.so $developLibDir + + # Our rendering add-ons + mkdir -p $addOnsDir/opengl + cp $(find $mesaBuildDir -name 'libswrast.so') \ + "$addOnsDir/opengl/Software Rasterizer" + cp $(find $mesaBuildDir -name 'libswpipe.so') \ + "$addOnsDir/opengl/Software Pipe" + + # Set some nice version info + setversion "$libDir/libGL.so" -app 10 4 7 -long "Haiku OpenGL kit" + setversion "$addOnsDir/opengl/Software Rasterizer" -app 10 4 7 -long "Mesa software rasterization renderer" + setversion "$addOnsDir/opengl/Software Pipe" -app 10 4 7 -long "Gallium LLVM software pipe renderer" + + # OpenGL Kit + mkdir -p $includeDir/os/opengl + cp ./include/HaikuGL/OpenGLKit.h $includeDir/os/ + cp ./include/HaikuGL/GLView.h $includeDir/os/opengl/ + cp ./include/HaikuGL/GLRenderer.h $includeDir/os/opengl/ + + # Standard GL headers + mkdir -p $includeDir/GL + cp ./include/GL/gl.h $includeDir/GL/ + cp ./include/GL/gl_mangle.h $includeDir/GL/ + cp ./include/GL/glext.h $includeDir/GL/ + + # Create GL symlink in opengl kit + symlinkRelative -s $includeDir/GL $includeDir/os/opengl/GL + + # devel package + packageEntries devel \ + $developDir + + # swpipe renderer package + packageEntries swpipe \ + "$addOnsDir/opengl/Software Pipe" + + # swrast renderer package + packageEntries swrast \ + "$addOnsDir/opengl/Software Rasterizer" +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + mesa${secondaryArchSuffix}_devel = $portVersion + devel:libGL$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + mesa$secondaryArchSuffix == $portVersion base + " + +# ===== Mesa OpenGL Add-ons ================================================== +# ----- swrast package ------------------------------------------------------- + +SUMMARY_swrast="Mesa software rasterization renderer" +DESCRIPTION_swrast="This 3D BGLRenderer add-on provides Mesa software \ +rasterization on Haiku systems. Software rasterization performs all 3D \ +rendering on the systems CPU and doesn't require any specialized hardware. \ +Software rasterization is generally considered a fallback 3D rendering method \ +as performance is limited. +" +PROVIDES_swrast=" + mesa${secondaryArchSuffix}_swrast = $portVersion + " +REQUIRED_swrast=" + mesa$secondaryArchSuffix == $portVersion base + " + +# ===== Gallium OpenGL Add-ons =============================================== +# ----- swpipe package ------------------------------------------------------- + +SUMMARY_swpipe="Mesa LLVM enhanced Gallium software pipe renderer" +DESCRIPTION_swpipe="This 3D BGLRenderer add-on provides Gallium LLVM enhanced \ +software rendering. Software pipe rendering performs all 3D rendering on the \ +systems CPU and doesn't require any specialized hardware. The usage of LLVM \ +over traditional rasterization gives this renderer a boost in performance. +Gallium software pipe rendering is in an extremely early state as of this \ +version of Mesa, and may not function as expected. +" +PROVIDES_swpipe=" + mesa${secondaryArchSuffix}_swpipe = $portVersion + " +REQUIRED_swpipe=" + mesa$secondaryArchSuffix == $portVersion base + " diff --git a/sys-libs/mesa/patches/mesa-10.4.7.patchset b/sys-libs/mesa/patches/mesa-10.4.7.patchset new file mode 100644 index 000000000..835b2d47c --- /dev/null +++ b/sys-libs/mesa/patches/mesa-10.4.7.patchset @@ -0,0 +1,21 @@ +From a295b3a477db9016698d30003a5983a033729747 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sat, 21 Mar 2015 22:25:11 +0000 +Subject: Haiku: add missing include + + +diff --git a/src/gallium/state_trackers/hgl/SConscript b/src/gallium/state_trackers/hgl/SConscript +index 82a0ce0..d2389c8 100644 +--- a/src/gallium/state_trackers/hgl/SConscript ++++ b/src/gallium/state_trackers/hgl/SConscript +@@ -9,6 +9,7 @@ env.Append(CPPPATH = [ + '#/src', + '#/src/mapi', + '#/src/mesa', ++ '#/include/HaikuGL', + ]) + + sources = [ +-- +1.8.3.4 +