131 lines
4.4 KiB
Plaintext
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
|
|
|