Allegro: fix for new CMake, and remove old non-recipes and patches.

This commit is contained in:
Adrien Destugues
2013-11-30 11:23:48 +01:00
parent 1ebc3cfd44
commit f1ec4b3e8c
8 changed files with 179 additions and 283 deletions

View File

@@ -1,67 +0,0 @@
diff -ur allegro-4.4.0/CMakeLists.txt allegro-4.4.0-haiku/CMakeLists.txt
--- allegro-4.4.0/CMakeLists.txt 2009-12-20 15:47:59.000000000 -0700
+++ allegro-4.4.0-haiku/CMakeLists.txt 2009-12-21 20:43:57.000000000 -0700
@@ -270,7 +270,17 @@
endif(COMPILER_GCC)
endif(APPLE)
-if(UNIX AND NOT APPLE)
+if(BEOS)
+ if(CMAKE_SYSTEM_NAME STREQUAL Haiku)
+ set(ALLEGRO_HAIKU 1)
+ else(CMAKE_SYSTEM_NAME STREQUAL Haiku)
+ set(ALLEGRO_BEOS 1)
+ endif(CMAKE_SYSTEM_NAME STREQUAL Haiku)
+ set(WFLAGS "-W -Wall -Wno-unused -Wno-multichar -Wno-ctor-dtor-privacy")
+ set(WFLAGS_C_ONLY "")
+endif(BEOS)
+
+if(UNIX AND NOT APPLE AND NOT BEOS)
set(ALLEGRO_UNIX 1)
endif()
@@ -560,6 +570,13 @@
)
endif(WIN32)
+# -- Haiku/BeOS --
+
+if(BEOS)
+ list(APPEND PLATFORM_SOURCES ${ALLEGRO_SRC_BEOS_FILES})
+ list(APPEND PLATFORM_LIBS game midi device)
+endif(BEOS)
+
# -- Mac OS X --
if(ALLEGRO_MACOSX)
@@ -644,6 +661,9 @@
if(ALLEGRO_WITH_XWINDOWS)
add_headers("" include/xalleg.h)
endif(ALLEGRO_WITH_XWINDOWS)
+if(BEOS)
+ add_headers("" include/bealleg.h)
+endif(BEOS)
#-----------------------------------------------------------------------------#
#
diff -ur allegro-4.4.0/cmake/FileList.cmake allegro-4.4.0-haiku/cmake/FileList.cmake
--- allegro-4.4.0/cmake/FileList.cmake 2009-11-08 19:24:05.000000000 -0700
+++ allegro-4.4.0-haiku/cmake/FileList.cmake 2009-12-21 20:43:06.000000000 -0700
@@ -207,7 +207,7 @@
src/beos/bmousapi.cpp
src/beos/bmousdrv.c
src/beos/bmouse.c
- src/beos/boverlay.c
+ src/beos/boverlay.cpp
src/beos/bsnd.c
src/beos/bsndapi.cpp
src/beos/bsnddrv.c
@@ -218,7 +218,7 @@
src/beos/btimeapi.cpp
src/beos/btimedrv.c
src/beos/btimer.c
- src/beos/bwindow.c
+ src/beos/bwindow.cpp
src/beos/bwscreen.cpp
src/unix/ufile.c
src/misc/colconv.c

View File

@@ -1,62 +0,0 @@
diff -urN allegro-4.4.1.1/src/beos/bdwindow.cpp allegro-4.4.1.1-haiku/src/beos/bdwindow.cpp
--- allegro-4.4.1.1/src/beos/bdwindow.cpp 2008-10-21 01:03:43.061865984 +0000
+++ allegro-4.4.1.1-haiku/src/beos/bdwindow.cpp 2010-10-30 22:40:51.000000000 +0000
@@ -413,9 +413,9 @@
}
#ifdef ALLEGRO_NO_ASM
- bmp->read_bank = _be_gfx_bwindow_read_write_bank;
- bmp->write_bank = _be_gfx_bwindow_read_write_bank;
- _screen_vtable.unwrite_bank = _be_gfx_bwindow_unwrite_bank;
+ bmp->read_bank = (void *)_be_gfx_bwindow_read_write_bank;
+ bmp->write_bank = (void *)_be_gfx_bwindow_read_write_bank;
+ _screen_vtable.unwrite_bank = (void *)_be_gfx_bwindow_unwrite_bank;
#else
bmp->read_bank = _be_gfx_bwindow_read_write_bank_asm;
bmp->write_bank = _be_gfx_bwindow_read_write_bank_asm;
diff -urN allegro-4.4.1.1/src/beos/bwindow.cpp allegro-4.4.1.1-haiku/src/beos/bwindow.cpp
--- allegro-4.4.1.1/src/beos/bwindow.cpp 2008-10-20 08:27:27.061603840 +0000
+++ allegro-4.4.1.1-haiku/src/beos/bwindow.cpp 2010-10-30 22:40:51.000000000 +0000
@@ -347,9 +347,9 @@
}
#ifdef ALLEGRO_NO_ASM
- bmp->read_bank = _be_gfx_bwindow_read_write_bank;
- bmp->write_bank = _be_gfx_bwindow_read_write_bank;
- _screen_vtable.unwrite_bank = _be_gfx_bwindow_unwrite_bank;
+ bmp->read_bank = (void *)_be_gfx_bwindow_read_write_bank;
+ bmp->write_bank = (void *)_be_gfx_bwindow_read_write_bank;
+ _screen_vtable.unwrite_bank = (void *)_be_gfx_bwindow_unwrite_bank;
#else
bmp->read_bank = _be_gfx_bwindow_read_write_bank_asm;
bmp->write_bank = _be_gfx_bwindow_read_write_bank_asm;
diff -urN allegro-4.4.1.1/src/beos/bwscreen.cpp allegro-4.4.1.1-haiku/src/beos/bwscreen.cpp
--- allegro-4.4.1.1/src/beos/bwscreen.cpp 2008-10-20 08:27:27.061865984 +0000
+++ allegro-4.4.1.1-haiku/src/beos/bwscreen.cpp 2010-10-30 22:40:51.000000000 +0000
@@ -363,9 +363,9 @@
#ifdef ALLEGRO_NO_ASM
if (gfx_capabilities) {
- bmp->write_bank = be_gfx_bwindowscreen_read_write_bank;
- bmp->read_bank = be_gfx_bwindowscreen_read_write_bank;
- _screen_vtable.unwrite_bank = be_gfx_bwindowscreen_unwrite_bank;
+ bmp->write_bank = (void *)be_gfx_bwindowscreen_read_write_bank;
+ bmp->read_bank = (void *)be_gfx_bwindowscreen_read_write_bank;
+ _screen_vtable.unwrite_bank = (void *)be_gfx_bwindowscreen_unwrite_bank;
}
#else
if (gfx_capabilities) {
diff -urN allegro-4.4.1.1/src/file.c allegro-4.4.1.1-haiku/src/file.c
--- allegro-4.4.1.1/src/file.c 2008-10-23 13:38:21.006815744 +0000
+++ allegro-4.4.1.1-haiku/src/file.c 2010-10-30 22:46:02.595853312 +0000
@@ -31,6 +31,10 @@
#include "allegro.h"
#include "allegro/internal/aintern.h"
+#ifdef ALLEGRO_HAIKU
+ #define O_BINARY 0
+#endif
+
#ifndef ALLEGRO_MPW
#include <sys/stat.h>
#endif

View File

@@ -0,0 +1,156 @@
From cbe10814911be2ea285d73d455065e430bf6c92a Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Fri, 29 Nov 2013 21:27:01 +0100
Subject: applying patch allegro-4.4.1.1.patch
diff --git a/src/beos/bdwindow.cpp b/src/beos/bdwindow.cpp
index 2ef8460..28c9678 100644
--- a/src/beos/bdwindow.cpp
+++ b/src/beos/bdwindow.cpp
@@ -413,9 +413,9 @@ static struct BITMAP *_be_gfx_bdirectwindow_init(GFX_DRIVER *drv, int w, int h,
}
#ifdef ALLEGRO_NO_ASM
- bmp->read_bank = _be_gfx_bwindow_read_write_bank;
- bmp->write_bank = _be_gfx_bwindow_read_write_bank;
- _screen_vtable.unwrite_bank = _be_gfx_bwindow_unwrite_bank;
+ bmp->read_bank = (void *)_be_gfx_bwindow_read_write_bank;
+ bmp->write_bank = (void *)_be_gfx_bwindow_read_write_bank;
+ _screen_vtable.unwrite_bank = (void *)_be_gfx_bwindow_unwrite_bank;
#else
bmp->read_bank = _be_gfx_bwindow_read_write_bank_asm;
bmp->write_bank = _be_gfx_bwindow_read_write_bank_asm;
diff --git a/src/beos/bwindow.cpp b/src/beos/bwindow.cpp
index d89e1d4..61a1885 100644
--- a/src/beos/bwindow.cpp
+++ b/src/beos/bwindow.cpp
@@ -347,9 +347,9 @@ extern "C" struct BITMAP *be_gfx_bwindow_init(int w, int h, int v_w, int v_h, in
}
#ifdef ALLEGRO_NO_ASM
- bmp->read_bank = _be_gfx_bwindow_read_write_bank;
- bmp->write_bank = _be_gfx_bwindow_read_write_bank;
- _screen_vtable.unwrite_bank = _be_gfx_bwindow_unwrite_bank;
+ bmp->read_bank = (void *)_be_gfx_bwindow_read_write_bank;
+ bmp->write_bank = (void *)_be_gfx_bwindow_read_write_bank;
+ _screen_vtable.unwrite_bank = (void *)_be_gfx_bwindow_unwrite_bank;
#else
bmp->read_bank = _be_gfx_bwindow_read_write_bank_asm;
bmp->write_bank = _be_gfx_bwindow_read_write_bank_asm;
diff --git a/src/beos/bwscreen.cpp b/src/beos/bwscreen.cpp
index af22981..4aeda05 100644
--- a/src/beos/bwscreen.cpp
+++ b/src/beos/bwscreen.cpp
@@ -363,9 +363,9 @@ static struct BITMAP *_be_gfx_bwindowscreen_init(GFX_DRIVER *drv, int w, int h,
#ifdef ALLEGRO_NO_ASM
if (gfx_capabilities) {
- bmp->write_bank = be_gfx_bwindowscreen_read_write_bank;
- bmp->read_bank = be_gfx_bwindowscreen_read_write_bank;
- _screen_vtable.unwrite_bank = be_gfx_bwindowscreen_unwrite_bank;
+ bmp->write_bank = (void *)be_gfx_bwindowscreen_read_write_bank;
+ bmp->read_bank = (void *)be_gfx_bwindowscreen_read_write_bank;
+ _screen_vtable.unwrite_bank = (void *)be_gfx_bwindowscreen_unwrite_bank;
}
#else
if (gfx_capabilities) {
diff --git a/src/file.c b/src/file.c
index 654e632..7d56d8f 100644
--- a/src/file.c
+++ b/src/file.c
@@ -31,6 +31,10 @@
#include "allegro.h"
#include "allegro/internal/aintern.h"
+#ifdef ALLEGRO_HAIKU
+ #define O_BINARY 0
+#endif
+
#ifndef ALLEGRO_MPW
#include <sys/stat.h>
#endif
--
1.8.3.4
From e3cc30c9d162fff9e1b74985da390969eea932e8 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Sat, 30 Nov 2013 11:16:32 +0100
Subject: Allegro: fix recipe following CMake changes
* Our CMake doesn't define BEOS anymore, so have Allegro build accept
HAIKU as well.
* Fix some hardcoded installation paths.
* Add a missing zlib include, I guess because of a newer libpng.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 103d012..7e83070 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -280,7 +280,7 @@ if(APPLE)
endif(COMPILER_GCC)
endif(APPLE)
-if(BEOS)
+if(BEOS OR HAIKU)
if(CMAKE_SYSTEM_NAME STREQUAL Haiku)
set(ALLEGRO_HAIKU 1)
else(CMAKE_SYSTEM_NAME STREQUAL Haiku)
@@ -288,9 +288,9 @@ if(BEOS)
endif(CMAKE_SYSTEM_NAME STREQUAL Haiku)
set(WFLAGS "-W -Wall -Wno-unused -Wno-multichar -Wno-ctor-dtor-privacy")
set(WFLAGS_C_ONLY "")
-endif(BEOS)
+endif()
-if(UNIX AND NOT APPLE AND NOT BEOS)
+if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU)
set(ALLEGRO_UNIX 1)
endif()
@@ -582,10 +582,10 @@ endif(WIN32)
# -- Haiku/BeOS --
-if(BEOS)
+if(BEOS OR HAIKU)
list(APPEND PLATFORM_SOURCES ${ALLEGRO_SRC_BEOS_FILES})
list(APPEND PLATFORM_LIBS game midi device)
-endif(BEOS)
+endif()
# -- Mac OS X --
diff --git a/addons/loadpng/loadpng.c b/addons/loadpng/loadpng.c
index 33f5527..9253260 100644
--- a/addons/loadpng/loadpng.c
+++ b/addons/loadpng/loadpng.c
@@ -9,6 +9,7 @@
#include <allegro.h>
#include <allegro/internal/aintern.h>
#include "loadpng.h"
+#include <zlib.h>
/* We need internals _color_load_depth and _fixup_loaded_bitmap. The
* first can be replaced by the new get_color_depth() function which
diff --git a/cmake/Common.cmake b/cmake/Common.cmake
index 654c01c..2a9b171 100644
--- a/cmake/Common.cmake
+++ b/cmake/Common.cmake
@@ -43,7 +43,11 @@ endfunction(install_our_library)
function(install_our_headers)
foreach(hdr ${ARGN})
get_source_file_property(LOC ${hdr} MACOSX_PACKAGE_LOCATION)
- string(REGEX REPLACE "^Headers" "include" LOC ${LOC})
+ if(HAIKU)
+ string(REGEX REPLACE "^Headers" "develop/headers" LOC ${LOC})
+ else()
+ string(REGEX REPLACE "^Headers" "include" LOC ${LOC})
+ endif()
install(FILES ${hdr} DESTINATION ${LOC})
endforeach()
endfunction(install_our_headers)
--
1.8.3.4

View File

@@ -1,51 +0,0 @@
diff -urN allegro-4.4.x-svn/CMakeLists.txt allegro-4.4.x-svn-haiku/CMakeLists.txt
--- allegro-4.4.x-svn/CMakeLists.txt 2012-11-18 01:16:37.000000000 -0800
+++ allegro-4.4.x-svn-haiku/CMakeLists.txt 2012-11-18 01:06:24.541065216 -0800
@@ -291,18 +291,18 @@
endif(COMPILER_GCC)
endif(APPLE)
-if(BEOS)
+if(HAIKU)
if(CMAKE_SYSTEM_NAME STREQUAL Haiku)
set(ALLEGRO_HAIKU 1)
- else(CMAKE_SYSTEM_NAME STREQUAL Haiku)
+ else(CMAKE_SYSTEM_NAME STREQUAL BeOS)
set(ALLEGRO_BEOS 1)
endif(CMAKE_SYSTEM_NAME STREQUAL Haiku)
set(WFLAGS "-W -Wall -Wno-unused -Wno-multichar")
set(WFLAGS_C_ONLY "")
set(WFLAGS_CXX_ONLY "-Wno-ctor-dtor-privacy")
-endif(BEOS)
+endif(HAIKU)
-if(UNIX AND NOT APPLE AND NOT BEOS)
+if(UNIX AND NOT APPLE AND NOT HAIKU)
set(ALLEGRO_UNIX 1)
endif()
@@ -628,10 +628,10 @@
# -- Haiku/BeOS --
-if(BEOS)
+if(HAIKU)
list(APPEND PLATFORM_SOURCES ${ALLEGRO_SRC_BEOS_FILES})
list(APPEND PLATFORM_LIBS game midi device)
-endif(BEOS)
+endif(HAIKU)
# -- Mac OS X --
@@ -727,9 +727,9 @@
if(ALLEGRO_WITH_XWINDOWS)
add_headers("" include/xalleg.h)
endif(ALLEGRO_WITH_XWINDOWS)
-if(BEOS)
+if(HAIKU)
add_headers("" include/bealleg.h)
-endif(BEOS)
+endif(HAIKU)
#-----------------------------------------------------------------------------#
#

View File

@@ -1,51 +0,0 @@
diff -urN allegro-4.4.x-svn/CMakeLists.txt allegro-4.4.x-svn-haiku/CMakeLists.txt
--- allegro-4.4.x-svn/CMakeLists.txt 2012-11-18 01:16:37.000000000 -0800
+++ allegro-4.4.x-svn-haiku/CMakeLists.txt 2012-11-18 01:06:24.541065216 -0800
@@ -291,18 +291,18 @@
endif(COMPILER_GCC)
endif(APPLE)
-if(BEOS)
+if(HAIKU)
if(CMAKE_SYSTEM_NAME STREQUAL Haiku)
set(ALLEGRO_HAIKU 1)
- else(CMAKE_SYSTEM_NAME STREQUAL Haiku)
+ else(CMAKE_SYSTEM_NAME STREQUAL BeOS)
set(ALLEGRO_BEOS 1)
endif(CMAKE_SYSTEM_NAME STREQUAL Haiku)
set(WFLAGS "-W -Wall -Wno-unused -Wno-multichar")
set(WFLAGS_C_ONLY "")
set(WFLAGS_CXX_ONLY "-Wno-ctor-dtor-privacy")
-endif(BEOS)
+endif(HAIKU)
-if(UNIX AND NOT APPLE AND NOT BEOS)
+if(UNIX AND NOT APPLE AND NOT HAIKU)
set(ALLEGRO_UNIX 1)
endif()
@@ -628,10 +628,10 @@
# -- Haiku/BeOS --
-if(BEOS)
+if(HAIKU)
list(APPEND PLATFORM_SOURCES ${ALLEGRO_SRC_BEOS_FILES})
list(APPEND PLATFORM_LIBS game midi device)
-endif(BEOS)
+endif(HAIKU)
# -- Mac OS X --
@@ -727,9 +727,9 @@
if(ALLEGRO_WITH_XWINDOWS)
add_headers("" include/xalleg.h)
endif(ALLEGRO_WITH_XWINDOWS)
-if(BEOS)
+if(HAIKU)
add_headers("" include/bealleg.h)
-endif(BEOS)
+endif(HAIKU)
#-----------------------------------------------------------------------------#
#