doomlegacy: Import of doomlegacy 1.47.2 as wip/doomlegacy.

This commit is contained in:
Michael Baeuerle 2019-06-12 18:12:12 +02:00
parent 2d280ad3c3
commit e1fca15d16
9 changed files with 238 additions and 0 deletions

22
doomlegacy/DESCR Normal file
View File

@ -0,0 +1,22 @@
This is one of the most popular Doom source ports. It enhances Doom with things
like TCP/IP networking, OpenGL renderer, Heretic support and much more.
Doom Legacy can play Doom, Boom, Marine's Best Friend (MBF), and Heretic maps.
In addition to the original games by id Software and Raven Software, there are
hundreds of free, fan-made maps available on the Internet. These maps are
typically distributed as PWAD files, which are not fully self-contained.
For each game you will also need the corresponding IWAD data file, which
contains all the graphics, wall and floor textures, sounds, and music for that
game. For example, if you want to play Doom II maps, you'll need the IWAD file
doom2.wad, or one of the free replacements.
Legacy has implemented the fundamental and de-facto-standard Boom extensions,
and the Marine's Best Friend (MBF) extensions. Legacy also has implemented
among other things 3D floors, swimmable water and other special effects using
extended linedef codes, and supports the FraggleScript scripting language.
Note:
This engine can be used to play the SIGIL Megawad (Doom Episode 5).
Use SIGIL_COMPAT.wad together with doom.wad as IWAD like this:
$ doomlegacy -iwad /tmp/doom.wad -file /tmp/SIGIL_COMPAT.wad

63
doomlegacy/Makefile Normal file
View File

@ -0,0 +1,63 @@
# $NetBSD$
VERS= 1.47.2
PKGNAME= doomlegacy-${VERS}
CATEGORIES= games
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=doomlegacy/}
DISTNAME= ${PKGNAME:S/-/_/}_source
DISTFILES= ${DEFAULT_DISTFILES} doomlegacy_${VERS}_common.zip
EXTRACT_SUFX= .tar.bz2
MAINTAINER= micha@NetBSD.org
HOMEPAGE= http://doomlegacy.sourceforge.net/
COMMENT= The legacy of Doom
LICENSE= gnu-gpl-v2
# Tested on GNU/Linux and NetBSD
# Source has support for the other listed OS too (may need additional work)
ONLY_FOR_PLATFORM= Darwin-*-* DragonFly-*-* FreeBSD-*-* Linux-*-* \
NetBSD-*-* OpenBSD-*-* SunOS-*-*
MAKE_JOBS_SAFE= no
.include "../../mk/bsd.prefs.mk"
USE_TOOLS+= gmake
.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "DragonFly"
MAKE_FLAGS+= OS=FREEBSD
.elif ${OPSYS} == "NetBSD"
MAKE_FLAGS+= OS=NETBSD
.elif ${OPSYS} == "Darwin"
MAKE_FLAGS+= OS=MAC
.else
# All other Unix variants (should work for GNU/Linux, OpenBSD and SunOS)
MAKE_FLAGS+= OS=LINUX
.endif
MAKE_FLAGS+= HAVE_MIXER=1 DEBUG=1
.include "../../mk/endian.mk"
.if ${MACHINE_ENDIAN} == "big"
CFLAGS+= -D__BIG_ENDIAN__=1
.endif
INSTALLATION_DIRS= bin share/doc/doomlegacy share/doomlegacy
do-install:
cd ${WRKSRC} && \
${INSTALL_PROGRAM} bin/doomlegacy \
${DESTDIR}${PREFIX}/bin; \
${INSTALL_DATA} docs/legacy.css docs/whatsnew.html \
${DESTDIR}${PREFIX}/share/doc/doomlegacy; \
cd ${WRKDIR}/doomlegacy_${VERS} && \
${INSTALL_DATA} legacy.wad \
${DESTDIR}${PREFIX}/share/doomlegacy/legacy.wad
BUILDLINK_API_DEPENDS.SDL_mixer+= SDL_mixer>=1.2.7
.include "../../audio/SDL_mixer/buildlink3.mk"
BUILDLINK_API_DEPENDS.SDL+= SDL>=1.2.10
.include "../../devel/SDL/buildlink3.mk"
.include "../../graphics/MesaLib/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

5
doomlegacy/PLIST Normal file
View File

@ -0,0 +1,5 @@
@comment $NetBSD$
bin/doomlegacy
share/doc/doomlegacy/legacy.css
share/doc/doomlegacy/whatsnew.html
share/doomlegacy/legacy.wad

15
doomlegacy/distinfo Normal file
View File

@ -0,0 +1,15 @@
$NetBSD$
SHA1 (doomlegacy_1.47.2_common.zip) = 9e6faaea797b988565a078a47e80bbe2119d78b9
RMD160 (doomlegacy_1.47.2_common.zip) = 1ac1f47563ad2c0d7c5c1bea93a2aaeb1c001c10
SHA512 (doomlegacy_1.47.2_common.zip) = 7c7c2a0cbab5b9b4645a3fe166addd597de533db7ab41f8011c6c526a868bb04c8dd6b0d27b48765406fbab328bf64fc7827770b395e6c0e5d861d99c4d3865a
Size (doomlegacy_1.47.2_common.zip) = 981654 bytes
SHA1 (doomlegacy_1.47.2_source.tar.bz2) = afb1213eb8b228d9f131e4c63ead97afed2f599f
RMD160 (doomlegacy_1.47.2_source.tar.bz2) = 661f0fa2bdc58a2f5f9582f36817ddd9d48df9bc
SHA512 (doomlegacy_1.47.2_source.tar.bz2) = e2e182c18dd24c14e954f791c58e44119457bb74af4bb079c16219406176536f9fd414afd6c9fa0e956a6062b5a346bbf19ebf4c0d2d300e2e66b2eb01cf53fd
Size (doomlegacy_1.47.2_source.tar.bz2) = 2276199 bytes
SHA1 (patch-Makefile) = a1aea57169fc1325182dcc2afeeaa953353f2823
SHA1 (patch-src_Makefile) = f0b431aff892469982ed1a6e5d562ff0fb60c996
SHA1 (patch-src_doomtype.h) = 856bce16ef7e08db28f6090a6506c6a9d58493bc
SHA1 (patch-src_i__tcp.c) = 1c0c6017d24640217e29ed238e210850329d0e75
SHA1 (patch-src_sdl_i__system.c) = a89c3356f15c5c79e02a36fd137491e6e3faf384

View File

@ -0,0 +1,36 @@
$NetBSD$
Add NetBSD to OS list.
--- Makefile.orig 2017-03-03 20:22:35.000000000 +0000
+++ Makefile
@@ -418,7 +418,7 @@ endif
export SMIF
-OS_LIST:=LINUX FREEBSD WIN32 WIN98 WIN7 OS2 DOS MAC
+OS_LIST:=LINUX FREEBSD NETBSD WIN32 WIN98 WIN7 OS2 DOS MAC
ifeq ($(OS), LINUX)
LINUX=1
@@ -429,6 +429,12 @@ ifeq ($(OS), FREEBSD)
$(info Please submit bug reports, and bug fixes. )
FREEBSD=1
else
+ifeq ($(OS), NETBSD)
+ # Uses statvfs(5).
+ $(info NetBSD support is dependent upon user reports.)
+ $(info Please submit bug reports, and bug fixes. )
+ FREEBSD=1
+else
ifeq ($(OS), WIN32)
$(info Generic Windows compile. May or may-not work on modern Windows.)
$(info Please submit bug reports, and bug fixes. )
@@ -482,6 +488,7 @@ endif
endif
endif
endif
+endif
export OS

View File

@ -0,0 +1,38 @@
$NetBSD$
Add NetBSD to OS list.
--- src/Makefile.orig 2018-07-16 09:17:06.000000000 +0000
+++ src/Makefile
@@ -449,7 +449,7 @@ endif
endif
-OS_LIST:=LINUX FREEBSD WIN32 WIN7 WIN98 OS2 DOS MAC
+OS_LIST:=LINUX FREEBSD NETBSD WIN32 WIN7 WIN98 OS2 DOS MAC
OPTS:=
@@ -479,6 +479,14 @@ ifeq ($(OS), FREEBSD)
# __FreeBSD__ __FreeBSD_kernel__ __DragonFly__
# SDL_platform.h for FreeBSD defines: __FREEBSD__
else
+ifeq ($(OS), NETBSD)
+ # Uses statvfs(5).
+ NETBSD=1
+ OPTS:=-DLINUX -DNETBSD
+ #Known Compiler symbols
+ # __NetBSD__
+ # SDL_platform.h for FreeBSD defines: __NETBSD__
+else
ifeq ($(OS), WIN32)
WIN32=1
DOSFILE=1
@@ -545,6 +553,7 @@ endif
endif
endif
endif
+endif
export DOSFILE
# all OPTINC need to have -I. because of how includes are written

View File

@ -0,0 +1,15 @@
$NetBSD$
Use limits.h for NetBSD too.
--- src/doomtype.h.orig 2019-06-12 09:36:08.000000000 +0000
+++ src/doomtype.h
@@ -168,7 +168,7 @@ int strlwr(char *n);
// Predefined with some OS.
#ifdef __WIN32__
#include <limits.h>
-#elif defined( MACOS_DI ) || defined( __MACH__ ) || defined( FREEBSD )
+#elif defined( MACOS_DI ) || defined( __MACH__ ) || defined( FREEBSD ) || defined( NETBSD )
#include <limits.h>
#else
// Linux GNU, which also includes limits.h

View File

@ -0,0 +1,20 @@
$NetBSD$
Disable IPX for NetBSD.
--- src/i_tcp.c.orig 2018-07-16 09:17:06.000000000 +0000
+++ src/i_tcp.c
@@ -169,6 +169,13 @@
# endif
#endif
+#ifdef NETBSD
+// NetBSD does not have IPX.
+# ifdef USE_IPX
+# undef USE_IPX
+# endif
+#endif
+
// Reported to be __OpenBSD__ , but it should be all caps and I am paranoid.
#if defined( __OpenBSD__ ) || defined( __OPENBSD__ )
// OpenBSD does not have IPX.

View File

@ -0,0 +1,24 @@
$NetBSD$
Use statvfs(5) for NetBSD.
--- src/sdl/i_system.c.orig 2017-03-03 20:22:35.000000000 +0000
+++ src/sdl/i_system.c
@@ -74,7 +74,7 @@
// meminfo
# include <sys/types.h>
# include <sys/sysctl.h>
-# elif defined( __MACH__ )
+# elif defined( NETBSD ) || defined( __MACH__ )
# include <sys/statvfs.h>
# else
# include <sys/vfs.h>
@@ -861,7 +861,7 @@ uint64_t I_GetDiskFreeSpace(void)
# ifdef SOLARIS
goto guess;
-# elif defined( __MACH__ )
+# elif defined( NETBSD ) || defined( __MACH__ )
struct statvfs stfs;
if (statvfs(".", &stfs) == -1)
goto guess;