Files
haikuports/games-emulation/mame/patches/mame-0.286.patchset
2026-02-26 17:38:34 +01:00

1047 lines
37 KiB
Plaintext

From acd9b2f42c982dbd58d7a043aedcc792b8cbc447 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Wed, 10 Jun 2020 22:35:16 +1000
Subject: Haiku patches
diff --git a/3rdparty/bgfx/3rdparty/dear-imgui/widgets/file_list.inl b/3rdparty/bgfx/3rdparty/dear-imgui/widgets/file_list.inl
index fda99b6..a83e72c 100644
--- a/3rdparty/bgfx/3rdparty/dear-imgui/widgets/file_list.inl
+++ b/3rdparty/bgfx/3rdparty/dear-imgui/widgets/file_list.inl
@@ -32,6 +32,7 @@ namespace ImGui
}
else if (0 != ImStricmp(item->d_name, ".") )
{
+#ifndef __HAIKU__
if (item->d_type & DT_DIR)
{
FileList.push_back(ImFileInfo(item->d_name, -1) );
@@ -42,6 +43,7 @@ namespace ImGui
stat(item->d_name, &statbuf);
FileList.push_back(ImFileInfo(item->d_name, statbuf.st_size) );
}
+#endif
}
}
diff --git a/3rdparty/genie/build/gmake.haiku/Makefile b/3rdparty/genie/build/gmake.haiku/Makefile
new file mode 100644
index 0000000..be9880c
--- /dev/null
+++ b/3rdparty/genie/build/gmake.haiku/Makefile
@@ -0,0 +1,34 @@
+# GNU Make solution makefile autogenerated by GENie
+# Type "make help" for usage help
+
+ifndef config
+ config=release
+endif
+export config
+
+PROJECTS := genie
+
+.PHONY: all clean help $(PROJECTS)
+
+all: $(PROJECTS)
+
+genie:
+ @echo "==== Building genie ($(config)) ===="
+ @${MAKE} --no-print-directory -C . -f genie.make
+
+clean:
+ @${MAKE} --no-print-directory -C . -f genie.make clean
+
+help:
+ @echo "Usage: make [config=name] [target]"
+ @echo ""
+ @echo "CONFIGURATIONS:"
+ @echo " release"
+ @echo " debug"
+ @echo ""
+ @echo "TARGETS:"
+ @echo " all (default)"
+ @echo " clean"
+ @echo " genie"
+ @echo ""
+ @echo "For more information, see https://github.com/bkaradzic/genie"
diff --git a/3rdparty/genie/build/gmake.haiku/genie.make b/3rdparty/genie/build/gmake.haiku/genie.make
new file mode 100644
index 0000000..73f650c
--- /dev/null
+++ b/3rdparty/genie/build/gmake.haiku/genie.make
@@ -0,0 +1,488 @@
+# GNU Make project makefile autogenerated by GENie
+ifndef config
+ config=release
+endif
+
+ifndef verbose
+ SILENT = @
+endif
+
+SHELLTYPE := msdos
+ifeq (,$(ComSpec)$(COMSPEC))
+ SHELLTYPE := posix
+endif
+ifeq (/bin,$(findstring /bin,$(SHELL)))
+ SHELLTYPE := posix
+endif
+ifeq (/bin,$(findstring /bin,$(MAKESHELL)))
+ SHELLTYPE := posix
+endif
+
+ifeq (posix,$(SHELLTYPE))
+ MKDIR = $(SILENT) mkdir -p "$(1)"
+ COPY = $(SILENT) cp -fR "$(1)" "$(2)"
+ RM = $(SILENT) rm -f "$(1)"
+else
+ MKDIR = $(SILENT) mkdir "$(subst /,\\,$(1))" 2> nul || exit 0
+ COPY = $(SILENT) copy /Y "$(subst /,\\,$(1))" "$(subst /,\\,$(2))"
+ RM = $(SILENT) del /F "$(subst /,\\,$(1))" 2> nul || exit 0
+endif
+
+CC = gcc
+CXX = g++
+AR = ar
+
+ifndef RESCOMP
+ ifdef WINDRES
+ RESCOMP = $(WINDRES)
+ else
+ RESCOMP = windres
+ endif
+endif
+
+MAKEFILE = genie.make
+
+ifeq ($(config),release)
+ OBJDIR = obj/Release
+ TARGETDIR = ../../bin/haiku
+ override TARGET = $(TARGETDIR)/genie
+ DEFINES += -DNDEBUG -DLUA_COMPAT_MODULE -DLUA_USE_POSIX -DLUA_USE_DLOPEN
+ INCLUDES += -I"../../src/host/lua-5.3.0/src"
+ INCLUDES +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES)
+ ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os
+ ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os
+ ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os
+ ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -Os
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ ALL_LDFLAGS += $(LDFLAGS) -L. -s
+ LDDEPS +=
+ LIBS += $(LDDEPS) -lm -lbsd
+ EXTERNAL_LIBS +=
+ LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
+ OBJECTS := \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lapi.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lbaselib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lbitlib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lcode.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lcorolib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lctype.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/ldblib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/ldebug.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/ldo.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/ldump.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lfunc.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lgc.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/linit.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/liolib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/llex.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lmathlib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lmem.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/loadlib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lobject.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lopcodes.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/loslib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lparser.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lstate.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lstring.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lstrlib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/ltable.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/ltablib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/ltm.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lundump.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lutf8lib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lvm.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lzio.o \
+ $(OBJDIR)/src/host/os_chdir.o \
+ $(OBJDIR)/src/host/os_copyfile.o \
+ $(OBJDIR)/src/host/os_getcwd.o \
+ $(OBJDIR)/src/host/os_is64bit.o \
+ $(OBJDIR)/src/host/os_isdir.o \
+ $(OBJDIR)/src/host/os_isfile.o \
+ $(OBJDIR)/src/host/os_match.o \
+ $(OBJDIR)/src/host/os_mkdir.o \
+ $(OBJDIR)/src/host/os_pathsearch.o \
+ $(OBJDIR)/src/host/os_rmdir.o \
+ $(OBJDIR)/src/host/os_stat.o \
+ $(OBJDIR)/src/host/os_ticks.o \
+ $(OBJDIR)/src/host/os_uuid.o \
+ $(OBJDIR)/src/host/path_getabsolute.o \
+ $(OBJDIR)/src/host/path_getrelative.o \
+ $(OBJDIR)/src/host/path_helpers.o \
+ $(OBJDIR)/src/host/path_isabsolute.o \
+ $(OBJDIR)/src/host/premake.o \
+ $(OBJDIR)/src/host/premake_main.o \
+ $(OBJDIR)/src/host/scripts.o \
+ $(OBJDIR)/src/host/string_endswith.o \
+ $(OBJDIR)/src/host/string_hash.o \
+
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+endif
+
+ifeq ($(config),debug)
+ OBJDIR = obj/Debug
+ TARGETDIR = ../../bin/linux
+ override TARGET = $(TARGETDIR)/genie
+ DEFINES += -D_DEBUG -DLUA_COMPAT_MODULE -DLUA_USE_POSIX -DLUA_USE_DLOPEN
+ INCLUDES += -I"../../src/host/lua-5.3.0/src"
+ INCLUDES +=
+ ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -MP $(DEFINES) $(INCLUDES)
+ ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
+ ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
+ ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
+ ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
+ ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH) -Wall -Wextra -g
+ ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)
+ ALL_LDFLAGS += $(LDFLAGS) -L.
+ LDDEPS +=
+ LIBS += $(LDDEPS) -lm -lbsd
+ EXTERNAL_LIBS +=
+ LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)
+ OBJECTS := \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lapi.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lbaselib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lbitlib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lcode.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lcorolib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lctype.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/ldblib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/ldebug.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/ldo.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/ldump.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lfunc.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lgc.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/linit.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/liolib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/llex.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lmathlib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lmem.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/loadlib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lobject.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lopcodes.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/loslib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lparser.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lstate.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lstring.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lstrlib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/ltable.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/ltablib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/ltm.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lundump.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lutf8lib.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lvm.o \
+ $(OBJDIR)/src/host/lua-5.3.0/src/lzio.o \
+ $(OBJDIR)/src/host/os_chdir.o \
+ $(OBJDIR)/src/host/os_copyfile.o \
+ $(OBJDIR)/src/host/os_getcwd.o \
+ $(OBJDIR)/src/host/os_is64bit.o \
+ $(OBJDIR)/src/host/os_isdir.o \
+ $(OBJDIR)/src/host/os_isfile.o \
+ $(OBJDIR)/src/host/os_match.o \
+ $(OBJDIR)/src/host/os_mkdir.o \
+ $(OBJDIR)/src/host/os_pathsearch.o \
+ $(OBJDIR)/src/host/os_rmdir.o \
+ $(OBJDIR)/src/host/os_stat.o \
+ $(OBJDIR)/src/host/os_ticks.o \
+ $(OBJDIR)/src/host/os_uuid.o \
+ $(OBJDIR)/src/host/path_getabsolute.o \
+ $(OBJDIR)/src/host/path_getrelative.o \
+ $(OBJDIR)/src/host/path_helpers.o \
+ $(OBJDIR)/src/host/path_isabsolute.o \
+ $(OBJDIR)/src/host/premake.o \
+ $(OBJDIR)/src/host/premake_main.o \
+ $(OBJDIR)/src/host/scripts.o \
+ $(OBJDIR)/src/host/string_endswith.o \
+ $(OBJDIR)/src/host/string_hash.o \
+
+ define PREBUILDCMDS
+ endef
+ define PRELINKCMDS
+ endef
+ define POSTBUILDCMDS
+ endef
+endif
+
+OBJDIRS := \
+ $(OBJDIR) \
+ $(OBJDIR)/src/host \
+ $(OBJDIR)/src/host/lua-5.3.0/src \
+
+RESOURCES := \
+
+.PHONY: clean prebuild prelink
+
+all: $(OBJDIRS) $(TARGETDIR) prebuild prelink $(TARGET)
+ @:
+
+$(TARGET): $(GCH) $(OBJECTS) $(LDDEPS) $(EXTERNAL_LIBS) $(RESOURCES) | $(TARGETDIR) $(OBJDIRS)
+ @echo Linking genie
+ $(SILENT) $(LINKCMD)
+ $(POSTBUILDCMDS)
+
+$(TARGETDIR):
+ @echo Creating $(TARGETDIR)
+ -$(call MKDIR,$(TARGETDIR))
+
+$(OBJDIRS):
+ @echo Creating $(@)
+ -$(call MKDIR,$@)
+
+clean:
+ @echo Cleaning genie
+ifeq (posix,$(SHELLTYPE))
+ $(SILENT) rm -f $(TARGET)
+ $(SILENT) rm -rf $(OBJDIR)
+else
+ $(SILENT) if exist $(subst /,\\,$(TARGET)) del $(subst /,\\,$(TARGET))
+ $(SILENT) if exist $(subst /,\\,$(OBJDIR)) rmdir /s /q $(subst /,\\,$(OBJDIR))
+endif
+
+prebuild:
+ $(PREBUILDCMDS)
+
+prelink:
+ $(PRELINKCMDS)
+
+ifneq (,$(PCH))
+$(GCH): $(PCH) $(MAKEFILE) | $(OBJDIR)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) -x c-header $(DEFINES) $(INCLUDES) -o "$@" -c "$<"
+
+$(GCH_OBJC): $(PCH) $(MAKEFILE) | $(OBJDIR)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_OBJCFLAGS) -x objective-c-header $(DEFINES) $(INCLUDES) -o "$@" -c "$<"
+endif
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lapi.o: ../../src/host/lua-5.3.0/src/lapi.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lauxlib.o: ../../src/host/lua-5.3.0/src/lauxlib.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lbaselib.o: ../../src/host/lua-5.3.0/src/lbaselib.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lbitlib.o: ../../src/host/lua-5.3.0/src/lbitlib.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lcode.o: ../../src/host/lua-5.3.0/src/lcode.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lcorolib.o: ../../src/host/lua-5.3.0/src/lcorolib.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lctype.o: ../../src/host/lua-5.3.0/src/lctype.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/ldblib.o: ../../src/host/lua-5.3.0/src/ldblib.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/ldebug.o: ../../src/host/lua-5.3.0/src/ldebug.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/ldo.o: ../../src/host/lua-5.3.0/src/ldo.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/ldump.o: ../../src/host/lua-5.3.0/src/ldump.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lfunc.o: ../../src/host/lua-5.3.0/src/lfunc.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lgc.o: ../../src/host/lua-5.3.0/src/lgc.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/linit.o: ../../src/host/lua-5.3.0/src/linit.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/liolib.o: ../../src/host/lua-5.3.0/src/liolib.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/llex.o: ../../src/host/lua-5.3.0/src/llex.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lmathlib.o: ../../src/host/lua-5.3.0/src/lmathlib.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lmem.o: ../../src/host/lua-5.3.0/src/lmem.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/loadlib.o: ../../src/host/lua-5.3.0/src/loadlib.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lobject.o: ../../src/host/lua-5.3.0/src/lobject.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lopcodes.o: ../../src/host/lua-5.3.0/src/lopcodes.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/loslib.o: ../../src/host/lua-5.3.0/src/loslib.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lparser.o: ../../src/host/lua-5.3.0/src/lparser.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lstate.o: ../../src/host/lua-5.3.0/src/lstate.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lstring.o: ../../src/host/lua-5.3.0/src/lstring.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lstrlib.o: ../../src/host/lua-5.3.0/src/lstrlib.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/ltable.o: ../../src/host/lua-5.3.0/src/ltable.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/ltablib.o: ../../src/host/lua-5.3.0/src/ltablib.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/ltm.o: ../../src/host/lua-5.3.0/src/ltm.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lundump.o: ../../src/host/lua-5.3.0/src/lundump.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lutf8lib.o: ../../src/host/lua-5.3.0/src/lutf8lib.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lvm.o: ../../src/host/lua-5.3.0/src/lvm.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/lua-5.3.0/src/lzio.o: ../../src/host/lua-5.3.0/src/lzio.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/os_chdir.o: ../../src/host/os_chdir.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/os_copyfile.o: ../../src/host/os_copyfile.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/os_getcwd.o: ../../src/host/os_getcwd.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/os_is64bit.o: ../../src/host/os_is64bit.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/os_isdir.o: ../../src/host/os_isdir.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/os_isfile.o: ../../src/host/os_isfile.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/os_match.o: ../../src/host/os_match.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/os_mkdir.o: ../../src/host/os_mkdir.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/os_pathsearch.o: ../../src/host/os_pathsearch.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/os_rmdir.o: ../../src/host/os_rmdir.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/os_stat.o: ../../src/host/os_stat.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/os_ticks.o: ../../src/host/os_ticks.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/os_uuid.o: ../../src/host/os_uuid.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/path_getabsolute.o: ../../src/host/path_getabsolute.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/path_getrelative.o: ../../src/host/path_getrelative.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/path_helpers.o: ../../src/host/path_helpers.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/path_isabsolute.o: ../../src/host/path_isabsolute.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/premake.o: ../../src/host/premake.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/premake_main.o: ../../src/host/premake_main.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/scripts.o: ../../src/host/scripts.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/string_endswith.o: ../../src/host/string_endswith.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+$(OBJDIR)/src/host/string_hash.o: ../../src/host/string_hash.c $(GCH) $(MAKEFILE)
+ @echo $(notdir $<)
+ $(SILENT) $(CC) $(ALL_CFLAGS) $(FORCE_INCLUDE) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
+ifneq (,$(PCH))
+ -include $(OBJDIR)/$(notdir $(PCH)).d
+ -include $(OBJDIR)/$(notdir $(PCH))_objc.d
+endif
diff --git a/3rdparty/genie/makefile b/3rdparty/genie/makefile
index 9df2558..0d7c04e 100644
--- a/3rdparty/genie/makefile
+++ b/3rdparty/genie/makefile
@@ -4,7 +4,7 @@
#
UNAME := $(shell uname)
-ifeq ($(UNAME),$(filter $(UNAME),Linux Darwin SunOS FreeBSD GNU/kFreeBSD NetBSD OpenBSD GNU))
+ifeq ($(UNAME),$(filter $(UNAME),Linux Darwin SunOS FreeBSD GNU/kFreeBSD NetBSD OpenBSD GNU Haiku))
ifeq ($(UNAME),$(filter $(UNAME),Darwin))
OS=darwin
else
@@ -14,10 +14,14 @@ else
ifeq ($(UNAME),$(filter $(UNAME),FreeBSD GNU/kFreeBSD NetBSD OpenBSD))
OS=bsd
else
+ifeq ($(UNAME),$(filter $(UNAME),Haiku))
+OS=haiku
+else
OS=linux
endif
endif
endif
+endif
else
OS=windows
endif
@@ -43,6 +47,7 @@ projgen:
$(SILENT) $(GENIE) --to=../build/$(PROJECT_TYPE).linux --os=linux $(PROJECT_TYPE)
$(SILENT) $(GENIE) --to=../build/$(PROJECT_TYPE).darwin --os=macosx --platform=universal32 $(PROJECT_TYPE)
$(SILENT) $(GENIE) --to=../build/$(PROJECT_TYPE).freebsd --os=bsd $(PROJECT_TYPE)
+ $(SILENT) $(GENIE) --to=../build/$(PROJECT_TYPE).haiku --os=haiku $(PROJECT_TYPE)
rebuild:
$(SILENT) $(MAKE) -C build/$(PROJECT_TYPE).$(OS) clean all
@@ -56,6 +61,7 @@ release-linux: $(GENIE)
$(SILENT) $(GENIE) release
$(SILENT) $(MAKE) -C build/$(PROJECT_TYPE).darwin clean all CC=x86_64-apple-darwin20.2-clang
$(SILENT) $(MAKE) -C build/$(PROJECT_TYPE).linux clean all
+ $(SILENT) $(MAKE) -C build/$(PROJECT_TYPE).haiku clean all
$(SILENT) $(MAKE) -C build/$(PROJECT_TYPE).windows clean all CC=x86_64-w64-mingw32-gcc
$(SILENT) git checkout src/host/version.h
@@ -65,3 +71,4 @@ dist: release
cp bin/linux/genie ../bx/tools/bin/linux/
cp bin/windows/genie.exe ../bx/tools/bin/windows/
cp bin/darwin/genie ../bx/tools/bin/darwin/
+ cp bin/haiku/genie ../bx/tools/bin/haiku/
diff --git a/3rdparty/genie/scripts/genie.lua b/3rdparty/genie/scripts/genie.lua
index 291dd52..ecf886e 100644
--- a/3rdparty/genie/scripts/genie.lua
+++ b/3rdparty/genie/scripts/genie.lua
@@ -91,6 +91,11 @@
configuration {}
+ configuration "haiku"
+ targetdir "../bin/haiku"
+ defines { "LUA_USE_POSIX", "LUA_USE_DLOPEN" }
+ links { "root bsd" }
+
--
-- A more thorough cleanup.
diff --git a/3rdparty/genie/scripts/release.lua b/3rdparty/genie/scripts/release.lua
index d1173d5..39bcaa5 100644
--- a/3rdparty/genie/scripts/release.lua
+++ b/3rdparty/genie/scripts/release.lua
@@ -40,6 +40,7 @@ function dorelease()
exec(_PREMAKE_COMMAND .. " /to=../build/gmake.windows /os=windows gmake")
exec(_PREMAKE_COMMAND .. " /to=../build/gmake.linux /os=linux gmake")
exec(_PREMAKE_COMMAND .. " /to=../build/gmake.darwin /os=macosx /platform=universal32 gmake")
+ exec(_PREMAKE_COMMAND .. " /to=../build/gmake.haiku /os=haiku gmake")
print("")
print( "Finished.")
diff --git a/3rdparty/genie/src/base/cmdline.lua b/3rdparty/genie/src/base/cmdline.lua
index 0127cef..06aa6c1 100644
--- a/3rdparty/genie/src/base/cmdline.lua
+++ b/3rdparty/genie/src/base/cmdline.lua
@@ -57,6 +57,7 @@
{ "macosx", "Apple Mac OS X" },
{ "solaris", "Solaris" },
{ "windows", "Microsoft Windows" },
+ { "haiku", "Haiku" },
}
}
diff --git a/3rdparty/genie/src/base/os.lua b/3rdparty/genie/src/base/os.lua
index 3cddcbb..b533bf1 100644
--- a/3rdparty/genie/src/base/os.lua
+++ b/3rdparty/genie/src/base/os.lua
@@ -66,6 +66,9 @@
if os.is("macosx") then
formats = { "lib%s.dylib", "%s.dylib" }
path = os.getenv("DYLD_LIBRARY_PATH")
+ elseif os.is("haiku") then
+ formats = { "lib%s.so", "%s.so" }
+ path = os.getenv("LIBRARY_PATH")
else
formats = { "lib%s.so", "%s.so" }
path = os.getenv("LD_LIBRARY_PATH") or ""
diff --git a/3rdparty/genie/src/host/premake.h b/3rdparty/genie/src/host/premake.h
index f0782db..5a3a636 100644
--- a/3rdparty/genie/src/host/premake.h
+++ b/3rdparty/genie/src/host/premake.h
@@ -27,6 +27,9 @@
#elif defined(__OS2__)
#define PLATFORM_OS2 (1)
#define PLATFORM_STRING "os2"
+#elif defined(__HAIKU__)
+#define PLATFORM_HAIKU (1)
+#define PLATFORM_STRING "haiku"
#else
#define PLATFORM_WINDOWS (1)
#define PLATFORM_STRING "windows"
diff --git a/makefile b/makefile
index a39a8ca..7f08673 100644
--- a/makefile
+++ b/makefile
@@ -232,6 +232,7 @@ OS := macosx
GENIEOS := darwin
else ifeq ($(firstword $(filter Haiku,$(UNAME))),Haiku)
OS := haiku
+GENIEOS := haiku
endif
ifndef OS
@@ -538,6 +539,10 @@ PARAMS += --CC='$(OVERRIDE_CC)'
ifndef CROSS_BUILD
CC := $(OVERRIDE_CC)
endif
+
+ifeq ($(TARGETOS),haiku)
+OSD := sdl
+endif
endif
ifdef OVERRIDE_CXX
PARAMS += --CXX='$(OVERRIDE_CXX)'
@@ -1471,6 +1476,28 @@ openbsd_x86_clang: generate $(PROJECTDIR)/$(MAKETYPE)-openbsd-clang/Makefile
$(SILENT) $(MAKE) -C $(PROJECTDIR)/$(MAKETYPE)-openbsd-clang config=$(CONFIG)32 precompile
$(SILENT) $(MAKE) -C $(PROJECTDIR)/$(MAKETYPE)-openbsd-clang config=$(CONFIG)32
+#-------------------------------------------------
+# gmake-haiku
+#-------------------------------------------------
+
+$(PROJECTDIR)/$(MAKETYPE)-haiku/Makefile: makefile $(SCRIPTS) $(GENIE)
+ $(SILENT) $(GENIE) $(PARAMS) $(TARGET_PARAMS) --gcc=haiku --gcc_version=$(GCC_VERSION) $(MAKETYPE)
+
+.PHONY: haiku_x64
+haiku_x64: generate $(PROJECTDIR)/$(MAKETYPE)-haiku/Makefile
+ $(SILENT) $(MAKE) $(MAKEPARAMS) -C $(PROJECTDIR)/$(MAKETYPE)-haiku config=$(CONFIG)64 precompile
+ $(SILENT) $(MAKE) $(MAKEPARAMS) -C $(PROJECTDIR)/$(MAKETYPE)-haiku config=$(CONFIG)64
+
+.PHONY: haiku_x86
+haiku_x86: generate $(PROJECTDIR)/$(MAKETYPE)-haiku/Makefile
+ $(SILENT) $(MAKE) $(MAKEPARAMS) -C $(PROJECTDIR)/$(MAKETYPE)-haiku config=$(CONFIG)32 precompile
+ $(SILENT) $(MAKE) $(MAKEPARAMS) -C $(PROJECTDIR)/$(MAKETYPE)-haiku config=$(CONFIG)32
+
+.PHONY: haiku
+haiku: generate $(PROJECTDIR)/$(MAKETYPE)-haiku/Makefile
+ $(SILENT) $(MAKE) $(MAKEPARAMS) -C $(PROJECTDIR)/$(MAKETYPE)-haiku config=$(CONFIG) precompile
+ $(SILENT) $(MAKE) $(MAKEPARAMS) -C $(PROJECTDIR)/$(MAKETYPE)-haiku config=$(CONFIG)
+
#-------------------------------------------------
# Clean/bootstrap
#-------------------------------------------------
diff --git a/scripts/toolchain.lua b/scripts/toolchain.lua
index 6e8c966..18d4755 100644
--- a/scripts/toolchain.lua
+++ b/scripts/toolchain.lua
@@ -34,6 +34,7 @@ newoption {
{ "osx", "OSX (GCC compiler)" },
{ "osx-clang", "OSX (Clang compiler)" },
{ "solaris", "Solaris" },
+ { "haiku", "Haiku" },
},
}
@@ -157,6 +158,10 @@ function toolchain(_buildDir, _subDir)
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-linux-clang")
end
+ if "haiku" == _OPTIONS["gcc"] then
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-haiku")
+ end
+
if "mingw32-gcc" == _OPTIONS["gcc"] then
if toolchainPrefix == nil or toolchainPrefix == "" then
if not os.getenv("MINGW32") then
@@ -206,6 +211,10 @@ function toolchain(_buildDir, _subDir)
premake.gcc.ar = toolchainPrefix .. "ar"
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-osx-clang")
end
+
+ if "haiku" == _OPTIONS["gcc"] then
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-haiku")
+ end
elseif _ACTION == "vs2022" then
if "clangcl" == _OPTIONS["vs"] then
diff --git a/src/osd/modules/file/posixfile.cpp b/src/osd/modules/file/posixfile.cpp
index f5dc2e9..3098b25 100644
--- a/src/osd/modules/file/posixfile.cpp
+++ b/src/osd/modules/file/posixfile.cpp
@@ -100,7 +100,7 @@ public:
{
ssize_t result;
-#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__DragonFly__) || defined(__EMSCRIPTEN__) || defined(__ANDROID__)
+#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__DragonFly__) || defined(__EMSCRIPTEN__) || defined(__ANDROID__) || defined(__HAIKU__)
result = ::pread(m_fd, buffer, size_t(count), off_t(std::make_unsigned_t<off_t>(offset)));
#elif defined(_WIN32) || defined(SDLMAME_NO64BITIO)
if (lseek(m_fd, off_t(std::make_unsigned_t<off_t>(offset)), SEEK_SET) < 0)
@@ -121,7 +121,7 @@ public:
{
ssize_t result;
-#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__DragonFly__) || defined(__EMSCRIPTEN__) || defined(__ANDROID__)
+#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__DragonFly__) || defined(__EMSCRIPTEN__) || defined(__ANDROID__) || defined(__HAIKU__)
result = ::pwrite(m_fd, buffer, size_t(count), off_t(std::make_unsigned_t<off_t>(offset)));
#elif defined(_WIN32) || defined(SDLMAME_NO64BITIO)
if (lseek(m_fd, off_t(std::make_unsigned_t<off_t>(offset)), SEEK_SET) < 0)
diff --git a/src/osd/modules/file/posixptty.cpp b/src/osd/modules/file/posixptty.cpp
index fa12045..5f8418d 100644
--- a/src/osd/modules/file/posixptty.cpp
+++ b/src/osd/modules/file/posixptty.cpp
@@ -19,6 +19,10 @@
#include <unistd.h>
#include <cstdlib>
+#ifdef __HAIKU__
+#define _BSD_SOURCE
+#endif
+
#if defined(__FreeBSD__) || defined(__DragonFly__)
#include <termios.h>
#include <libutil.h>
--
2.52.0
From 812b87682598fd842e8383fa4aa1a5d366edace3 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Thu, 11 Jun 2020 08:59:34 +1000
Subject: Use stat Haiku
diff --git a/3rdparty/bx/src/file.cpp b/3rdparty/bx/src/file.cpp
index dab8620..ceb2263 100644
--- a/3rdparty/bx/src/file.cpp
+++ b/3rdparty/bx/src/file.cpp
@@ -648,7 +648,14 @@ namespace bx
break;
}
+#ifdef __HAIKU__
+ struct stat sp;
+ stat(item->d_name, &sp);
+
+ if (S_ISDIR(sp.st_mode))
+#else
if (0 != (item->d_type & DT_DIR) )
+#endif
{
_out.type = FileType::Dir;
_out.size = UINT64_MAX;
@@ -656,7 +663,11 @@ namespace bx
return true;
}
+#ifdef __HAIKU__
+ if (S_ISREG(sp.st_mode))
+#else
if (0 != (item->d_type & DT_REG) )
+#endif
{
_out.type = FileType::File;
_out.size = UINT64_MAX;
--
2.52.0
From 1fe2e8f3b9eb6c818cbde112fedd929cb4ed86d9 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Thu, 11 Jun 2020 09:00:11 +1000
Subject: Disable ptty
diff --git a/src/osd/modules/file/posixptty.cpp b/src/osd/modules/file/posixptty.cpp
index 5f8418d..8838b2a 100644
--- a/src/osd/modules/file/posixptty.cpp
+++ b/src/osd/modules/file/posixptty.cpp
@@ -114,7 +114,7 @@ bool posix_check_ptty_path(std::string const &path) noexcept
std::error_condition posix_open_ptty(std::uint32_t openflags, osd_file::ptr &file, std::uint64_t &filesize, std::string &name) noexcept
{
-#if defined(__ANDROID__)
+#if defined(__ANDROID__) || defined(__HAIKU__)
return std::errc::not_supported; // TODO: revisit this error code
#else // defined(__ANDROID__)
// TODO: handling of the slave path is insecure - should use ptsname_r/ttyname_r in a loop
--
2.52.0
From 9540ee2d5c5919785208ccbc4eec6fa59bb2ab4e Mon Sep 17 00:00:00 2001
From: PulkoMandy <pulkomandy@pulkomandy.tk>
Date: Fri, 5 Aug 2022 19:24:12 +0200
Subject: Allow use of Qt Debugger on Haiku
diff --git a/scripts/src/osd/sdl.lua b/scripts/src/osd/sdl.lua
index 814bb32..5c05e33 100644
--- a/scripts/src/osd/sdl.lua
+++ b/scripts/src/osd/sdl.lua
@@ -254,14 +254,16 @@ if BASE_TARGETOS=="unix" then
addoptionsfromstring(str)
end
else
- if _OPTIONS["NO_X11"]=="1" then
- _OPTIONS["USE_QTDEBUG"] = "0"
- else
- libdirs {
- "/usr/X11/lib",
- "/usr/X11R6/lib",
- "/usr/openwin/lib",
- }
+ if _OPTIONS["targetos"]~="haiku" then
+ if _OPTIONS["NO_X11"]=="1" then
+ _OPTIONS["USE_QTDEBUG"] = "0"
+ else
+ libdirs {
+ "/usr/X11/lib",
+ "/usr/X11R6/lib",
+ "/usr/openwin/lib",
+ }
+ end
end
local str = backtick(sdlconfigcmd() .. " --libs")
addlibfromstring(str)
--
2.52.0
From 849a4bc671dd8794582088c71732b63a353ee388 Mon Sep 17 00:00:00 2001
From: Alex Brown <mail@alexbrown.info>
Date: Sat, 14 Oct 2023 11:26:57 +0100
Subject: toolchain.lua: set targetdir for Haiku
diff --git a/scripts/toolchain.lua b/scripts/toolchain.lua
index 18d4755..4853c15 100644
--- a/scripts/toolchain.lua
+++ b/scripts/toolchain.lua
@@ -61,7 +61,8 @@ function androidToolchainRoot()
local hostTags = {
windows = "windows-x86_64",
linux = "linux-x86_64",
- macosx = "darwin-x86_64"
+ macosx = "darwin-x86_64",
+ haiku = "haiku-x86_64"
}
android.toolchainRoot = (os.getenv("ANDROID_NDK_HOME") or "") .. "/toolchains/llvm/prebuilt/" .. hostTags[os.get()]
end
@@ -604,6 +605,30 @@ function toolchain(_buildDir, _subDir)
configuration { "osx*", "arm64", "Release" }
targetdir (_buildDir .. "osx_clang" .. "/bin/x64/Release")
+ configuration { "haiku", "x32" }
+ objdir (_buildDir .. "haiku" .. "/obj")
+ buildoptions {
+ "-m32",
+ }
+
+ configuration { "haiku", "x32", "Release" }
+ targetdir (_buildDir .. "haiku" .. "/bin/x32/Release")
+
+ configuration { "haiku", "x32", "Debug" }
+ targetdir (_buildDir .. "haiku" .. "/bin/x32/Debug")
+
+ configuration { "haiku", "x64" }
+ objdir (_buildDir .. "haiku" .. "/obj")
+ buildoptions {
+ "-m64",
+ }
+
+ configuration { "haiku", "x64", "Release" }
+ targetdir (_buildDir .. "haiku" .. "/bin/x64/Release")
+
+ configuration { "haiku", "x64", "Debug" }
+ targetdir (_buildDir .. "haiku" .. "/bin/x64/Debug")
+
configuration { "osx*", "arm64", "Debug" }
targetdir (_buildDir .. "osx_clang" .. "/bin/x64/Debug")
--
2.52.0
From 05f465bb50d2ad1b31273f32cb33dcf9db5cdd8a Mon Sep 17 00:00:00 2001
From: Alex Brown <mail@alexbrown.info>
Date: Sat, 14 Oct 2023 09:14:19 +0100
Subject: Set LinkSupportCircularDependencies for Haiku
diff --git a/scripts/genie.lua b/scripts/genie.lua
index 291327c..471ad51 100644
--- a/scripts/genie.lua
+++ b/scripts/genie.lua
@@ -1197,6 +1197,11 @@ configuration { "freebsd or netbsd" }
"LinkSupportCircularDependencies",
}
+configuration { "haiku" }
+ flags {
+ "LinkSupportCircularDependencies",
+ }
+
configuration { "osx*" }
links {
"pthread",
--
2.52.0
From bc21ba482960541fae8159f0209d90c3c1e66008 Mon Sep 17 00:00:00 2001
From: PulkoMandy <pulkomandy@pulkomandy.tk>
Date: Thu, 1 May 2025 09:47:57 +0200
Subject: Fix search for Qt6
Our Qt6 qmake is located in an unusual place, for some reason not in the bin
directory.
diff --git a/scripts/src/osd/modules.lua b/scripts/src/osd/modules.lua
index fddf73b..d465ed7 100644
--- a/scripts/src/osd/modules.lua
+++ b/scripts/src/osd/modules.lua
@@ -412,7 +412,7 @@ function qtdebuggerbuild()
if _OPTIONS["QT_HOME"]~=nil then
local MOCTST = backtick(_OPTIONS["QT_HOME"] .. "/bin/moc --version 2>/dev/null")
if MOCTST=='' then
- local qt_host_libexecs = backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_HOST_LIBEXECS")
+ local qt_host_libexecs = backtick(_OPTIONS["QT_HOME"] .. "/qmake -query QT_HOST_LIBEXECS")
if not string.starts(qt_host_libexecs,"/") then
qt_host_libexecs = _OPTIONS["QT_HOME"] .. "/libexec"
end
@@ -466,7 +466,7 @@ function qtdebuggerbuild()
else
if _OPTIONS["QT_HOME"]~=nil then
buildoptions {
- "-I" .. backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_INSTALL_HEADERS"),
+ "-I" .. backtick(_OPTIONS["QT_HOME"] .. "/qmake -query QT_INSTALL_HEADERS"),
}
else
buildoptions {
@@ -545,9 +545,9 @@ function osdmodulestargetconf()
end
else
if _OPTIONS["QT_HOME"]~=nil then
- local qt_version = str_to_version(backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_VERSION"))
+ local qt_version = str_to_version(backtick(_OPTIONS["QT_HOME"] .. "/qmake -query QT_VERSION"))
linkoptions {
- "-L" .. backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_INSTALL_LIBS"),
+ "-L" .. backtick(_OPTIONS["QT_HOME"] .. "/qmake -query QT_INSTALL_LIBS"),
}
if qt_version < 60000 then
links {
diff --git a/scripts/src/osd/sdl_cfg.lua b/scripts/src/osd/sdl_cfg.lua
index 400a559..5ae71be 100644
--- a/scripts/src/osd/sdl_cfg.lua
+++ b/scripts/src/osd/sdl_cfg.lua
@@ -138,7 +138,7 @@ if _OPTIONS["targetos"]=="windows" then
elseif _OPTIONS["targetos"]=="linux" then
if _OPTIONS["QT_HOME"]~=nil then
buildoptions {
- "-I" .. backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_INSTALL_HEADERS"),
+ "-I" .. backtick(_OPTIONS["QT_HOME"] .. "/qmake -query QT_INSTALL_HEADERS"),
}
else
buildoptions {
--
2.52.0