glut: MinGW portability fixes.
authorJosé Fonseca <jrfonseca@tungstengraphics.com>
Thu, 20 Nov 2008 20:26:52 +0000 (05:26 +0900)
committerJosé Fonseca <jrfonseca@tungstengraphics.com>
Fri, 12 Dec 2008 07:06:42 +0000 (16:06 +0900)
Still, it doesn't run as well as the glut binaries...

include/GL/glut.h
src/SConscript
src/glut/glx/SConscript [new file with mode: 0644]
src/glut/glx/glutint.h
src/glut/glx/glutstroke.h
src/glut/glx/glutwin32.h
src/glut/glx/win32_x11.h

index e286349f9b01c3903b4f9104c9aaf36ba1531661..92eb6cf3cddc94f005e18d8cd08e1e7f294f587e 100644 (file)
@@ -53,7 +53,7 @@ extern "C" {
 /* To disable supression of annoying warnings about floats being promoted
    to doubles, define GLUT_NO_WARNING_DISABLE in your compile preprocessor
    options. */
-# ifndef GLUT_NO_WARNING_DISABLE
+# if defined(_MSC_VER) && !defined(GLUT_NO_WARNING_DISABLE)
 #  pragma warning (disable:4244)  /* Disable bogus VC++ 4.2 conversion warnings. */
 #  pragma warning (disable:4305)  /* VC++ 5.0 version of above warning. */
 # endif
index 8e914af4f0d983571dca81f7bd3352343fe67322..9116e9beecb3ec2ffb66e3fc6cbb865ba00b4f77 100644 (file)
@@ -5,4 +5,6 @@ SConscript('gallium/SConscript')
 if 'mesa' in env['statetrackers']:
        SConscript('mesa/SConscript')
 
+SConscript('glut/glx/SConscript')
+
 SConscript('gallium/winsys/SConscript')
diff --git a/src/glut/glx/SConscript b/src/glut/glx/SConscript
new file mode 100644 (file)
index 0000000..99b3bb7
--- /dev/null
@@ -0,0 +1,89 @@
+Import('*')
+
+env = env.Clone()
+
+if env['platform'] != 'windows':
+    Return()
+
+target = 'glut32'
+
+env.Replace(CPPDEFINES = [
+    'BUILD_GLUT32', 
+    'GLUT_BUILDING_LIB', 
+    'MESA', 
+    '_DLL',
+    'NDEBUG',
+    'GLUT_NO_WARNING_DISABLE',
+])
+
+env.AppendUnique(CPPPATH = [
+    '#/include',
+])
+
+env.PrependUnique(LIBS = [
+    'winmm', 
+    'gdi32', 
+    'user32', 
+    'opengl32', 
+    'glu32',
+])
+
+sources = [
+    'glut_bitmap.c',
+    'glut_bwidth.c',
+    'glut_cindex.c',
+    'glut_cmap.c',
+    'glut_cursor.c',
+    'glut_dials.c',
+    'glut_dstr.c',
+    'glut_event.c',
+    'glut_ext.c',
+    'glut_fcb.c',
+    'glut_fullscrn.c',
+    'glut_gamemode.c',
+    'glut_get.c',
+    'glut_init.c',
+    'glut_input.c',
+    'glut_joy.c',
+    'glut_key.c',
+    'glut_keyctrl.c',
+    'glut_keyup.c',
+    'glut_mesa.c',
+    'glut_modifier.c',
+    'glut_overlay.c',
+    'glut_shapes.c',
+    'glut_space.c',
+    'glut_stroke.c',
+    'glut_swap.c',
+    'glut_swidth.c',
+    'glut_tablet.c',
+    'glut_teapot.c',
+    'glut_util.c',
+    'glut_vidresize.c',
+    'glut_warp.c',
+    'glut_win.c',
+    'glut_winmisc.c',
+
+    'win32_glx.c',
+    'win32_menu.c',
+    'win32_util.c',
+    'win32_winproc.c',
+    'win32_x11.c',
+    
+    'glut_8x13.c',
+    'glut_9x15.c',
+    'glut_hel10.c',
+    'glut_hel12.c',
+    'glut_hel18.c',
+    'glut_mroman.c',
+    'glut_roman.c',
+    'glut_tr10.c',
+    'glut_tr24.c',
+
+    'glut.def',
+]
+
+env.SharedLibrary(
+    target = target,
+    source = sources,
+)
index a962c780238d17171bac4001bd0a68e2fa50e14d..de506a5932d83a85a257673149cc3305adf17d63 100644 (file)
@@ -33,7 +33,7 @@
 #include <GL/glut.h>
 
 #if defined(MESA) && defined(_WIN32) && !defined(__CYGWIN32__)
-#include <gl/mesa_wgl.h>
+#include <GL/mesa_wgl.h>
 #endif
 
 #ifndef _WIN32
index cbc9e156fea5693b8d581ff024a5ebf383bbde16..74b60314aa2a5b5713264afea5264fbbdc47da41 100644 (file)
@@ -7,7 +7,7 @@
    and is provided without guarantee or warrantee expressed or 
    implied. This program is -not- in the public domain. */
 
-#if defined(_WIN32)
+#if defined(_MSC_VER)
 #pragma warning (disable:4244)  /* disable bogus conversion warnings */
 #pragma warning (disable:4305)  /* VC++ 5.0 version of above warning. */
 #endif
index 304eeb20a2215521f259f69c678e66ee60010113..01db99fad6d1b72d74e83ad36457bb07b0efca64 100644 (file)
@@ -41,6 +41,7 @@
 
 /* Private routines from win32_util.c */
 #ifndef __CYGWIN32__
+struct timeval;
 extern int gettimeofday(struct timeval* tp, void* tzp);
 #endif
 extern void *__glutFont(void *font);
index 6f5c3a9aeaf44b859ba16774cf2589b28ad175f1..daf065e27b89304d5f8f668bba1cdce656930ea8 100644 (file)
@@ -228,7 +228,7 @@ typedef struct {
   SetWindowPos(window, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE)
 
 #define XSetWMName(display, window, tp) \
-  SetWindowText(window, (tp)->value)
+  SetWindowText(window, (const char *)(tp)->value)
 
 /* There really isn't a way to set the icon name separate from the
    windows name in Win32, so, just set the windows name. */