diff --git a/media-libs/glew/glew-1.10.0.recipe b/media-libs/glew/glew-1.10.0.recipe index 8de973375..cbf25aeff 100644 --- a/media-libs/glew/glew-1.10.0.recipe +++ b/media-libs/glew/glew-1.10.0.recipe @@ -5,65 +5,81 @@ C/C++ extension loading library. GLEW provides efficient run-time mechanisms \ for determining which OpenGL extensions are supported on the target platform. " LICENSE="BSD (3-clause)" -COPYRIGHT="2007 The Kronos Group Inc. - 2002-2007 Milan Ikits - 2002-2007 Marcelo E. Magallon - 2002 Lev Povalahev" -HOMEPAGE="http://glew.sourceforge.net" +COPYRIGHT=" + 2007 The Kronos Group Inc. + 2002-2007 Milan Ikits + 2002-2007 Marcelo E. Magallon + 2002 Lev Povalahev + " +HOMEPAGE="http://glew.sourceforge.net" SRC_URI="http://downloads.sourceforge.net/project/glew/glew/${portVersion}/glew-${portVersion}.tgz" -REVISION="1" +REVISION="4" +CHECKSUM_SIZE="567605" CHECKSUM_MD5="2f09e5e6cb1b9f3611bcac79bc9c2d5d" +CHECKSUM_RMD160="cd9772b37e4f48fe2e25a55303eb89363ce91467" +CHECKSUM_SHA512="0c998fda9fe01c9296a3453966c0449c9968f4f5f989065ca65f0da3830ae8d805699d0ee0362c3b18765420222ba18842b9db20986212afceb36c971ae1bdca" ARCHITECTURES="x86 ?x86_gcc2 ?x86_64" +SECONDARY_ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64" -PATCHES="glew-1.10.0.patch" +PATCHES="glew-1.10.0.patchset" PROVIDES=" glew$secondaryArchSuffix = $portVersion - lib:libGLEW + lib:libGLEW$secondaryArchSuffix = $portVersion " - REQUIRES=" - haiku$secondaryArchSuffix >= $haikuVersion - lib:libGL + haiku$secondaryArchSuffix >= $haikuVersion + lib:libGL$secondaryArchSuffix " - BUILD_REQUIRES=" - devel:libGL - " - + devel:libGL$secondaryArchSuffix + " BUILD_PREREQUIRES=" haiku${secondaryArchSuffix}_devel >= $haikuVersion - cmd:aclocal - cmd:autoconf - cmd:automake cmd:gcc$secondaryArchSuffix + cmd:g++$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:make " -SOURCE_DIR="glew-${portVersion}" - BUILD() { - make GLEW_DEST=$prefix BINDIR=$binDir LIBDIR=$libDir INCDIR=$includeDir + make $jobArgs GLEW_DEST=$prefix BINDIR=$binDir LIBDIR=$libDir INCDIR=$includeDir } INSTALL() { make install GLEW_DEST=$prefix BINDIR=$binDir LIBDIR=$libDir INCDIR=$includeDir + make install.bin GLEW_DEST=$prefix BINDIR=$binDir LIBDIR=$libDir INCDIR=$includeDir + prepareInstalledDevelLib libGLEW fixPkgconfig - packageEntries devel \ - $developDir + packageEntries devel $developDir + packageEntries util $binDir } # ----- devel package ------------------------------------- PROVIDES_devel=" - libGLEW${secondaryArchSuffix}_devel = $portVersion - " + glew${secondaryArchSuffix}_devel = $portVersion + devel:libGLEW$secondaryArchSuffix = $portVersion + " REQUIRES_devel=" - libGLEW$secondaryArchSuffix == $portVersion base - " + glew$secondaryArchSuffix == $portVersion base + " + +# ----- util package -------------------------------------- +PROVIDES_util=" + glew${secondaryArchSuffix}_util = $portVersion + cmd:glewinfo$secondaryArchSuffix +# cmd:visualinfo$secondaryArchSuffix + " + +REQUIRES_util=" + glew$secondaryArchSuffix == $portVersion base + haiku$secondaryArchSuffix >= $haikuVersion + lib:libGL$secondaryArchSuffix + lib:libGLEW$secondaryArchSuffix + " diff --git a/media-libs/glew/patches/glew-1.10.0.patch b/media-libs/glew/patches/glew-1.10.0.patchset similarity index 55% rename from media-libs/glew/patches/glew-1.10.0.patch rename to media-libs/glew/patches/glew-1.10.0.patchset index 9ec82005f..54c2fa3ef 100644 --- a/media-libs/glew/patches/glew-1.10.0.patch +++ b/media-libs/glew/patches/glew-1.10.0.patchset @@ -1,9 +1,61 @@ -diff -Naur glew-1.10.0/config/Makefile.haiku glew-1.10.0-haiku/config/Makefile.haiku ---- glew-1.10.0/config/Makefile.haiku 1970-01-01 00:00:00.000000000 +0000 -+++ glew-1.10.0-haiku/config/Makefile.haiku 2013-10-30 22:18:49.161480704 +0000 -@@ -0,0 +1,29 @@ +From 9e62b8084f970f94b9df86f0764284b042bf822b Mon Sep 17 00:00:00 2001 +From: Kacper Kasper +Date: Mon, 7 Apr 2014 16:48:59 +0200 +Subject: Haiku support + + +diff --git a/Makefile b/Makefile +index e6f08a7..24b9d22 100644 +--- a/Makefile ++++ b/Makefile +@@ -179,12 +179,15 @@ glewmx.pc: glew.pc.in + + # GLEW utility programs + +-BIN.LIBS = -Llib $(LDFLAGS.DYNAMIC) -l$(NAME) $(LDFLAGS.EXTRA) $(LDFLAGS.GL) ++BIN.LIBS = -Llib $(LDFLAGS.DYNAMIC) -l$(NAME) $(LDFLAGS.EXTRA) $(LDFLAGS.GL) -lbe -lstdc++ + + GLEWINFO.BIN := glewinfo$(BIN.SUFFIX) + GLEWINFO.BIN.SRC := src/glewinfo.c ++GLEWINFO.BIN.HAIKU := src/glewinfo_haiku.cpp + GLEWINFO.BIN.OBJ := $(addprefix tmp/$(SYSTEM)/default/shared/,$(notdir $(GLEWINFO.BIN.SRC))) + GLEWINFO.BIN.OBJ := $(GLEWINFO.BIN.OBJ:.c=.o) ++GLEWINFO.BIN.HAIKU_OBJ := $(addprefix tmp/$(SYSTEM)/default/shared/,$(notdir $(GLEWINFO.BIN.HAIKU))) ++GLEWINFO.BIN.HAIKU_OBJ := $(GLEWINFO.BIN.HAIKU_OBJ:.cpp=.o) + + VISUALINFO.BIN := visualinfo$(BIN.SUFFIX) + VISUALINFO.BIN.SRC := src/visualinfo.c +@@ -202,8 +205,8 @@ endif + bin: + mkdir bin + +-bin/$(GLEWINFO.BIN): $(GLEWINFO.BIN.OBJ) lib/$(LIB.SHARED) +- $(CC) $(CFLAGS) -o $@ $(GLEWINFO.BIN.OBJ) $(BIN.LIBS) ++bin/$(GLEWINFO.BIN): $(GLEWINFO.BIN.OBJ) $(GLEWINFO.BIN.HAIKU_OBJ) lib/$(LIB.SHARED) ++ $(CC) $(CFLAGS) -o $@ $(GLEWINFO.BIN.OBJ) $(GLEWINFO.BIN.HAIKU_OBJ) $(BIN.LIBS) + ifneq ($(STRIP),) + $(STRIP) -x $@ + endif +@@ -218,6 +221,10 @@ $(GLEWINFO.BIN.OBJ): $(GLEWINFO.BIN.SRC) include/GL/glew.h include/GL/wglew.h in + @mkdir -p $(dir $@) + $(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + ++$(GLEWINFO.BIN.HAIKU_OBJ): $(GLEWINFO.BIN.HAIKU) include/GL/glew.h include/GL/wglew.h include/GL/glxew.h ++ @mkdir -p $(dir $@) ++ $(CXX) -DGLEW_NO_GLU $(CXXFLAGS) $(CXXFLAGS.SO) -o $@ -c $< ++ + $(VISUALINFO.BIN.OBJ): $(VISUALINFO.BIN.SRC) include/GL/glew.h include/GL/wglew.h include/GL/glxew.h + @mkdir -p $(dir $@) + $(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< +diff --git a/config/Makefile.haiku b/config/Makefile.haiku +new file mode 100644 +index 0000000..57bf3d6 +--- /dev/null ++++ b/config/Makefile.haiku +@@ -0,0 +1,30 @@ +NAME = $(GLEW_NAME) +CC = cc ++CXX = g++ +LD = cc +ifneq (undefined, $(origin GLEW_MX)) + CFLAGS.EXTRA = -DGLEW_MX @@ -31,9 +83,10 @@ diff -Naur glew-1.10.0/config/Makefile.haiku glew-1.10.0-haiku/config/Makefile.h +LIB.STATIC.MX = lib$(NAME)mx.a +LDFLAGS.SO.MX = -shared -Wl,-soname=$(LIB.SONAME.MX) + -diff -Naur glew-1.10.0/src/glew.c glew-1.10.0-haiku/src/glew.c ---- glew-1.10.0/src/glew.c 2013-07-22 14:11:22.008912896 +0000 -+++ glew-1.10.0-haiku/src/glew.c 2013-10-30 23:18:58.931135488 +0000 +diff --git a/src/glew.c b/src/glew.c +index d075b52..daff07d 100644 +--- a/src/glew.c ++++ b/src/glew.c @@ -33,7 +33,7 @@ #if defined(_WIN32) @@ -52,7 +105,7 @@ diff -Naur glew-1.10.0/src/glew.c glew-1.10.0-haiku/src/glew.c #include #include #include -@@ -162,7 +162,7 @@ +@@ -162,7 +162,7 @@ void* NSGLGetProcAddress (const GLubyte *name) # define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name) #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) # define glewGetProcAddress(name) NSGLGetProcAddress(name) @@ -61,7 +114,7 @@ diff -Naur glew-1.10.0/src/glew.c glew-1.10.0-haiku/src/glew.c # define glewGetProcAddress(name) dlGetProcAddress(name) #elif defined(__ANDROID__) # define glewGetProcAddress(name) NULL /* TODO */ -@@ -12324,7 +12324,7 @@ +@@ -12324,7 +12324,7 @@ GLenum GLEWAPIENTRY wglewContextInit (WGLEW_CONTEXT_ARG_DEF_LIST) return GLEW_OK; } @@ -70,7 +123,7 @@ diff -Naur glew-1.10.0/src/glew.c glew-1.10.0-haiku/src/glew.c PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay = NULL; -@@ -13432,7 +13432,7 @@ +@@ -13432,7 +13432,7 @@ GLenum glxewContextInit (GLXEW_CONTEXT_ARG_DEF_LIST) return GLEW_OK; } @@ -79,7 +132,7 @@ diff -Naur glew-1.10.0/src/glew.c glew-1.10.0-haiku/src/glew.c /* ------------------------------------------------------------------------ */ -@@ -13472,7 +13472,7 @@ +@@ -13472,7 +13472,7 @@ GLboolean glewExperimental = GL_FALSE; #if defined(_WIN32) extern GLenum GLEWAPIENTRY wglewContextInit (void); @@ -88,7 +141,7 @@ diff -Naur glew-1.10.0/src/glew.c glew-1.10.0-haiku/src/glew.c extern GLenum GLEWAPIENTRY glxewContextInit (void); #endif /* _WIN32 */ -@@ -13483,7 +13483,7 @@ +@@ -13483,7 +13483,7 @@ GLenum GLEWAPIENTRY glewInit (void) if ( r != 0 ) return r; #if defined(_WIN32) return wglewContextInit(); @@ -97,7 +150,7 @@ diff -Naur glew-1.10.0/src/glew.c glew-1.10.0-haiku/src/glew.c return glxewContextInit(); #else return r; -@@ -17616,7 +17616,7 @@ +@@ -17616,7 +17616,7 @@ GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) return ret; } @@ -106,9 +159,10 @@ diff -Naur glew-1.10.0/src/glew.c glew-1.10.0-haiku/src/glew.c #if defined(GLEW_MX) GLboolean glxewContextIsSupported (const GLXEWContext* ctx, const char* name) -diff -Naur glew-1.10.0/src/glewinfo.c glew-1.10.0-haiku/src/glewinfo.c ---- glew-1.10.0/src/glewinfo.c 2013-07-22 14:11:22.009699328 +0000 -+++ glew-1.10.0-haiku/src/glewinfo.c 2013-10-30 23:39:14.891551744 +0000 +diff --git a/src/glewinfo.c b/src/glewinfo.c +index ad44f72..d65d702 100644 +--- a/src/glewinfo.c ++++ b/src/glewinfo.c @@ -35,7 +35,7 @@ #include #if defined(_WIN32) @@ -118,7 +172,7 @@ diff -Naur glew-1.10.0/src/glewinfo.c glew-1.10.0-haiku/src/glewinfo.c #include #endif -@@ -51,7 +51,7 @@ +@@ -51,7 +51,7 @@ GLEWContext _glewctx; #ifdef _WIN32 WGLEWContext _wglewctx; #define wglewGetContext() (&_wglewctx) @@ -127,7 +181,7 @@ diff -Naur glew-1.10.0/src/glewinfo.c glew-1.10.0-haiku/src/glewinfo.c GLXEWContext _glxewctx; #define glxewGetContext() (&_glxewctx) #endif -@@ -59,7 +59,7 @@ +@@ -59,7 +59,7 @@ GLXEWContext _glxewctx; #if defined(_WIN32) GLboolean glewCreateContext (int* pixelformat); @@ -136,32 +190,123 @@ diff -Naur glew-1.10.0/src/glewinfo.c glew-1.10.0-haiku/src/glewinfo.c GLboolean glewCreateContext (const char* display, int* visual); #else GLboolean glewCreateContext (); -@@ -10613,6 +10613,22 @@ +@@ -10613,6 +10613,13 @@ void glewDestroyContext () /* ------------------------------------------------------------------------ */ +#elif defined(__HAIKU__) + -+GLboolean glewCreateContext () -+{ -+ // TODO: Haiku: We need to call C++ code here :-/ -+ return GL_FALSE; -+} -+ -+void glewDestroyContext () -+{ -+ // TODO: Haiku: We need to call C++ code here :-/ -+} -+ ++extern GLboolean glewCreateContext (); ++extern void glewDestroyContext (); + +/* ------------------------------------------------------------------------ */ + #else /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */ Display* dpy = NULL; -diff -Naur glew-1.10.0/src/visualinfo.c glew-1.10.0-haiku/src/visualinfo.c ---- glew-1.10.0/src/visualinfo.c 2013-07-22 14:11:22.007340032 +0000 -+++ glew-1.10.0-haiku/src/visualinfo.c 2013-10-30 21:54:43.389808128 +0000 +diff --git a/src/glewinfo_haiku.cpp b/src/glewinfo_haiku.cpp +new file mode 100644 +index 0000000..3d32d00 +--- /dev/null ++++ b/src/glewinfo_haiku.cpp +@@ -0,0 +1,93 @@ ++/* ++ * glewinfo Haiku glue code ++ * Copyright 2013 Kacper Kasper ++ * All rights reserved. Distributed under the terms of the MIT license. ++ */ ++ ++#include ++#include ++#include ++ ++class GLEWInfoView : public BGLView { ++public: ++ GLEWInfoView(BRect frame, uint32 type); ++ virtual void AttachedToWindow(void); ++ ++ void ContextInit() { LockGL(); } ++ void ContextDestroy() { UnlockGL(); } ++}; ++ ++GLEWInfoView::GLEWInfoView(BRect frame, uint32 type) ++ : BGLView(frame, "GLEWInfoView", B_FOLLOW_ALL_SIDES, 0, type) ++{ ++} ++ ++void GLEWInfoView::AttachedToWindow(void) ++{ ++ LockGL(); ++ BGLView::AttachedToWindow(); ++ UnlockGL(); ++} ++ ++class GLEWInfoWindow : public BWindow { ++public: ++ GLEWInfoWindow(BRect frame, uint32 type); ++ virtual bool QuitRequested(); ++ ++private: ++ GLEWInfoView *view; ++}; ++ ++GLEWInfoWindow::GLEWInfoWindow(BRect frame, uint32 type) ++ : BWindow(frame, "GLEWInfoWindow", B_TITLED_WINDOW, B_QUIT_ON_WINDOW_CLOSE) ++{ ++ AddChild(view = new GLEWInfoView(Bounds(), type)); ++ view->ContextInit(); ++} ++ ++bool GLEWInfoWindow::QuitRequested() ++{ ++ view->ContextDestroy(); ++ ++ view->RemoveSelf(); ++ ++ delete view; ++ ++ return true; ++} ++ ++class GLEWInfoApp : public BApplication ++{ ++public: ++ GLEWInfoApp(); ++ ~GLEWInfoApp(); ++ ++private: ++ GLEWInfoWindow *window; ++}; ++ ++GLEWInfoApp::GLEWInfoApp() ++ : BApplication("application/x-vnd.glew-GLEWInfo") ++{ ++ BRect rect = BRect(0, 0, 1, 1); ++ window = new GLEWInfoWindow(rect, BGL_RGB | BGL_DOUBLE); ++} ++ ++GLEWInfoApp::~GLEWInfoApp() ++{ ++ window->Quit(); ++} ++ ++GLEWInfoApp *app; ++ ++extern "C" GLboolean glewCreateContext () ++{ ++ app = new GLEWInfoApp(); ++ ++ return GL_FALSE; ++} ++ ++extern "C" void glewDestroyContext () ++{ ++ delete app; ++} +diff --git a/src/visualinfo.c b/src/visualinfo.c +index b8bb59e..742fdd6 100644 +--- a/src/visualinfo.c ++++ b/src/visualinfo.c @@ -37,7 +37,7 @@ #include #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) @@ -171,7 +316,7 @@ diff -Naur glew-1.10.0/src/visualinfo.c glew-1.10.0-haiku/src/visualinfo.c #include #endif -@@ -47,7 +47,7 @@ +@@ -47,7 +47,7 @@ GLEWContext _glewctx; # ifdef _WIN32 WGLEWContext _wglewctx; # define wglewGetContext() (&_wglewctx) @@ -180,7 +325,7 @@ diff -Naur glew-1.10.0/src/visualinfo.c glew-1.10.0-haiku/src/visualinfo.c GLXEWContext _glxewctx; # define glxewGetContext() (&_glxewctx) # endif -@@ -61,7 +61,7 @@ +@@ -61,7 +61,7 @@ typedef struct GLContextStruct HGLRC rc; #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) AGLContext ctx, octx; @@ -189,7 +334,7 @@ diff -Naur glew-1.10.0/src/visualinfo.c glew-1.10.0-haiku/src/visualinfo.c Display* dpy; XVisualInfo* vi; GLXContext ctx; -@@ -129,7 +129,7 @@ +@@ -129,7 +129,7 @@ main (int argc, char** argv) err = glewContextInit(glewGetContext()); # ifdef _WIN32 err = err || wglewContextInit(wglewGetContext()); @@ -198,7 +343,7 @@ diff -Naur glew-1.10.0/src/visualinfo.c glew-1.10.0-haiku/src/visualinfo.c err = err || glxewContextInit(glxewGetContext()); # endif #else -@@ -182,6 +182,8 @@ +@@ -182,6 +182,8 @@ main (int argc, char** argv) } #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) @@ -207,7 +352,7 @@ diff -Naur glew-1.10.0/src/visualinfo.c glew-1.10.0-haiku/src/visualinfo.c #else /* GLX extensions */ fprintf(file, "GLX extensions (GLX_): \n"); -@@ -598,6 +600,16 @@ +@@ -598,6 +600,16 @@ VisualInfo (GLContext* ctx) */ } @@ -224,7 +369,7 @@ diff -Naur glew-1.10.0/src/visualinfo.c glew-1.10.0-haiku/src/visualinfo.c #else /* GLX */ void -@@ -1074,6 +1086,31 @@ +@@ -1074,6 +1086,31 @@ void DestroyContext (GLContext* ctx) /* ------------------------------------------------------------------------ */ @@ -256,3 +401,6 @@ diff -Naur glew-1.10.0/src/visualinfo.c glew-1.10.0-haiku/src/visualinfo.c #else /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */ void InitContext (GLContext* ctx) +-- +1.8.3.4 +