changeset 2271:3e532768cd27

Make the glew package build and install GLEWmx. GLEWmx is the multi-context version of GLEW. --- src/glew-test.c | 9 +++++++++ src/glew.mk | 24 ++++++++++++++++++++++++ 2 files changed, 33 insertions(+)
author Martin Lambers <marlam@marlam.de>
date Wed, 07 Mar 2012 21:50:40 +0100
parents 0f50afdf5866
children 665838084487
files src/glew-test.c src/glew.mk
diffstat 2 files changed, 33 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/glew-test.c	Wed Mar 07 21:50:40 2012 +0100
+++ b/src/glew-test.c	Wed Mar 07 21:50:40 2012 +0100
@@ -4,6 +4,15 @@
 #include <stdio.h>
 #include <GL/glew.h>
 
+#ifdef GLEW_MX
+/* We are using the multi-context variant of libGLEW */
+GLEWContext glew_context;
+GLEWContext* glewGetContext()
+{
+    return &glew_context;
+}
+#endif
+
 int main(int argc, char *argv[])
 {
     GLenum err;
--- a/src/glew.mk	Wed Mar 07 21:50:40 2012 +0100
+++ b/src/glew.mk	Wed Mar 07 21:50:40 2012 +0100
@@ -19,6 +19,7 @@
 endef
 
 define $(PKG)_BUILD
+    # Build libGLEW
     cd '$(1)' && $(TARGET)-gcc -O2 -DGLEW_STATIC -Iinclude -c -o glew.o src/glew.c
     cd '$(1)' && $(TARGET)-ar cr libGLEW.a glew.o
     $(TARGET)-ranlib '$(1)/libGLEW.a'
@@ -31,17 +32,40 @@
         -e "s|@cflags@|-DGLEW_STATIC|g" \
         -e "s|-l@libname@|-lGLEW -lopengl32|g" \
         < '$(1)'/glew.pc.in > '$(1)'/glew.pc
+
+    # Build libGLEWmx
+    cd '$(1)' && $(TARGET)-gcc -O2 -DGLEW_STATIC -DGLEW_MX -Iinclude -c -o glewmx.o src/glew.c
+    cd '$(1)' && $(TARGET)-ar cr libGLEWmx.a glewmx.o
+    $(TARGET)-ranlib '$(1)/libGLEWmx.a'
+    $(SED) \
+        -e "s|@prefix@|$(PREFIX)/$(TARGET)|g" \
+        -e "s|@libdir@|$(PREFIX)/$(TARGET)/lib|g" \
+        -e "s|@exec_prefix@|$(PREFIX)/$(TARGET)/bin|g" \
+        -e "s|@includedir@|$(PREFIX)/$(TARGET)/include/GL|g" \
+        -e "s|@version@|$(glew_VERSION)|g" \
+        -e "s|@cflags@|-DGLEW_STATIC -DGLEW_MX|g" \
+        -e "s|-l@libname@|-lGLEWmx -lopengl32|g" \
+        < '$(1)'/glew.pc.in > '$(1)'/glewmx.pc
+
+    # Install
     $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib'
     $(INSTALL) -m644 '$(1)/libGLEW.a' '$(PREFIX)/$(TARGET)/lib/'
     $(INSTALL) -m644 '$(1)/libGLEW.a' '$(PREFIX)/$(TARGET)/lib/libglew32s.a'
+    $(INSTALL) -m644 '$(1)/libGLEWmx.a' '$(PREFIX)/$(TARGET)/lib/'
     $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
     $(INSTALL) -m644 '$(1)/glew.pc' '$(PREFIX)/$(TARGET)/lib/pkgconfig/'
+    $(INSTALL) -m644 '$(1)/glewmx.pc' '$(PREFIX)/$(TARGET)/lib/pkgconfig/'
     $(INSTALL) -d '$(PREFIX)/$(TARGET)/include'
     $(INSTALL) -d '$(PREFIX)/$(TARGET)/include/GL'
     $(INSTALL) -m644 '$(1)/include/GL/glew.h' '$(1)/include/GL/wglew.h' '$(PREFIX)/$(TARGET)/include/GL/'
 
+    # Test
     '$(TARGET)-gcc' \
         -W -Wall -Werror -ansi -pedantic \
         '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-glew.exe' \
         `'$(TARGET)-pkg-config' glew --cflags --libs`
+    '$(TARGET)-gcc' \
+        -W -Wall -Werror -ansi -pedantic \
+        '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-glewmx.exe' \
+        `'$(TARGET)-pkg-config' glewmx --cflags --libs`
 endef