0
0
Fork 0
haikuports/games-fps/eduke32/patches/eduke32-20200907.patchset

131 lines
4.4 KiB
Plaintext

From b308ed6fff234687d0849e60f88915b172b73eaf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Sun, 25 Feb 2018 11:10:26 +0100
Subject: Haiku supporting patches
diff --git a/Common.mak b/Common.mak
index 5bc9aa5..0474ead 100644
--- a/Common.mak
+++ b/Common.mak
@@ -33,6 +33,8 @@ ifndef HOSTPLATFORM
HOSTPLATFORM := DARWIN
else ifeq ($(findstring BeOS,$(uname)),BeOS)
HOSTPLATFORM := BEOS
+ else ifeq ($(findstring Haiku,$(uname)),Haiku)
+ HOSTPLATFORM=HAIKU
else ifeq ($(findstring skyos,$(uname)),skyos)
HOSTPLATFORM := SKYOS
else ifeq ($(findstring QNX,$(uname)),QNX)
@@ -969,17 +971,22 @@ else ifeq ($(SUBPLATFORM),LINUX)
LIBS += -lrt
endif
-ifeq (,$(filter $(PLATFORM),WINDOWS WII))
- ifneq ($(PLATFORM),BSD)
- LIBS += -ldl
- endif
- ifneq ($(PLATFORM),DARWIN)
- LIBS += -pthread
+ifneq ($(PLATFORM),HAIKU)
+ ifeq (,$(filter $(PLATFORM),WINDOWS WII))
+ ifneq ($(PLATFORM),BSD)
+ LIBS += -ldl
+ endif
+ ifneq ($(PLATFORM),DARWIN)
+ LIBS += -pthread
+ endif
endif
endif
LIBS += -lm
+ifeq ($(PLATFORM),HAIKU)
+ LIBS+= -lnetwork
+endif
##### Detect version control revision, if applicable
diff --git a/GNUmakefile b/GNUmakefile
index c0e9af3..1767008 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -655,6 +655,10 @@ ifeq ($(PLATFORM),BSD)
LIBS += -lFLAC -lvorbisfile -lvorbis -logg -lexecinfo
endif
+ifeq ($(PLATFORM),HAIKU)
+ LIBS += -lFLAC -lvorbisfile -lvorbis -logg -lexecinfo -lnetwork
+endif
+
ifeq ($(PLATFORM),DARWIN)
LIBS += -lFLAC -lvorbisfile -lvorbis -logg -lm \
-Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,OpenGL \
diff --git a/source/build/include/compat.h b/source/build/include/compat.h
index 4d3d90a..543c295 100644
--- a/source/build/include/compat.h
+++ b/source/build/include/compat.h
@@ -342,7 +342,7 @@ defined __x86_64__ || defined __amd64__ || defined _M_X64 || defined _M_IA64 ||
# endif
# include <libkern/OSByteOrder.h>
-#elif defined(__BEOS__)
+#elif defined(__BEOS__) || defined(__HAIKU__)
# include <posix/endian.h>
# if LITTLE_ENDIAN != 0
# define B_LITTLE_ENDIAN 1
diff --git a/source/build/src/kplib.cpp b/source/build/src/kplib.cpp
index 78aaca2..3c51680 100644
--- a/source/build/src/kplib.cpp
+++ b/source/build/src/kplib.cpp
@@ -34,6 +34,10 @@ credits.
#include "kplib.h"
#include "pragmas.h"
+#ifdef __HAIKU__
+#include <dirent.h>
+#endif
+
#include "vfs.h"
#if !defined(_WIN32)
@@ -2752,14 +2756,14 @@ int32_t kzfindfile(char *filnam)
if ((findata = readdir(hfind)) == NULL)
{ closedir(hfind); hfind = NULL; if (!kzhashbuf) return 0; srchstat = 2; break; }
i = wildstpathleng;
- if (findata->d_type == DT_DIR)
- { if (findata->d_name[0] == '.' && !findata->d_name[1]) continue; } //skip .
- else if ((findata->d_type == DT_REG) || (findata->d_type == DT_LNK))
- { if (findata->d_name[0] == '.') continue; } //skip hidden (dot) files
- else continue; //skip devices and fifos and such
- if (!wildmatch(findata->d_name,&newildst[wildstpathleng])) continue;
- strcpy(&filnam[i],findata->d_name);
- if (findata->d_type == DT_DIR) strcat(&filnam[i],"/");
+// if (findata->d_type == DT_DIR)
+// { if (findata->d_name[0] == '.' && !findata->d_name[1]) continue; } //skip .
+// else if ((findata->d_type == DT_REG) || (findata->d_type == DT_LNK))
+// { if (findata->d_name[0] == '.') continue; } //skip hidden (dot) files
+// else continue; //skip devices and fifos and such
+// if (!wildmatch(findata->d_name,&newildst[wildstpathleng])) continue;
+// strcpy(&filnam[i],findata->d_name);
+// if (findata->d_type == DT_DIR) strcat(&filnam[i],"/");
#endif
return 1;
}
diff --git a/source/duke3d/src/common.cpp b/source/duke3d/src/common.cpp
index 3482893..d55e695 100644
--- a/source/duke3d/src/common.cpp
+++ b/source/duke3d/src/common.cpp
@@ -327,6 +327,8 @@ void G_ExtInit(void)
APPNAME
#elif defined(GEKKO)
"apps/" APPBASENAME
+#elif defined(__HAIKU__)
+ "config/settings/" APPBASENAME
#else
".config/" APPBASENAME
#endif
--
2.19.1