Eduke32: new recipe (#1388)

This commit is contained in:
miqlas
2017-06-05 13:00:50 +02:00
committed by Jérôme Duval
parent c9c433fc9b
commit d246633d9c
2 changed files with 268 additions and 0 deletions

View File

@@ -0,0 +1,102 @@
SUMMARY="A source port of the classic PC first person shooter Duke Nukem 3D"
DESCRIPTION="* EDuke32 runs natively without relying on emulation of any kind
* EDuke32 runs at crazy resolutions like 3072x2304.
* EDuke32 allows you to choose between two different hardware accelerated \
OpenGL renderers, or the classic, warped software mode you grew up with
* EDuke32 fixes an insane amount of programming errors which were harmless \
in the days of DOS but are fatal with modern protected memory models; \
translation: EDuke32 crashes less
* EDuke32 has been the only actively developed and maintained Duke3D port \
for years
* EDuke32 features Plagman's incredible \"Polymer\" renderer as a replacement \
for Ken Silverman's \"Polymost\" renderer
* EDuke32 has a huge number of new extensions to the game's scripting system, \
allowing gameplay mods that rival even modern games.
* EDuke32 runs the HRP with support for all features, most of which require \
EDuke32; no other port can run the HRP with all features enabled
* EDuke32 adds a full-featured console, including Quake-style key bindings, \
command aliases, advanced tab completion, comprehensive command history, \
colored text and more
* EDuke32 has hundreds of code rewrites, optimizations and fixes for rare or \
annoying bugs in the original code
* EDuke32 adds tons of optional new features that make the player's life \
easier including modern status display/HUD, support for loading mods from the \
startup window, and modern, WSAD-based controls with thoroughly reworked mouse \
aiming
* EDuke32 supports Ogg Vorbis sound and music
* EDuke32 is developed by people who have been in the Duke3D scene since the \
beginning
* EDuke32 lets you play that game called 'NAM' you saw at the dollar store 10 \
years ago
* EDuke32 makes sandwiches!"
HOMEPAGE="http://www.eduke32.com/"
COPYRIGHT="1993-1997 Ken Silverman
2006-2017 eduke32 Team"
LICENSE="GNU GPL v2"
REVISION="1"
SOURCE_URI="http://dukeworld.duke4.net/eduke32/synthesis/20170518-6135/eduke32_src_20170518-6135.tar.xz"
CHECKSUM_SHA256="539f928f9cee88a3d1dbcbf1f99a2e44e2d078185f99cf4ab6ed05922d450d2d"
SOURCE_DIR="eduke32_20170518-6135"
PATCHES="eduke32-20170518_6135.patchset"
ARCHITECTURES="?x86_gcc2 ?x86 x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
eduke32$secondaryArchSuffix = $portVersion
cmd:eduke32$secondaryArchSuffix = $portVersion
cmd:mapster32$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libexecinfo$secondaryArchSuffix
lib:libFLAC$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libGLU$secondaryArchSuffix
lib:libogg$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libsdl2$secondaryArchSuffix
lib:libsdl2_mixer$secondaryArchSuffix
lib:libvorbis$secondaryArchSuffix
lib:libvorbisfile$secondaryArchSuffix
lib:libvpx$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libexecinfo$secondaryArchSuffix
devel:libFLAC$secondaryArchSuffix
devel:libGL$secondaryArchSuffix
devel:libGLU$secondaryArchSuffix
devel:libogg$secondaryArchSuffix
devel:libpng16$secondaryArchSuffix
devel:libsdl2$secondaryArchSuffix
devel:libsdl2_mixer$secondaryArchSuffix
devel:libvorbis$secondaryArchSuffix
devel:libvorbisfile$secondaryArchSuffix
devel:libvpx$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:awk
cmd:gcc$secondaryArchSuffix
cmd:install
cmd:ld$secondaryArchSuffix
cmd:make
cmd:nasm
cmd:pkg_config$secondaryArchSuffix
"
BUILD()
{
make $jobArgs \
RELEASE=1
}
INSTALL()
{
mkdir -p $binDir
cp eduke32 mapster32 $binDir
strip $binDir/*
}

View File

@@ -0,0 +1,166 @@
From a6cd111118bb90838cd5a4c02a0751717d610d45 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Sat, 3 Jun 2017 16:02:01 +0200
Subject: Haiku: endiannes fix
diff --git a/source/build/include/compat.h b/source/build/include/compat.h
index 035fdc1..9a34a6b 100644
--- a/source/build/include/compat.h
+++ b/source/build/include/compat.h
@@ -279,7 +279,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
--
2.12.2
From 71dc7c0d342f07766cb4ee4ce04b080bf1e32b61 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Sat, 3 Jun 2017 17:31:49 +0200
Subject: Haiku: build fix
diff --git a/source/build/src/kplib.cpp b/source/build/src/kplib.cpp
index 601892d..c0c3e77 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
+
#if !defined(_WIN32)
#include <dirent.h>
static inline int32_t _lrotl(int32_t i, int sh) { return (i >> (-sh)) | (i << sh); }
@@ -2759,14 +2763,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;
}
--
2.12.2
From 537ab2e7986ff33d27056ec0c1a3018b9fe28eaa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Sun, 4 Jun 2017 08:04:43 +0200
Subject: [PATCH] Platform specific fixes
---
Common.mak | 22 +++++++++++++++-------
GNUmakefile | 4 ++++
2 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/Common.mak b/Common.mak
index eb6cb47..4fc96fe 100644
--- a/Common.mak
+++ b/Common.mak
@@ -123,6 +123,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)
@@ -948,17 +950,23 @@ ifneq (0,$(POLYMER))
endif
-ifneq ($(PLATFORM),WINDOWS)
- ifneq ($(PLATFORM),WII)
- ifneq ($(PLATFORM),BSD)
- LIBS+= -ldl
- endif
- ifneq ($(PLATFORM),DARWIN)
- LIBS+= -pthread
+ifneq ($(PLATFORM),HAIKU)
+ ifneq ($(PLATFORM),WINDOWS)
+ ifneq ($(PLATFORM),WII)
+ ifneq ($(PLATFORM),BSD)
+ LIBS+= -ldl
+ endif
+ ifneq ($(PLATFORM),DARWIN)
+ LIBS+= -pthread
+ endif
endif
endif
endif
+ifeq ($(PLATFORM),HAIKU)
+ LIBS+= -lpthread -lnetwork
+endif
+
ifeq ($(PLATFORM),WINDOWS)
ifneq ($(USE_LIBPNG),0)
LIBS+= -lpng_mini -lz_mini
diff --git a/GNUmakefile b/GNUmakefile
index a966483..7027e1f 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -544,6 +544,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)
ifneq (0,$(HAVE_XMP))
LIBS += -lxmp-lite
--
2.12.2
From 1c963d963f506b53b10f431b96caf595037fe091 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Sun, 4 Jun 2017 08:30:18 +0200
Subject: [PATCH] Data file search path fix
---
source/duke3d/src/common.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/source/duke3d/src/common.cpp b/source/duke3d/src/common.cpp
index 0045364..ce62dc6 100644
--- a/source/duke3d/src/common.cpp
+++ b/source/duke3d/src/common.cpp
@@ -318,6 +318,8 @@ void G_ExtInit(void)
"EDuke32 Settings"
#elif defined(GEKKO)
"apps/eduke32"
+#elif defined(__HAIKU__)
+ "config/settings/eduke32"
#else
".eduke32"
#endif
--
2.12.2