diff --git a/media-libs/allegro/allegro-4.3.10-haiku-1.diff b/media-libs/allegro/allegro-4.3.10-haiku-1.diff new file mode 100644 index 000000000..8c1ce789b --- /dev/null +++ b/media-libs/allegro/allegro-4.3.10-haiku-1.diff @@ -0,0 +1,736 @@ +diff -urN allegro-4.3.10/fix.sh allegro-4.3.10-haiku/fix.sh +--- allegro-4.3.10/fix.sh 2008-01-01 13:59:18.000000000 -0800 ++++ allegro-4.3.10-haiku/fix.sh 2008-08-23 17:29:03.000000000 -0700 +@@ -9,7 +9,7 @@ + echo + echo "Usage: $0 [--quick|--dtou|--utod|--utom|--mtou]" + echo +- echo "Where platform is one of: bcc32, beos, djgpp, mingw, qnx, unix" ++ echo "Where platform is one of: bcc32, beos, djgpp, haiku, mingw, qnx, unix" + echo "mac, macosx, macosx-universal and watcom." + echo "The --quick parameter turns off text file conversion, --dtou converts from" + echo "DOS/Win32 format to Unix, --utod converts from Unix to DOS/Win32 format," +@@ -140,6 +140,7 @@ + "bcc32" ) proc_fix "Windows (BCC32)" "makefile.bcc" "ALLEGRO_BCC32";; + "beos" ) proc_fix "BeOS" "makefile.be" "ALLEGRO_BEOS";; + "djgpp" ) proc_fix "DOS (djgpp)" "makefile.dj" "ALLEGRO_DJGPP";; ++ "haiku" ) proc_fix "Haiku" "makefile.haiku" "ALLEGRO_HAIKU";; + "mingw" ) proc_fix "Windows (MinGW)" "makefile.mgw" "ALLEGRO_MINGW32";; + "mingw32" ) proc_fix "Windows (MinGW)" "makefile.mgw" "ALLEGRO_MINGW32";; + # The 'msvc' target is undocumented in the help message, but is used +diff -urN allegro-4.3.10/include/allegro/internal/alconfig.h allegro-4.3.10-haiku/include/allegro/internal/alconfig.h +--- allegro-4.3.10/include/allegro/internal/alconfig.h 2007-06-24 01:13:22.000000000 -0700 ++++ allegro-4.3.10-haiku/include/allegro/internal/alconfig.h 2008-08-25 22:04:47.000000000 -0700 +@@ -48,6 +48,8 @@ + #include "allegro/platform/albcc32.h" + #elif defined ALLEGRO_MSVC + #include "allegro/platform/almsvc.h" ++ #elif defined ALLEGRO_HAIKU ++ #include "allegro/platform/alhakcfg.h" + #elif defined ALLEGRO_BEOS + #include "allegro/platform/albecfg.h" + #elif defined ALLEGRO_MPW +diff -urN allegro-4.3.10/include/allegro/platform/ainthaiku.h allegro-4.3.10-haiku/include/allegro/platform/ainthaiku.h +--- allegro-4.3.10/include/allegro/platform/ainthaiku.h 1969-12-31 16:00:00.000000000 -0800 ++++ allegro-4.3.10-haiku/include/allegro/platform/ainthaiku.h 2006-03-18 07:05:34.000000000 -0800 +@@ -0,0 +1,151 @@ ++/* ______ ___ ___ ++ * /\ _ \ /\_ \ /\_ \ ++ * \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___ ++ * \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\ ++ * \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \ ++ * \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/ ++ * \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/ ++ * /\____/ ++ * \_/__/ ++ * ++ * Definitions for internal use by the BeOS configuration. ++ * ++ * By Jason Wilkins. ++ * ++ * See readme.txt for copyright information. ++ */ ++ ++ ++#include "bealleg.h" ++ ++#ifdef __cplusplus ++extern status_t ignore_result; ++ ++extern volatile int32 focus_count; ++#endif ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++#define WND_TITLE_SIZE 128 ++ ++AL_ARRAY(char, wnd_title); ++ ++int be_key_init(void); ++void be_key_exit(void); ++void be_key_set_leds(int leds); ++void be_key_set_rate(int delay, int repeat); ++void be_key_wait_for_input(void); ++void be_key_stop_waiting_for_input(void); ++void be_key_suspend(void); ++void be_key_resume(void); ++ ++int be_sys_init(void); ++void be_sys_exit(void); ++void _be_sys_get_executable_name(char *output, int size); ++void be_sys_get_executable_name(char *output, int size); ++int be_sys_find_resource(char *dest, AL_CONST char *resource, int size); ++void be_sys_set_window_title(AL_CONST char *name); ++int be_sys_set_close_button_callback(void (*proc)(void)); ++void be_sys_message(AL_CONST char *msg); ++int be_sys_set_display_switch_mode(int mode); ++int be_sys_desktop_color_depth(void); ++int be_sys_get_desktop_resolution(int *width, int *height); ++void be_sys_get_gfx_safe_mode(int *driver, struct GFX_MODE *mode); ++void be_sys_yield_timeslice(void); ++void *be_sys_create_mutex(void); ++void be_sys_destroy_mutex(void *handle); ++void be_sys_lock_mutex(void *handle); ++void be_sys_unlock_mutex(void *handle); ++void be_sys_suspend(void); ++void be_sys_resume(void); ++void be_main_suspend(void); ++void be_main_resume(void); ++ ++struct BITMAP *be_gfx_bwindowscreen_accel_init(int w, int h, int v_w, int v_h, int color_depth); ++struct BITMAP *be_gfx_bwindowscreen_init(int w, int h, int v_w, int v_h, int color_depth); ++void be_gfx_bwindowscreen_exit(struct BITMAP *b); ++void be_gfx_bwindowscreen_acquire(struct BITMAP *b); ++void be_gfx_bwindowscreen_release(struct BITMAP *b); ++void be_gfx_bwindowscreen_set_palette(AL_CONST struct RGB *p, int from, int to, int vsync); ++int be_gfx_bwindowscreen_scroll(int x, int y); ++int be_gfx_bwindowscreen_request_scroll(int x, int y); ++int be_gfx_bwindowscreen_poll_scroll(void); ++int be_gfx_bwindowscreen_request_video_bitmap(struct BITMAP *bitmap); ++void be_gfx_vsync(void); ++struct GFX_MODE_LIST *be_gfx_bwindowscreen_fetch_mode_list(void); ++void be_gfx_bwindowscreen_accelerate(int color_depth); ++#ifdef ALLEGRO_NO_ASM ++uintptr_t be_gfx_bwindowscreen_read_write_bank(BITMAP *bmp, int lyne); ++void be_gfx_bwindowscreen_unwrite_bank(BITMAP *bmp); ++#else ++uintptr_t _be_gfx_bwindowscreen_read_write_bank_asm(BITMAP *bmp, int lyne); ++void _be_gfx_bwindowscreen_unwrite_bank_asm(BITMAP *bmp); ++#endif ++ ++struct BITMAP *be_gfx_bdirectwindow_init(int w, int h, int v_w, int v_h, int color_depth); ++void be_gfx_bdirectwindow_exit(struct BITMAP *b); ++void be_gfx_bdirectwindow_acquire(struct BITMAP *bmp); ++void be_gfx_bdirectwindow_release(struct BITMAP *bmp); ++void be_gfx_bdirectwindow_set_palette(AL_CONST struct RGB *p, int from, int to, int vsync); ++ ++struct BITMAP *be_gfx_bwindow_init(int w, int h, int v_w, int v_h, int color_depth); ++void be_gfx_bwindow_exit(struct BITMAP *b); ++void be_gfx_bwindow_acquire(struct BITMAP *bmp); ++void be_gfx_bwindow_release(struct BITMAP *bmp); ++void be_gfx_bwindow_set_palette(AL_CONST struct RGB *p, int from, int to, int vsync); ++ ++#ifdef ALLEGRO_NO_ASM ++void _be_gfx_bwindow_unwrite_bank(BITMAP *bmp); ++uintptr_t _be_gfx_bwindow_read_write_bank(BITMAP *bmp, int lyne); ++#else ++void _be_gfx_bwindow_unwrite_bank_asm(BITMAP *bmp); ++uintptr_t _be_gfx_bwindow_read_write_bank_asm(BITMAP *bmp, int lyne); ++#endif ++ ++struct BITMAP *be_gfx_overlay_init(int w, int h, int v_w, int v_h, int color_depth); ++void be_gfx_overlay_exit(struct BITMAP *b); ++ ++int be_time_init(void); ++void be_time_exit(void); ++void be_time_rest(unsigned int tyme, AL_METHOD(void, callback, (void))); ++void be_time_suspend(void); ++void be_time_resume(void); ++ ++int be_mouse_init(void); ++void be_mouse_exit(void); ++void be_mouse_position(int x, int y); ++void be_mouse_set_range(int x1, int y_1, int x2, int y2); ++void be_mouse_set_speed(int xspeed, int yspeed); ++void be_mouse_get_mickeys(int *mickeyx, int *mickeyy); ++ ++int be_joy_init(void); ++void be_joy_exit(void); ++int be_joy_poll(void); ++ ++int be_sound_detect(int input); ++int be_sound_init(int input, int voices); ++void be_sound_exit(int input); ++void *be_sound_lock_voice(int voice, int start, int end); ++void be_sound_unlock_voice(int voice); ++int be_sound_buffer_size(void); ++int be_sound_set_mixer_volume(int volume); ++int be_sound_get_mixer_volume(void); ++void be_sound_suspend(void); ++void be_sound_resume(void); ++ ++int be_midi_detect(int input); ++int be_midi_init(int input, int voices); ++void be_midi_exit(int input); ++int be_midi_set_mixer_volume(int volume); ++int be_midi_get_mixer_volume(void); ++void be_midi_key_on(int inst, int note, int bend, int vol, int pan); ++void be_midi_key_off(int voice); ++void be_midi_set_volume(int voice, int vol); ++void be_midi_set_pitch(int voice, int note, int bend); ++void be_midi_set_pan(int voice, int pan); ++ ++#ifdef __cplusplus ++} ++#endif +diff -urN allegro-4.3.10/include/allegro/platform/alhaiku.h allegro-4.3.10-haiku/include/allegro/platform/alhaiku.h +--- allegro-4.3.10/include/allegro/platform/alhaiku.h 1969-12-31 16:00:00.000000000 -0800 ++++ allegro-4.3.10-haiku/include/allegro/platform/alhaiku.h 2002-10-01 11:05:12.000000000 -0700 +@@ -0,0 +1,76 @@ ++/* ______ ___ ___ ++ * /\ _ \ /\_ \ /\_ \ ++ * \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___ ++ * \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\ ++ * \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \ ++ * \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/ ++ * \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/ ++ * /\____/ ++ * \_/__/ ++ * ++ * BeOS specific definitions header file. ++ * ++ * By Jason Wilkins. ++ * ++ * See readme.txt for copyright information. ++ */ ++ ++ ++/* system driver */ ++#define SYSTEM_BEOS AL_ID('B','S','Y','S') ++AL_VAR(SYSTEM_DRIVER, system_beos); ++ ++/* timer driver */ ++#define TIMER_BEOS AL_ID('B','T','I','M') ++AL_VAR(TIMER_DRIVER, timer_beos); ++ ++/* keyboard driver */ ++#define KEYBOARD_BEOS AL_ID('B','K','E','Y') ++AL_VAR(KEYBOARD_DRIVER, keyboard_beos); ++ ++/* mouse driver */ ++#define MOUSE_BEOS AL_ID('B','M','O','U') ++AL_VAR(MOUSE_DRIVER, mouse_beos); ++ ++/* joystick driver */ ++#define JOYSTICK_BEOS AL_ID('B','J','O','Y') ++AL_VAR(JOYSTICK_DRIVER, joystick_beos); ++ ++/* graphics drivers */ ++#define GFX_BWINDOWSCREEN_ACCEL AL_ID('B','W','S','A') ++#define GFX_BWINDOWSCREEN AL_ID('B','W','S',' ') ++AL_VAR(GFX_DRIVER, gfx_beos_bwindowscreen_accel); ++AL_VAR(GFX_DRIVER, gfx_beos_bwindowscreen); ++ ++#define GFX_BDIRECTWINDOW AL_ID('B','D','W','N') ++#define GFX_BWINDOW AL_ID('B','W','N',' ') ++AL_VAR(GFX_DRIVER, gfx_beos_bdirectwindow); ++AL_VAR(GFX_DRIVER, gfx_beos_bwindow); ++ ++#define GFX_BWINDOW_OVERLAY AL_ID('B','O','V','L') ++AL_VAR(GFX_DRIVER, gfx_beos_overlay); ++ ++/* digi drivers */ ++#define DIGI_BEOS AL_ID('B','D','I','G') ++AL_VAR(DIGI_DRIVER, digi_beos); ++ ++/* midi drivers */ ++#define MIDI_BEOS AL_ID('B','M','I','D') ++AL_VAR(MIDI_DRIVER, midi_beos); ++ ++#define GFX_DRIVER_BEOS \ ++ { GFX_BWINDOWSCREEN_ACCEL, &gfx_beos_bwindowscreen_accel, TRUE }, \ ++ { GFX_BWINDOWSCREEN, &gfx_beos_bwindowscreen, TRUE }, \ ++ { GFX_BDIRECTWINDOW, &gfx_beos_bdirectwindow, TRUE }, \ ++ { GFX_BWINDOW, &gfx_beos_bwindow, TRUE }, \ ++ { GFX_BWINDOW_OVERLAY, &gfx_beos_overlay, TRUE }, ++ ++#define DIGI_DRIVER_BEOS \ ++ { DIGI_BEOS, &digi_beos, TRUE }, ++ ++#define MIDI_DRIVER_BEOS \ ++ { MIDI_BEOS, &midi_beos, TRUE }, ++ ++#define JOYSTICK_DRIVER_BEOS \ ++ { JOYSTICK_BEOS, &joystick_beos, TRUE }, ++ +diff -urN allegro-4.3.10/include/allegro/platform/alhakcfg.h allegro-4.3.10-haiku/include/allegro/platform/alhakcfg.h +--- allegro-4.3.10/include/allegro/platform/alhakcfg.h 1969-12-31 16:00:00.000000000 -0800 ++++ allegro-4.3.10-haiku/include/allegro/platform/alhakcfg.h 2008-08-25 22:07:11.000000000 -0700 +@@ -0,0 +1,43 @@ ++/* ______ ___ ___ ++ * /\ _ \ /\_ \ /\_ \ ++ * \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___ ++ * \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\ ++ * \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \ ++ * \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/ ++ * \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/ ++ * /\____/ ++ * \_/__/ ++ * ++ * Configuration defines for use with BeOS. ++ * ++ * By Jason Wilkins. ++ * ++ * See readme.txt for copyright information. ++ */ ++ ++ ++#include ++#include ++ ++/* provide implementations of missing functions */ ++#define ALLEGRO_NO_STRICMP ++#define ALLEGRO_NO_STRLWR ++#define ALLEGRO_NO_STRUPR ++ ++/* a static auto config */ ++#define ALLEGRO_HAVE_DIRENT_H 1 ++#define ALLEGRO_HAVE_INTTYPES_H 1 /* TODO: check this */ ++#define ALLEGRO_HAVE_STDINT_H 1 /* TODO: check this */ ++#define ALLEGRO_HAVE_SYS_TIME_H 1 ++ ++/* describe this platform */ ++#define ALLEGRO_PLATFORM_STR "Haiku" ++#define ALLEGRO_LITTLE_ENDIAN ++#define ALLEGRO_CONSOLE_OK ++#define ALLEGRO_USE_CONSTRUCTOR ++#define ALLEGRO_MULTITHREADED ++ ++/* arrange for other headers to be included later on */ ++#define ALLEGRO_EXTRA_HEADER "allegro/platform/alhaiku.h" ++#define ALLEGRO_INTERNAL_HEADER "allegro/platform/ainthaiku.h" ++#define ALLEGRO_ASMCAPA_HEADER "obj/beos/asmcapa.h" +diff -urN allegro-4.3.10/makefile.all allegro-4.3.10-haiku/makefile.all +--- allegro-4.3.10/makefile.all 2008-01-14 03:55:28.000000000 -0800 ++++ allegro-4.3.10-haiku/makefile.all 2008-08-23 17:44:44.000000000 -0700 +@@ -8,7 +8,7 @@ + # DEBUGMODE=2 selects a build intended to debug Allegro itself. + # PROFILEMODE=1 selects a profiling build. + # WARNMODE=1 selects strict compiler warnings. +-# STATICLINK=1 use static linking (MinGW32, MSVC, BeOS). ++# STATICLINK=1 use static linking (MinGW32, MSVC, BeOS, Haiku). + # STATICRUNTIME=1 link to a static C runtime library (/MT) (MSVC) + # TARGET_ARCH_COMPAT optimize for the given processor while preserving backwards + # compatibility with older processors (GCC-based platforms). +@@ -132,7 +132,7 @@ + # XXX this is duplicated in makefile.in + DOCBASEFILES = ahack changes faq mistakes help thanks allegro const abi api packfile \ + readme makedoc datafile grabber dat dat2c dat2s license addons targets +-DOCBUILDFILES = bcc32 beos darwin djgpp dmc linux macosx mingw32 msvc qnx unix watcom ++DOCBUILDFILES = bcc32 beos darwin djgpp dmc haiku linux macosx mingw32 msvc qnx unix watcom + DOCTXTBUILDFILES = $(addprefix docs/build/,$(addsuffix .txt,$(DOCBUILDFILES))) + + DOCS = $(addprefix docs/txt/,$(addsuffix .txt,$(filter-out changes thanks readme, $(DOCBASEFILES)))) +diff -urN allegro-4.3.10/makefile.haiku allegro-4.3.10-haiku/makefile.haiku +--- allegro-4.3.10/makefile.haiku 1969-12-31 16:00:00.000000000 -0800 ++++ allegro-4.3.10-haiku/makefile.haiku 2008-08-25 21:19:47.000000000 -0700 +@@ -0,0 +1,315 @@ ++# ++# Rules for building the Allegro library with Haiku. This file is included ++# by the primary makefile, and should not be used directly. ++# ++# The "depend" target uses sed. ++# ++# See makefile.all for a list of the available targets. ++ ++ ++ ++# -------- define some variables that the primary makefile will use -------- ++ ++PLATFORM = Haiku ++CC = gcc ++EXE = ++OBJ = .o ++HTML = html ++ ++PLATFORM_DIR = obj/beos ++ ++UNIX_TOOLS = 1 ++ ++ifdef STATICLINK ++ ++# -------- link as a static library -------- ++OBJ_DIR = obj/beos/$(VERSION) ++LIB_NAME = lib/beos/lib$(VERSION).a ++ ++else ++ ++# -------- link as a DLL -------- ++OBJ_DIR = obj/beos/$(VERSION) ++LIB_NAME = lib/beos/lib$(VERSION)-$(shared_version).so ++ ++endif # STATICLINK ++ ++# -------- give a sensible default target for make without any args -------- ++ ++.PHONY: _default ++ ++_default: default ++ ++ ++# -------- decide what compiler options to use -------- ++ ++ifdef WARNMODE ++WFLAGS = -Wall -W -Wstrict-prototypes -Wno-unused -Wno-multichar -Wno-ctor-dtor-privacy -Werror ++else ++WFLAGS = -Wall -Wno-unused -Wno-multichar -Wno-ctor-dtor-privacy ++endif ++ ++ifdef TARGET_ARCH_COMPAT ++ TARGET_ARCH = $(GCC_MTUNE)=$(TARGET_ARCH_COMPAT) ++else ++ ifdef TARGET_ARCH_EXCL ++ TARGET_ARCH = -march=$(TARGET_ARCH_EXCL) ++ else ++ TARGET_ARCH = $(GCC_MTUNE)=i586 ++ endif ++endif ++ ++ifndef TARGET_OPTS ++ TARGET_OPTS = -O6 -funroll-loops -ffast-math ++endif ++ ++OFLAGS = $(TARGET_ARCH) $(TARGET_OPTS) ++ ++CFLAGS = -DALLEGRO_LIB_BUILD ++ ++ ++ ++ifdef DEBUGMODE ++ ++# -------- debugging build -------- ++CFLAGS += -DDEBUGMODE=$(DEBUGMODE) $(WFLAGS) -g -O0 ++SFLAGS = -DDEBUGMODE=$(DEBUGMODE) $(WFLAGS) ++LFLAGS = -g ++ ++else ++ifdef PROFILEMODE ++ ++# -------- profiling build -------- ++CFLAGS += $(WFLAGS) $(OFLAGS) -pg ++SFLAGS = $(WFLAGS) ++LFLAGS = -pg ++ ++else ++ ++# -------- optimised build -------- ++CFLAGS += $(WFLAGS) $(OFLAGS) -fomit-frame-pointer ++SFLAGS = $(WFLAGS) ++ ++ifndef SYMBOLMODE ++LFLAGS = -s ++else ++LFLAGS = ++endif ++ ++endif ++endif ++ ++ ++# -------- list which platform specific objects to include -------- ++ ++VPATH = src/haiku src/misc src/unix tools/haiku ++ ++ifdef ALLEGRO_USE_C ++ ++# ------ build a C-only version ------ ++ ++VPATH += src/c ++MY_OBJECTS = $(C_OBJECTS) cmiscs ++CFLAGS += ++ ++else ++ ++# ------ build the normal asm version ------ ++ ++VPATH += src/i386 ++MY_OBJECTS = $(I386_OBJECTS) ++ ++endif # ALLEGRO_USE_C ++ ++OBJECT_LIST = $(COMMON_OBJECTS) $(MY_OBJECTS) $(basename $(notdir $(ALLEGRO_SRC_HAIKU_FILES))) ++ ++LIBRARIES = -lbe -lgame -ldevice -lmidi -lmedia -lnetwork ++ ++PROGRAMS = bfixicon ++ ++bfixicon: tools/haiku/bfixicon ++ ++DISTCLEAN_FILES += tools/haiku/bfixicon ++ ++ ++ ++# -------- rules for installing and removing the library files -------- ++ ++INSTALLDIR = /boot/develop ++LIBDIR = lib/x86 ++INCDIR = headers ++ ++SHARED_LIBDIR = /boot/common/lib ++ ++ ++ifdef STATICLINK ++ ++$(INSTALLDIR)/$(LIBDIR)/lib$(VERSION).a: $(LIB_NAME) ++ cp $< $@ ++ ++else ++ ++$(SHARED_LIBDIR)/lib$(VERSION)-$(shared_version).so: $(LIB_NAME) ++ cp $< $@ ++ ++endif ++ ++ ++/bin/allegro-config: ++ifdef STATICLINK ++ sed -e "s/@LINK_WITH_STATIC_LIBS@/yes/" misc/allegro-config.in >temp ++else ++ sed -e "s/@LINK_WITH_STATIC_LIBS@/no/" misc/allegro-config.in >temp ++endif ++ sed -e "s/@prefix@/\/boot\/develop/" temp > temp2 ++ sed -e "s/@LIB_TO_LINK@/$(VERSION)/" temp2 > temp ++ sed -e "s/@LDFLAGS@//" temp > temp2 ++ sed -e "s/@LIBS@/$(LIBRARIES)/" temp2 > temp ++ sed -e "s/include/headers/" temp >temp2 ++ sed -e "s/ -l\$${lib_type}_unsharable//" temp2 >temp ++ sed -e "s/libdirs=-L\$${exec_prefix}\/lib/libdirs=\"-L\$${exec_prefix}\/lib\/x86 -L\/boot\/common\/lib\"/" temp >/bin/allegro-config ++ rm -f temp temp2 ++ chmod a+x /bin/allegro-config ++ ++ ++HEADERS = $(INSTALLDIR)/$(INCDIR)/bealleg.h \ ++ $(INSTALLDIR)/$(INCDIR)/allegro/platform/aintbeos.h \ ++ $(INSTALLDIR)/$(INCDIR)/allegro/platform/al386gcc.h \ ++ $(INSTALLDIR)/$(INCDIR)/allegro/platform/albecfg.h \ ++ $(INSTALLDIR)/$(INCDIR)/allegro/platform/alplatf.h \ ++ $(INSTALLDIR)/$(INCDIR)/allegro/platform/astdint.h \ ++ $(INSTALLDIR)/$(INCDIR)/allegro/platform/albeos.h ++ ++ifdef STATICLINK ++ INSTALL_FILES = $(INSTALLDIR)/$(LIBDIR)/lib$(VERSION).a ++else ++ INSTALL_FILES = $(SHARED_LIBDIR)/lib$(VERSION)-$(shared_version).so ++endif ++ ++INSTALL_FILES += $(HEADERS) /bin/allegro-config ++ ++ ++install: generic-install ++ @echo The $(DESCRIPTION) $(PLATFORM) library has been installed. ++ ++UNINSTALL_FILES = $(INSTALLDIR)/$(LIBDIR)/liballeg.a \ ++ $(INSTALLDIR)/$(LIBDIR)/liballd.a \ ++ $(INSTALLDIR)/$(LIBDIR)/liballp.a \ ++ $(SHARED_LIBDIR)/liballeg-$(shared_version).so \ ++ $(SHARED_LIBDIR)/liballd-$(shared_version).so \ ++ $(SHARED_LIBDIR)/liballp-$(shared_version).so \ ++ $(HEADERS) \ ++ /bin/allegro-config ++ ++uninstall: generic-uninstall ++ @echo All gone! ++ ++ ++ ++# -------- test capabilities -------- ++ ++TEST_CPP = @echo ...system compiler ++ ++include makefile.tst ++ ++ ++ ++# -------- finally, we get to the fun part... -------- ++ ++ifdef PROFILEMODE ++OTHER_OBJECTS = /boot/develop/lib/x86/i386-mcount.o ++endif ++ ++ifdef STATICLINK ++ ++# -------- link as a static library -------- ++define MAKE_LIB ++ar rs $(LIB_NAME) $(OBJECTS) $(OTHER_OBJECTS) ++endef ++ ++else ++ ++# -------- link as a shared library -------- ++ ++define MAKE_LIB ++$(CC) -nostart $(PFLAGS) -o $(LIB_NAME) $(OBJECTS) $(OTHER_OBJECTS) $(LIBRARIES) ++endef ++ ++endif # STATICLINK ++ ++COMPILE_FLAGS = $(subst src/,-DALLEGRO_SRC ,$(findstring src/, $<))$(CFLAGS) ++ ++$(OBJ_DIR)/%.o: %.c ++ $(CC) $(COMPILE_FLAGS) -I. -I./include -o $@ -c $< ++ ++$(OBJ_DIR)/%.o: %.cpp ++ $(CC) $(COMPILE_FLAGS) -I. -I./include -o $@ -c $< ++ ++$(OBJ_DIR)/%.o: %.s ++ $(CC) $(SFLAGS) -I. -I./include -x assembler-with-cpp -o $@ -c $< ++ ++demos/shooter/shooter: $(OBJECTS_SHOOTER) $(LIB_NAME) ++ $(CC) $(LFLAGS) -o $@ $(OBJECTS_SHOOTER) $(LIB_NAME) $(LIBRARIES) ++ ++demos/skater/skater: $(OBJECTS_SKATER) $(LIB_NAME) ++ $(CC) $(LFLAGS) -o $@ $(OBJECTS_SKATER) $(LIB_NAME) $(LIBRARIES) ++ ++*/%: $(OBJ_DIR)/%.o $(LIB_NAME) ++ $(CC) $(LFLAGS) -o $@ $< $(LIB_NAME) $(LIBRARIES) ++ ++obj/haiku/asmdef.inc: obj/haiku/asmdef ++ obj/haiku/asmdef obj/haiku/asmdef.inc ++ ++obj/haiku/asmdef: src/i386/asmdef.c include/*.h include/allegro/*.h obj/haiku/asmcapa.h ++ $(CC) -O $(WFLAGS) -I. -I./include -o obj/haiku/asmdef src/i386/asmdef.c ++ ++define LINK_WITHOUT_LIB ++ $(CC) $(LFLAGS) -o $@ $^ $(OTHER_OBJECTS) ++endef ++ ++PLUGIN_LIB = lib/haiku/lib$(VERY_SHORT_VERSION)dat.a ++PLUGINS_H = obj/haiku/plugins.h ++PLUGIN_DEPS = $(LIB_NAME) $(PLUGIN_LIB) ++PLUGIN_SCR = scr ++ ++define GENERATE_PLUGINS_H ++cat tools/plugins/*.inc > obj/haiku/plugins.h ++endef ++ ++define MAKE_PLUGIN_LIB ++ar rs $(PLUGIN_LIB) $(PLUGIN_OBJS) ++endef ++ ++define LINK_WITH_PLUGINS ++$(CC) $(LFLAGS) -o $@ $< $(strip $(PLUGIN_LIB) $(addprefix @,$(PLUGIN_SCRIPTS)) $(LIB_NAME)) ++endef ++ ++tools/haiku/%: $(OBJ_DIR)/%.o $(LIB_NAME) ++ $(CC) $(LFLAGS) -o $@ $< $(LIB_NAME) $(LIBRARIES) ++ ++ ++ ++# -------- demo program iconification -------- ++ ++.PHONY: fixdemo ++ ++fixdemo: demos/shooter/shooter demo/demo.dat tools/haiku/bfixicon ++ tools/haiku/bfixicon demos/shooter/shooter -d demos/shooter/demo.dat SHIP3 GAME_PAL ++ ++ ++ ++# -------- generate automatic dependencies -------- ++ ++DEPEND_PARAMS = -MM -MG -I. -I./include -DSCAN_DEPEND -DALLEGRO_HAIKU ++ ++depend: ++ $(CC) $(DEPEND_PARAMS) src/*.c src/haiku/*.c src/i386/*.c src/misc/*.c src/unix/*.c demos/shooter/*.c > _depend.tmp ++ $(CC) $(DEPEND_PARAMS) docs/src/makedoc/*.c examples/*.c setup/*.c tests/*.c tools/*.c tools/plugins/*.c >> _depend.tmp ++ $(CC) $(DEPEND_PARAMS) demos/skater/source/*.c >> _depend.tmp ++ $(CC) $(DEPEND_PARAMS) -x c src/haiku/*.cpp tests/*.cpp tools/haiku/*.cpp >> _depend.tmp ++ $(CC) $(DEPEND_PARAMS) -x assembler-with-cpp src/i386/*.s src/misc/*.s >> _depend.tmp ++ sed -e "s/^[a-zA-Z0-9_\/]*\///" _depend.tmp > _depend2.tmp ++ sed -e "s/^\([a-zA-Z0-9_]*\.o *:\)/obj\/haiku\/alleg\/\1/" _depend2.tmp > obj/haiku/alleg/makefile.dep ++ sed -e "s/^\([a-zA-Z0-9_]*\.o *:\)/obj\/haiku\/alld\/\1/" _depend2.tmp > obj/haiku/alld/makefile.dep ++ sed -e "s/^\([a-zA-Z0-9_]*\.o *:\)/obj\/haiku\/allp\/\1/" _depend2.tmp > obj/haiku/allp/makefile.dep ++ rm _depend.tmp _depend2.tmp +diff -urN allegro-4.3.10/misc/mkunixdists.sh allegro-4.3.10-haiku/misc/mkunixdists.sh +--- allegro-4.3.10/misc/mkunixdists.sh 2008-01-10 13:45:48.000000000 -0800 ++++ allegro-4.3.10-haiku/misc/mkunixdists.sh 2008-08-23 20:56:44.000000000 -0700 +@@ -73,9 +73,9 @@ + # Hack'n'slash + echo "Stripping to form end-user distribution" + (cd $dir/$basename && { +- (cd src && rm -rf beos qnx dos mac ppc win) +- (cd obj && rm -rf bcc32 beos qnx djgpp mingw32 msvc watcom) +- (cd lib && rm -rf bcc32 beos qnx djgpp mingw32 msvc watcom) ++ (cd src && rm -rf beos haiku qnx dos mac ppc win) ++ (cd obj && rm -rf bcc32 beos haiku qnx djgpp mingw32 msvc watcom) ++ (cd lib && rm -rf bcc32 beos haiku qnx djgpp mingw32 msvc watcom) + (cd include && rm -f bealleg.h qnxalleg.h macalleg.h winalleg.h) + (cd misc && rm -f cmplog.pl dllsyms.lst findtext.sh fixpatch.sh fixver.sh) + (cd misc && rm -f allegro-config-qnx.sh zipup.sh zipwin.sh *.bat *.c) +@@ -91,11 +91,11 @@ + + # jpgalleg addon + (cd addons/jpgalleg && rm -rf examples) +- (cd addons/jpgalleg && rm -f makefile.be makefile.mgw makefile.dj) ++ (cd addons/jpgalleg && rm -f makefile.be makefile.haiku makefile.mgw makefile.dj) + (cd addons/jpgalleg && rm -f makefile.osx makefile.vc fix.bat readme.txt) + (cd addons/jpgalleg/misc && rm -f fixver.sh runner.c) +- (cd addons/jpgalleg/lib && rm -rf beos djgpp macosx mingw32 msvc) +- (cd addons/jpgalleg/obj && rm -rf beos djgpp macosx mingw32 msvc) ++ (cd addons/jpgalleg/lib && rm -rf beos djgpp haiku macosx mingw32 msvc) ++ (cd addons/jpgalleg/obj && rm -rf beos djgpp haiku macosx mingw32 msvc) + + # logg addon + (cd addons/logg && rm -f Makefile.mingw play_ogg.c stream_ogg.c fix.bat) +diff -urN allegro-4.3.10/misc/zipup.sh allegro-4.3.10-haiku/misc/zipup.sh +--- allegro-4.3.10/misc/zipup.sh 2008-01-19 04:16:56.000000000 -0800 ++++ allegro-4.3.10-haiku/misc/zipup.sh 2008-08-23 20:53:10.000000000 -0700 +@@ -126,6 +126,14 @@ + make depend UNIX_TOOLS=1 CC=gcc + + ++# generate dependencies for Haiku ++echo "Generating Haiku dependencies..." ++ ++./fix.sh haiku --quick ++ ++make depend UNIX_TOOLS=1 CC=gcc ++ ++ + # generate dependencies for QNX + echo "Generating QNX dependencies..." + +@@ -164,7 +172,7 @@ + for base in abi ahack allegro const faq help mistakes; do + ./_makedoc.exe -ascii docs/txt/$base.txt docs/src/$base._tx + done +-for base in bcc32 beos darwin djgpp linux macosx mingw32 msvc qnx unix watcom; do ++for base in bcc32 beos darwin djgpp haiku linux macosx mingw32 msvc qnx unix watcom; do + ./_makedoc.exe -ascii docs/build/$base.txt docs/src/build/$base._tx + done + +diff -urN allegro-4.3.10/tools/dat2c.c allegro-4.3.10-haiku/tools/dat2c.c +--- allegro-4.3.10/tools/dat2c.c 2005-04-28 02:53:38.000000000 -0700 ++++ allegro-4.3.10-haiku/tools/dat2c.c 2008-08-23 20:44:06.000000000 -0700 +@@ -342,7 +342,7 @@ + } + + if (dat2c->lformat == lineformat_default) +-#if (defined ALLEGRO_UNIX || defined ALLEGRO_QNX || defined ALLEGRO_BEOS || defined ALLEGRO_MACOSX) ++#if (defined ALLEGRO_UNIX || defined ALLEGRO_QNX || defined ALLEGRO_BEOS || defined ALLEGRO_HAIKU || defined ALLEGRO_MACOSX) + dat2c->lformat = lineformat_unix; + #elif (defined ALLEGRO_WINDOWS || defined ALLEGRO_DOS) + dat2c->lformat = lineformat_dos; +diff -urN allegro-4.3.10/tools/datedit.c allegro-4.3.10-haiku/tools/datedit.c +--- allegro-4.3.10/tools/datedit.c 2007-10-08 09:23:36.000000000 -0700 ++++ allegro-4.3.10-haiku/tools/datedit.c 2008-08-23 20:42:07.000000000 -0700 +@@ -121,6 +121,8 @@ + #include "obj/dmc/plugins.h" + #elif defined ALLEGRO_BEOS + #include "obj/beos/plugins.h" ++ #elif defined ALLEGRO_HAIKU ++ #include "obj/beos/plugins.h" + #elif defined ALLEGRO_BCC32 + #include "obj/bcc32/plugins.h" + #elif defined ALLEGRO_MPW