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 @@
+NAME = $(GLEW_NAME)
+CC = cc
+LD = cc
+ifneq (undefined, $(origin GLEW_MX))
+	CFLAGS.EXTRA = -DGLEW_MX
+endif
+
+LDFLAGS.GL = -lGL
+LDFLAGS.STATIC = -Wl,-Bstatic
+LDFLAGS.DYNAMIC = -Wl,-Bdynamic
+
+NAME = GLEW
+WARN = -Wall -W
+POPT = -O2
+
+BIN.SUFFIX =
+
+LIB.SONAME = lib$(NAME).so.$(SO_MAJOR)
+LIB.DEVLNK = lib$(NAME).so
+LIB.SHARED = lib$(NAME).so.$(SO_VERSION)
+LIB.STATIC = lib$(NAME).a
+LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME)
+
+LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR)
+LIB.DEVLNK.MX = lib$(NAME)mx.so
+LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION)
+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
@@ -33,7 +33,7 @@
 
 #if defined(_WIN32)
 #  include <GL/wglew.h>
-#elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))
+#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))
 #  include <GL/glxew.h>
 #endif
 
@@ -66,7 +66,7 @@
 #  define GLXEW_CONTEXT_ARG_DEF_LIST void
 #endif /* GLEW_MX */
 
-#if defined(__sgi) || defined (__sun) || defined(GLEW_APPLE_GLX)
+#if defined(__sgi) || defined (__sun) || defined(GLEW_APPLE_GLX) || defined(__HAIKU__)
 #include <dlfcn.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -162,7 +162,7 @@
 #  define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name)
 #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX)
 #  define glewGetProcAddress(name) NSGLGetProcAddress(name)
-#elif defined(__sgi) || defined(__sun)
+#elif defined(__sgi) || defined(__sun) || defined(__HAIKU__)
 #  define glewGetProcAddress(name) dlGetProcAddress(name)
 #elif defined(__ANDROID__)
 #  define glewGetProcAddress(name) NULL /* TODO */
@@ -12324,7 +12324,7 @@
   return GLEW_OK;
 }
 
-#elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))
+#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))
 
 PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay = NULL;
 
@@ -13432,7 +13432,7 @@
   return GLEW_OK;
 }
 
-#endif /* !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */
+#endif /* !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */
 
 /* ------------------------------------------------------------------------ */
 
@@ -13472,7 +13472,7 @@
 
 #if defined(_WIN32)
 extern GLenum GLEWAPIENTRY wglewContextInit (void);
-#elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))
+#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))
 extern GLenum GLEWAPIENTRY glxewContextInit (void);
 #endif /* _WIN32 */
 
@@ -13483,7 +13483,7 @@
   if ( r != 0 ) return r;
 #if defined(_WIN32)
   return wglewContextInit();
-#elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) /* _UNIX */
+#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) /* _UNIX */
   return glxewContextInit();
 #else
   return r;
@@ -17616,7 +17616,7 @@
   return ret;
 }
 
-#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
 
 #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
@@ -35,7 +35,7 @@
 #include <GL/glew.h>
 #if defined(_WIN32)
 #include <GL/wglew.h>
-#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+#elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
 #include <GL/glxew.h>
 #endif
 
@@ -51,7 +51,7 @@
 #ifdef _WIN32
 WGLEWContext _wglewctx;
 #define wglewGetContext() (&_wglewctx)
-#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+#elif !defined(__APPLE__)&& !defined(__HAIKU__)  || defined(GLEW_APPLE_GLX)
 GLXEWContext _glxewctx;
 #define glxewGetContext() (&_glxewctx)
 #endif
@@ -59,7 +59,7 @@
 
 #if defined(_WIN32)
 GLboolean glewCreateContext (int* pixelformat);
-#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+#elif !defined(__APPLE__) && !defined(__HAIKU__)  || defined(GLEW_APPLE_GLX)
 GLboolean glewCreateContext (const char* display, int* visual);
 #else
 GLboolean glewCreateContext ();
@@ -10613,6 +10613,22 @@
 
 /* ------------------------------------------------------------------------ */
 
+#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 :-/
+}
+
+
+/* ------------------------------------------------------------------------ */
+
 #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
@@ -37,7 +37,7 @@
 #include <GL/wglew.h>
 #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX)
 #include <AGL/agl.h>
-#else
+#elif !defined(__HAIKU__)
 #include <GL/glxew.h>
 #endif
 
@@ -47,7 +47,7 @@
 #  ifdef _WIN32
 WGLEWContext _wglewctx;
 #    define wglewGetContext() (&_wglewctx)
-#  elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+#  elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
 GLXEWContext _glxewctx;
 #    define glxewGetContext() (&_glxewctx)
 #  endif
@@ -61,7 +61,7 @@
   HGLRC rc;
 #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX)
   AGLContext ctx, octx;
-#else
+#elif !defined(__HAIKU__)
   Display* dpy;
   XVisualInfo* vi;
   GLXContext ctx;
@@ -129,7 +129,7 @@
   err = glewContextInit(glewGetContext());
 #  ifdef _WIN32
   err = err || wglewContextInit(wglewGetContext());
-#  elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+#  elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
   err = err || glxewContextInit(glxewGetContext());
 #  endif
 #else
@@ -182,6 +182,8 @@
   }
 #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX)
   
+#elif defined(__HAIKU__)
+
 #else
   /* GLX extensions */
   fprintf(file, "GLX extensions (GLX_): \n");
@@ -598,6 +600,16 @@
 */
 }
 
+/* ---------------------------------------------------------------------- */
+
+#elif defined(__HAIKU__)
+
+void
+VisualInfo (GLContext* ctx)
+{
+	// TODO
+}
+
 #else /* GLX */
 
 void
@@ -1074,6 +1086,31 @@
 
 /* ------------------------------------------------------------------------ */
 
+#elif defined(__HAIKU__)
+
+void
+InitContext (GLContext* ctx)
+{
+	// TODO
+}
+
+
+GLboolean
+CreateContext (GLContext* ctx)
+{
+	// TODO
+	return GL_FALSE;
+}
+
+
+void
+DestroyContext (GLContext* ctx)
+{
+	// TODO
+}
+
+/* ------------------------------------------------------------------------ */
+
 #else /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */
 
 void InitContext (GLContext* ctx)
