Fixed bug #615
authorSam Lantinga <slouken@libsdl.org>
Mon, 21 Sep 2009 09:21:00 +0000
changeset 3292 245a7d79577c
parent 3291 b273b2a8a1ea
child 3293 0d60bdebed39
Fixed bug #615 Scott McCreary 2008-08-21 10:48:14 PDT This patch adds support for Haiku. http://ports.haiku-files.org/browser/haikuports/trunk/media-libs/libsdl/SDL-1.2.13-haiku.diff Haiku is an open-source recreation of BeOS. It has better POSIX compliance than beOS did, and other improved features, which in some cases causes us to have to "undo" previous BeOS workarounds. Here's our port log entry for it, showing the steps to force the changes into configure and Makefile: http://ports.haiku-files.org/wiki/media-libs/libsdl/1.2.13/1 Note that this was only tried on 1.2.13 stable so far. Haiku is using a newer config.guess / config.sub that doesn't yet seem to be in the released libtool, so we are having to copy it in for now. http://haiku-files.org/files/optional-packages/
configure.in
include/SDL_platform.h
include/begin_code.h
test/automated/platform/platform.c
test/configure.in
test/testplatform.c
--- a/configure.in	Mon Sep 21 09:16:35 2009 +0000
+++ b/configure.in	Mon Sep 21 09:21:00 2009 +0000
@@ -2542,7 +2542,7 @@
         SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
         SDL_LIBS="-lmingw32 -lSDLmain $SDL_LIBS -mwindows"
         ;;
-    *-*-beos*)
+    *-*-beos* | *-*-haiku*)
         ARCH=beos
         ac_default_prefix=/boot/develop/tools/gnupro
         CheckDummyVideo
--- a/include/SDL_platform.h	Mon Sep 21 09:16:35 2009 +0000
+++ b/include/SDL_platform.h	Mon Sep 21 09:21:00 2009 +0000
@@ -33,6 +33,10 @@
 #undef __BEOS__
 #define __BEOS__	1
 #endif
+#if defined(__HAIKU__)
+#undef __HAIKU__
+#define __HAIKU__	1
+#endif
 #if defined(bsdi) || defined(__bsdi) || defined(__bsdi__)
 #undef __BSDI__
 #define __BSDI__	1
--- a/include/begin_code.h	Mon Sep 21 09:16:35 2009 +0000
+++ b/include/begin_code.h	Mon Sep 21 09:21:00 2009 +0000
@@ -33,7 +33,7 @@
 
 /* Some compilers use a special export keyword */
 #ifndef DECLSPEC
-# if defined(__BEOS__)
+# if defined(__BEOS__) || defined(__HAIKU__)
 #  if defined(__GNUC__)
 #   define DECLSPEC	__declspec(dllexport)
 #  else
--- a/test/automated/platform/platform.c	Mon Sep 21 09:16:35 2009 +0000
+++ b/test/automated/platform/platform.c	Mon Sep 21 09:21:00 2009 +0000
@@ -139,6 +139,9 @@
    return
 #if __AIX__   
       "AIX"
+#elif __HAIKU__
+/* Haiku must appear here before BeOS, since it also defines __BEOS__ */
+      "Haiku"
 #elif __BEOS__
       "BeOS"
 #elif __BSDI__
@@ -146,7 +149,6 @@
 #elif __DREAMCAST__
       "Dreamcast"
 #elif __FREEBSD__
-
       "FreeBSD"
 #elif __HPUX__ 
       "HP-UX"
--- a/test/configure.in	Mon Sep 21 09:16:35 2009 +0000
+++ b/test/configure.in	Mon Sep 21 09:21:00 2009 +0000
@@ -20,7 +20,7 @@
         MATHLIB=""
         SYS_GL_LIBS="-lopengl32"
         ;;
-    *-*-beos*)
+    *-*-beos* | *-*-haiku*)
         EXE=""
         MATHLIB=""
         SYS_GL_LIBS="-lGL"
--- a/test/testplatform.c	Mon Sep 21 09:16:35 2009 +0000
+++ b/test/testplatform.c	Mon Sep 21 09:21:00 2009 +0000
@@ -160,6 +160,9 @@
         printf("This system is running %s\n",
 #if __AIX__
                "AIX"
+#elif __HAIKU__
+/* Haiku must appear here before BeOS, since it also defines __BEOS__ */
+               "Haiku"
 #elif __BEOS__
                "BeOS"
 #elif __BSDI__