diff options
author | micha <micha@pkgsrc.org> | 2019-06-17 13:53:22 +0000 |
---|---|---|
committer | micha <micha@pkgsrc.org> | 2019-06-17 13:53:22 +0000 |
commit | 5073ff76ee306c192a6a6e1ebb48c7c4b91bf51f (patch) | |
tree | daaa9065e2be1c082025b17e4421485f24fb8e37 /games | |
parent | aa43fc3ce5b06546128c40ddedb8348ef3b3e2d4 (diff) | |
download | pkgsrc-5073ff76ee306c192a6a6e1ebb48c7c4b91bf51f.tar.gz |
games/doomlegacy: import doomlegacy-1.47.2
This is one of the most popular Doom source ports.
It enhances Doom with things like:
- Free Look
- OpenGL renderer
- Heretic support,
- TCP/IP networking
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.
This package contains the SDL build of Doom Legacy.
Diffstat (limited to 'games')
-rw-r--r-- | games/doomlegacy/DESCR | 23 | ||||
-rw-r--r-- | games/doomlegacy/MESSAGE.doomlegacy | 10 | ||||
-rw-r--r-- | games/doomlegacy/Makefile | 95 | ||||
-rw-r--r-- | games/doomlegacy/PLIST | 6 | ||||
-rw-r--r-- | games/doomlegacy/distinfo | 17 | ||||
-rw-r--r-- | games/doomlegacy/files/doomlegacy.in1 | 267 | ||||
-rw-r--r-- | games/doomlegacy/patches/patch-Makefile | 36 | ||||
-rw-r--r-- | games/doomlegacy/patches/patch-src_Makefile | 135 | ||||
-rw-r--r-- | games/doomlegacy/patches/patch-src_am__map.c | 17 | ||||
-rw-r--r-- | games/doomlegacy/patches/patch-src_d__main.c | 22 | ||||
-rw-r--r-- | games/doomlegacy/patches/patch-src_doomtype.h | 67 | ||||
-rw-r--r-- | games/doomlegacy/patches/patch-src_i__tcp.c | 20 | ||||
-rw-r--r-- | games/doomlegacy/patches/patch-src_sdl_i__system.c | 24 |
13 files changed, 739 insertions, 0 deletions
diff --git a/games/doomlegacy/DESCR b/games/doomlegacy/DESCR new file mode 100644 index 00000000000..9e4b7d28e8d --- /dev/null +++ b/games/doomlegacy/DESCR @@ -0,0 +1,23 @@ +This is one of the most popular Doom source ports. +It enhances Doom with things like: +- Free Look +- OpenGL renderer +- Heretic support, +- TCP/IP networking +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. + +This package contains the SDL build of Doom Legacy. diff --git a/games/doomlegacy/MESSAGE.doomlegacy b/games/doomlegacy/MESSAGE.doomlegacy new file mode 100644 index 00000000000..ded71301968 --- /dev/null +++ b/games/doomlegacy/MESSAGE.doomlegacy @@ -0,0 +1,10 @@ +=========================================================================== +$NetBSD: MESSAGE.doomlegacy,v 1.1 2019/06/17 13:53:22 micha Exp $ + +Note: The location of the ${PKGNAME} WAD directory has been set to: + + ${DOOMWADDIR_CONF} + +This is the pkgsrc standard Doom WAD directory location (shared with other +Doom packages). +=========================================================================== diff --git a/games/doomlegacy/Makefile b/games/doomlegacy/Makefile new file mode 100644 index 00000000000..29153bf9bd2 --- /dev/null +++ b/games/doomlegacy/Makefile @@ -0,0 +1,95 @@ +# $NetBSD: Makefile,v 1.1 2019/06/17 13:53:22 micha Exp $ + +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 Linux/ppc (32bit Big Endian) and NetBSD/amd64 (64bit Little Endian) +# Untested: In general the source code has support for the other listed OS too +ONLY_FOR_PLATFORM= Darwin-*-* DragonFly-*-* FreeBSD-*-* Linux-*-* \ + NetBSD-*-* OpenBSD-*-* SunOS-*-* + +USE_LANGUAGES+= c99 + +USE_TOOLS+= gmake +MAKE_JOBS_SAFE= no + +.include "../../mk/bsd.prefs.mk" +.include "../../mk/endian.mk" + +.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "DragonFly" +MAKE_FLAGS+= OS=FREEBSD +.elif ${OPSYS} == "NetBSD" +MAKE_FLAGS+= OS=NETBSD +.elif ${OPSYS} == "Darwin" +MAKE_FLAGS+= OS=MAC +.else +# Other Unix (should work for GNU/Linux, OpenBSD and SunOS) +MAKE_FLAGS+= OS=LINUX +.endif +MAKE_FLAGS+= HAVE_MIXER=1 + +.if ${MACHINE_ENDIAN} == "big" +# Some compilers define this themselves (but maybe not all) +CFLAGS+= -D__BIG_ENDIAN__ +.endif + +# DOOMWADDIR is intentionally shared with other Doom packages +DOOMWADDIR= share/doom +INSTALLATION_DIRS= bin ${PKGMANDIR}/man1 share/doc/doomlegacy ${DOOMWADDIR} + +MESSAGE_SRC+= MESSAGE.doomlegacy +MESSAGE_SUBST+= PKGNAME=${PKGNAME:C/-.*//} +MESSAGE_SUBST+= DOOMWADDIR_CONF="${PREFIX}/${DOOMWADDIR}" + +# Configure defaults for LEGACYWADDIR and DOOMWADDIR +SUBST_CLASSES+= doomdef +SUBST_STAGE.doomdef= do-configure +SUBST_MESSAGE.doomdef= Preparing doomdef.h file ... +SUBST_FILES.doomdef= src/doomdef.h +SUBST_SED.doomdef= -e 's,LEGACYWADDIR "/usr/local/share/games/doomlegacy",LEGACYWADDIR "${PREFIX}/${DOOMWADDIR}",g' +SUBST_SED.doomdef+= -e 's,DEFWADS01 "~/games/doomlegacy/wads",DEFWADS01 "${PREFIX}/${DOOMWADDIR}",' + +pre-configure: + ${CP} ${FILESDIR}/doomlegacy.in1 ${WRKDIR} + +# Process manpage template +do-configure: + cd ${WRKDIR} && \ + ${SED} -e 's,$$NAME,doomlegacy,g' \ + -e 's,$$VERSION,${VERS},g' \ + -e 's,$$WADDIR,${PREFIX}/${DOOMWADDIR},g' \ + doomlegacy.in1 >doomlegacy.1 + +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}/${DOOMWADDIR}/legacy.wad; \ + cd ${WRKDIR} && \ + ${INSTALL_MAN} ${WRKDIR}/doomlegacy.1 \ + ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 + +# Ensure that at least the shareware Episode 1 of Doom is available +# Note: The demos from games/doom1 are not compatible with the Legacy engine +DEPENDS+= doom1-[0-9]*:../../games/doom1 + +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 "../../mk/bsd.pkg.mk" diff --git a/games/doomlegacy/PLIST b/games/doomlegacy/PLIST new file mode 100644 index 00000000000..34e3a1b59f3 --- /dev/null +++ b/games/doomlegacy/PLIST @@ -0,0 +1,6 @@ +@comment $NetBSD: PLIST,v 1.1 2019/06/17 13:53:22 micha Exp $ +bin/doomlegacy +man/man1/doomlegacy.1 +share/doc/doomlegacy/legacy.css +share/doc/doomlegacy/whatsnew.html +share/doom/legacy.wad diff --git a/games/doomlegacy/distinfo b/games/doomlegacy/distinfo new file mode 100644 index 00000000000..433f99f9c37 --- /dev/null +++ b/games/doomlegacy/distinfo @@ -0,0 +1,17 @@ +$NetBSD: distinfo,v 1.1 2019/06/17 13:53:22 micha Exp $ + +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) = 03fc2f70c4a91ab6e7e3611f594eeaee4ac78b6b +SHA1 (patch-src_Makefile) = 15cb6daa92f0d00eaf3b6956ef2813fa8358742c +SHA1 (patch-src_am__map.c) = 647bcba2374cfa7038646e0c053636b43caaf33a +SHA1 (patch-src_d__main.c) = 89188e534d486d9cfbf2ad92f63b4eb7ab6c50f8 +SHA1 (patch-src_doomtype.h) = fefe08ca5fbe8d11325e32ca833a73d3acb36ea1 +SHA1 (patch-src_i__tcp.c) = 1c0c6017d24640217e29ed238e210850329d0e75 +SHA1 (patch-src_sdl_i__system.c) = 17524680559b81ae755d781f63f3c5d34e1f14b6 diff --git a/games/doomlegacy/files/doomlegacy.in1 b/games/doomlegacy/files/doomlegacy.in1 new file mode 100644 index 00000000000..e5f0be34f79 --- /dev/null +++ b/games/doomlegacy/files/doomlegacy.in1 @@ -0,0 +1,267 @@ +.\"============================================================================= +.\" Header +.\" +.\" Copyright (c) 2019 by Michael Baeuerle. +.\" License: GNU Free Documentation License (GFDL) +.\" +.TH $NAME 1 2019-06-16 Unix "$NAME $VERSION manual" +.\" +.\" +.\"============================================================================= +.\" NAME section +.\" +.SH NAME +Doom Legacy +.\" +.\" +.\"============================================================================= +.\" SYNOPSIS section +.\" +.SH SYNOPSIS +.B $NAME +[-opengl] [-iwad xxx.wad] [-file pwad1.wad [pwad2.wad ...]] +.PP +.B $NAME +[-h [g|m|c|s|d|D] | --version] +.\" +.\" +.\"============================================================================= +.\" DESCRIPTION section +.\" +.SH DESCRIPTION + +The following information is quoted from Reference Manual: +.PP +.B http://doomlegacy.sourceforge.net/docs/legacy.html +.PP + +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. + +Legacy includes two different graphics engines, the old Doom software renderer +(with many improvements) and an OpenGL-based hardware renderer. +The OpenGL renderer is shinier and has fancier effects than the software one, +but it does not do everything that the software renderer does. It does have +coronas, explosion light, and other light effects that the software renderer +does not do. +Some wads rely upon violating wad rules to get trick effects. Most rely upon +tricking the software renderer into not drawing something. Using those wads +with the OpenGL renderer you will see holes in the floor and ceiling, and +warning messges about polygons. + +The first game console we know of was from id Software's game Quake. +We have been inspired by it and have tried to implement the same functionality +for the benefit of Quake/Doom fans. + +Since Legacy 1.2, the network part of Doom has been totally rewritten. +It now uses a better transfer method for the packets, (which is usually faster), +and also implements a basic Client/Server model, where some critical game +options are changeable only by the server in multiplayer games. Since the +network communication is faster, we have upped the maximum number of players to +32! +.\" +.\" +.\"============================================================================= +.\" OPTIONS section +.\" +.SH OPTIONS +.TP 25 +.BI -config " file +Set the configfile to use. +.br +Default: config.cfg +.TP +.BI -file " file [file ...] +Set PWAD (Patch WAD) files to use. +.TP +.BI -game " mode +Forces a particular game mode to be used. +.br +Examples for mode: doom, doomu, doom2, heretic +.br +(See Reference Manual for complete table) +.TP +.BI -h " [section] +Print help. An optional section can be specified for details. +.TP +.BI -home " directory +Home directory location, where your configfiles and savegames are kept. +.TP +.BI -iwad " file +Set the main IWAD (Internal WAD) file to use. +This also determines the game mode when -game is not used. +.TP +.BI -noendtext +Suppress the game EndText screen, which could disrupt some terminal emulations +because of the special character attributes used. +.TP +.BI -opengl +Hardware accelerated rendering using the OpenGL library. +Will use hardware acceleration for OpenGL if available. +If the video card does not have OpenGL hardware acceleration then it will use +the OpenGL emulation in software, which is very slow. +.TP +.BI --version +Print version and build date. +.TP +.BI -warp " num +Select the map, start game immediately. +.br +In DoomII, -warp 13 will goto MAP13. +.br +In Ultimate Doom, -warp 1 3 will goto E1M3. +.TP +See Reference Manual for a complete options list. +.\" +.\" +.\"============================================================================= +.\" ENVIRONMENT section +.\" +.SH ENVIRONMENT +.TP 25 +.B DISPLAY +X display to use. More information about X can be found in +.BR X (7). +.TP +.B DOOMWADDIR +This environment variable defines a path where WAD files are located. +.br +The default is $WADDIR. +.TP +.B HOME +This variable indicates your home directory. +.TP +.B USER +This variable contains your username, is used as the default value for your +player name in multiplayer games. +.\" +.\" +.\"============================================================================= +.\" FILES section +.\" +.SH FILES +.TP 25 +.B ~/.doomlegacy/config.cfg +Default configuration file. +.TP +.B ~/.doomlegacy/glconfig.cfg +Default configuration file for OpenGL mode. +.TP +.B ~/.doomlegacy/doomsav*.dsg +Saved game states. +.\" +.\" +.\"============================================================================= +.\" NOTES section +.\" +.SH NOTES +If you get no MIDI music, ensure that SDL_mixer has a working MIDI synthesizer +available. If you use timidity, check that instruments are installed (e.g. +freepats). +.PP +Acknowledgments: +.IP \(bu 3 +Thanks to id Software of course, for creating the greatest game of all time! +.PP +.IP \(bu 3 +To Raven Software, for Heretic and Hexen! +.PP +.IP \(bu 3 +Chi Hoang for DosDoom which got us started. +.PP +.IP \(bu 3 +Bell Kin for porting Doom Legacy to Linux. +.PP +.IP \(bu 3 +Stephane Dierickx for the two pictures in the laucher and the help screen of +Legacy. +.PP +.IP \(bu 3 +Sebastien Bacquet for Qmus2mid. +.PP +.IP \(bu 3 +Simon Howard for FraggleScript. +.PP +.IP \(bu 3 +TeamTNT for Boom. +.PP +.IP \(bu 3 +Steven McGranahan and Robert Baeuml for their large contributions. +.PP +.IP \(bu 3 +To all of you who send us ideas and bug reports, thank you! +.RE +.\" +.\" +.\"============================================================================= +.\" AUTHORS section +.\" +.SH AUTHORS +Original game by id Software. +.br +Heretic by Raven Software. +.br +Doom Legacy by Fabrice Denis, Boris Pereira and Thierry Van Elsuwe. +.br +Maintained by the Doom Legacy Team since 2001. +.br +Man page for pkgsrc by Michael Baeuerle. +.\" +.\" +.\"============================================================================= +.\" BUGS section +.\" +.\" .SH BUGS +.\" +.\" +.\"============================================================================= +.\" EXAMPLES section +.\" +.SH EXAMPLES +Start the shareware Episode 1 of Doom: +.IP +$ $NAME +.PP +For the following examples you need the original WAD files of the games +(copy them to $WADDIR or set DOOMWADDIR to the desired location). + +Start Doom and use the OpenGL renderer: +.IP +$ $NAME -opengl -iwad doom.wad +.PP +Start Doom II: +.IP +$ $NAME -iwad doom2.wad +.PP +Start Sigil (Doom Episode 5) in compatibility mode as Episode 3: +.IP +$ $NAME -game doomu -iwad doomu.wad -file SIGIL_COMPAT.wad +.PP +Start Heretic: +.IP +$ $NAME -iwad heretic.wad +.PP +.\" +.\" +.\"============================================================================= +.\" SEE ALSO section +.\" +.SH SEE ALSO +.BR timidity (1), +.BR X (7) +.br +.BR http://doomlegacy.sourceforge.net/docs/legacy.html +.\" +.\" +.\" EOF diff --git a/games/doomlegacy/patches/patch-Makefile b/games/doomlegacy/patches/patch-Makefile new file mode 100644 index 00000000000..c86511f99a6 --- /dev/null +++ b/games/doomlegacy/patches/patch-Makefile @@ -0,0 +1,36 @@ +$NetBSD: patch-Makefile,v 1.1 2019/06/17 13:53:22 micha Exp $ + +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. ) ++ NETBSD=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 + + diff --git a/games/doomlegacy/patches/patch-src_Makefile b/games/doomlegacy/patches/patch-src_Makefile new file mode 100644 index 00000000000..0375f28cc46 --- /dev/null +++ b/games/doomlegacy/patches/patch-src_Makefile @@ -0,0 +1,135 @@ +$NetBSD: patch-src_Makefile,v 1.1 2019/06/17 13:53:22 micha Exp $ + +Add NetBSD to OS list. +Honor environment variables CFLAGS, LDFLAGS and LIBS. +Silence warnings about common symbol merging. + +--- src/Makefile.orig 2018-07-16 09:17:06.000000000 +0000 ++++ src/Makefile +@@ -449,13 +449,14 @@ endif + endif + + +-OS_LIST:=LINUX FREEBSD WIN32 WIN7 WIN98 OS2 DOS MAC ++OS_LIST:=LINUX FREEBSD NETBSD WIN32 WIN7 WIN98 OS2 DOS MAC + +-OPTS:= ++# Do not reset OPTS (init to CFLAGS from environment) ++OPTS:=$(CFLAGS) + + ifeq ($(OS), LINUX) + LINUX=1 +- OPTS:=-DLINUX ++ OPTS+=-DLINUX + #Known Compiler symbols + # linux __linux __linux__ + # AIX defines: _AIX +@@ -474,15 +475,23 @@ else + ifeq ($(OS), FREEBSD) + # Has some linking differences from the rest of Linux-like OS. + FREEBSD=1 +- OPTS:=-DLINUX -DFREEBSD ++ OPTS+=-DLINUX -DFREEBSD + #Known Compiler symbols + # __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 +- OPTS:=-DWIN32 ++ OPTS+=-DWIN32 + # if have windows > Win98, and want large memory reports + ifdef WIN_LARGE_MEM + OPTS+=-DWIN_LARGE_MEM +@@ -500,7 +509,7 @@ ifeq ($(OS), WIN7) + # This does NOT YET make a version customized to Win7/8. + WIN32=1 + DOSFILE=1 +- OPTS:=-DWIN32 ++ OPTS+=-DWIN32 + # probably want large memory reports + OPTS+=-DWIN_LARGE_MEM + #Known Compiler symbols +@@ -511,12 +520,12 @@ ifeq ($(OS), WIN98) + # If Win98 differences occur, this category can isolate them. + WIN32=1 + DOSFILE=1 +- OPTS:=-DWIN32 ++ OPTS+=-DWIN32 + else + ifeq ($(OS), OS2) + OS2=1 + DOSFILE=1 +- OPTS:=-D__OS2__ ++ OPTS+=-D__OS2__ + #Known Compiler symbols + # __OS2__ + else +@@ -545,15 +554,19 @@ endif + endif + endif + endif ++endif + export DOSFILE + + # all OPTINC need to have -I. because of how includes are written + # however the order of -I may be important, so it is left to each SMIF. + OPTINC:= +-LIBS:= +-LDFLAGS:= ++# Do not reset LIBS ++#LIBS:= ++# Do not reset LDFLAGS ++#LDFLAGS:= + INSTALL_SUPPL:= + ++# Note: External CFLAGS are now part of OPTS and appended later + CFLAGS:= + # Machine architecture. + ifdef ARCH +@@ -597,14 +610,14 @@ ifeq ($(SMIF), SDL) + ifndef MAC + # default is Linux, for all unix SDL + EXENAME:=doomlegacy +- LDFLAGS=-L/usr/X11R6/lib +- LIBS:=-lGL -lGLU -lm ++ LDFLAGS +=-L/usr/X11R6/lib ++ LIBS +=-lGL -lGLU -lm + # -L/usr/X11R6/lib is needed by Linux 2.4 and others that still have + # the GLU libraries in an X11 directory. + # -lm is needed for pow, powf, and other MATH1 functions. + else + EXENAME:=doomlegacy +- LDFLAGS=-framework OpenGL ++ LDFLAGS +=-framework OpenGL + endif + + SDL_CONFIG:=1 +@@ -1010,12 +1023,12 @@ CFLAGS+=-ffast-math -fno-strict-aliasing + LCFLAGS:=$(CFLAGS) + CFLAGS+=$(OPTS) $(OPTINC) + +-ifdef MAC +- # MAC linker does not accept these flags. +-else +- # Flags to the linker. +- LDFLAGS+=-Xlinker --warn-common +-endif ++#ifdef MAC ++# # MAC linker does not accept these flags. ++#else ++# # Flags to the linker. ++# # LDFLAGS+=-Xlinker --warn-common ++#endif + + SNDSERV_EXTRAFLAGS:= + ifdef HAVE_ESD diff --git a/games/doomlegacy/patches/patch-src_am__map.c b/games/doomlegacy/patches/patch-src_am__map.c new file mode 100644 index 00000000000..ce1f65330d7 --- /dev/null +++ b/games/doomlegacy/patches/patch-src_am__map.c @@ -0,0 +1,17 @@ +$NetBSD: patch-src_am__map.c,v 1.1 2019/06/17 13:53:22 micha Exp $ + +Set automap "zoom in" key to '+'. + +--- src/am_map.c.orig 2018-07-16 09:17:06.000000000 +0000 ++++ src/am_map.c +@@ -118,7 +118,9 @@ static byte DWHITE = (256-47); + #define AM_PANUPKEY KEY_UPARROW + #define AM_PANRIGHTKEY KEY_RIGHTARROW + #define AM_PANLEFTKEY KEY_LEFTARROW +-#define AM_ZOOMINKEY '=' ++// The documentation specify '+' ++//#define AM_ZOOMINKEY '=' ++#define AM_ZOOMINKEY '+' + #define AM_ZOOMOUTKEY '-' + #define AM_STARTKEY KEY_TAB + #define AM_ENDKEY KEY_TAB diff --git a/games/doomlegacy/patches/patch-src_d__main.c b/games/doomlegacy/patches/patch-src_d__main.c new file mode 100644 index 00000000000..20af99a2ef5 --- /dev/null +++ b/games/doomlegacy/patches/patch-src_d__main.c @@ -0,0 +1,22 @@ +$NetBSD: patch-src_d__main.c,v 1.1 2019/06/17 13:53:22 micha Exp $ + +Without command line arguments the launcher menu is displayed by default. +This is not desired because we have already prepared the shareware Episode 1 +for pkgsrc. + +--- src/d_main.c.orig 2018-07-25 10:14:34.000000000 +0000 ++++ src/d_main.c +@@ -2507,9 +2507,10 @@ restart_command: + + EOUT_flags = EOUT_text | EOUT_log | EOUT_con; + +- +-#ifdef LAUNCHER +- if ( fatal_error || init_sequence == 1 || (init_sequence == 0 && myargc < 2 )) ++#ifdef LAUNCHER ++ // Disable argc check for pkgsrc (shareware episode already prepared) ++ // if ( fatal_error || init_sequence == 1 || (init_sequence == 0 && myargc < 2 )) ++ if ( fatal_error || init_sequence == 1 ) + { + // [WDJ] Invoke built-in launcher command line + #if 0 diff --git a/games/doomlegacy/patches/patch-src_doomtype.h b/games/doomlegacy/patches/patch-src_doomtype.h new file mode 100644 index 00000000000..55a0f328734 --- /dev/null +++ b/games/doomlegacy/patches/patch-src_doomtype.h @@ -0,0 +1,67 @@ +$NetBSD: patch-src_doomtype.h,v 1.1 2019/06/17 13:53:22 micha Exp $ + +Always use limits.h for pkgsrc. + +--- src/doomtype.h.orig 2018-07-16 09:17:06.000000000 +0000 ++++ src/doomtype.h +@@ -165,53 +165,37 @@ int strlwr(char *n); + #endif + + +-// Predefined with some OS. +-#ifdef __WIN32__ ++// For pkgsrc: Only POSIX conformant OS are supported + #include <limits.h> +-#elif defined( MACOS_DI ) || defined( __MACH__ ) || defined( FREEBSD ) +-#include <limits.h> +-#else +-// Linux GNU, which also includes limits.h +-// obsolete header file +-#include <values.h> +-//#include <limits.h> +-#endif + +-// [WDJ] This is very dangerous considering 32 bit and 64 bit systems, +-// should use stdint.h values instead. +-// These are obsolete defines from values.h. + #ifndef MAXCHAR + // unused +-#define MAXCHAR ((char)0x7f) ++#define MAXCHAR CHAR_MAX + #endif + + #ifndef MAXSHORT +-// defined in values.h + // used in r_segs.c +-#define MAXSHORT ((short)0x7fff) ++#define MAXSHORT SHRT_MAX + #endif + + #ifndef MAXINT +-// defined in values.h + // used in many places +-#define MAXINT ((int)0x7fffffff) ++#define MAXINT INT_MAX + #endif + + #ifndef MINCHAR + // unused +-#define MINCHAR ((char)0x80) ++#define MINCHAR CHAR_MIN + #endif + + #ifndef MINSHORT +-// defined in values.h + // unused +-#define MINSHORT ((short)0x8000) ++#define MINSHORT SHRT_MIN + #endif + + #ifndef MININT +-// defined in values.h + // used in many places +-#define MININT ((int)0x80000000) ++#define MININT INT_MIN + #endif + + // Sound effect id type. diff --git a/games/doomlegacy/patches/patch-src_i__tcp.c b/games/doomlegacy/patches/patch-src_i__tcp.c new file mode 100644 index 00000000000..1861a7b708c --- /dev/null +++ b/games/doomlegacy/patches/patch-src_i__tcp.c @@ -0,0 +1,20 @@ +$NetBSD: patch-src_i__tcp.c,v 1.1 2019/06/17 13:53:22 micha Exp $ + +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. diff --git a/games/doomlegacy/patches/patch-src_sdl_i__system.c b/games/doomlegacy/patches/patch-src_sdl_i__system.c new file mode 100644 index 00000000000..533f2a7f2f5 --- /dev/null +++ b/games/doomlegacy/patches/patch-src_sdl_i__system.c @@ -0,0 +1,24 @@ +$NetBSD: patch-src_sdl_i__system.c,v 1.1 2019/06/17 13:53:22 micha Exp $ + +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( __MACH__ ) || defined( NETBSD ) + # 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( __MACH__ ) || defined( NETBSD ) + struct statvfs stfs; + if (statvfs(".", &stfs) == -1) + goto guess; |