pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/games/doomlegacy



Module Name:    pkgsrc
Committed By:   micha
Date:           Mon Jun 17 13:53:22 UTC 2019

Added Files:
        pkgsrc/games/doomlegacy: DESCR MESSAGE.doomlegacy Makefile PLIST
            distinfo
        pkgsrc/games/doomlegacy/files: doomlegacy.in1
        pkgsrc/games/doomlegacy/patches: patch-Makefile patch-src_Makefile
            patch-src_am__map.c patch-src_d__main.c patch-src_doomtype.h
            patch-src_i__tcp.c patch-src_sdl_i__system.c

Log Message:
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.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/games/doomlegacy/DESCR \
    pkgsrc/games/doomlegacy/MESSAGE.doomlegacy \
    pkgsrc/games/doomlegacy/Makefile pkgsrc/games/doomlegacy/PLIST \
    pkgsrc/games/doomlegacy/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/games/doomlegacy/files/doomlegacy.in1
cvs rdiff -u -r0 -r1.1 pkgsrc/games/doomlegacy/patches/patch-Makefile \
    pkgsrc/games/doomlegacy/patches/patch-src_Makefile \
    pkgsrc/games/doomlegacy/patches/patch-src_am__map.c \
    pkgsrc/games/doomlegacy/patches/patch-src_d__main.c \
    pkgsrc/games/doomlegacy/patches/patch-src_doomtype.h \
    pkgsrc/games/doomlegacy/patches/patch-src_i__tcp.c \
    pkgsrc/games/doomlegacy/patches/patch-src_sdl_i__system.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: pkgsrc/games/doomlegacy/DESCR
diff -u /dev/null pkgsrc/games/doomlegacy/DESCR:1.1
--- /dev/null   Mon Jun 17 13:53:22 2019
+++ pkgsrc/games/doomlegacy/DESCR       Mon Jun 17 13:53:22 2019
@@ -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.
Index: pkgsrc/games/doomlegacy/MESSAGE.doomlegacy
diff -u /dev/null pkgsrc/games/doomlegacy/MESSAGE.doomlegacy:1.1
--- /dev/null   Mon Jun 17 13:53:22 2019
+++ pkgsrc/games/doomlegacy/MESSAGE.doomlegacy  Mon Jun 17 13:53:22 2019
@@ -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).
+===========================================================================
Index: pkgsrc/games/doomlegacy/Makefile
diff -u /dev/null pkgsrc/games/doomlegacy/Makefile:1.1
--- /dev/null   Mon Jun 17 13:53:22 2019
+++ pkgsrc/games/doomlegacy/Makefile    Mon Jun 17 13:53:22 2019
@@ -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@localhost
+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"
Index: pkgsrc/games/doomlegacy/PLIST
diff -u /dev/null pkgsrc/games/doomlegacy/PLIST:1.1
--- /dev/null   Mon Jun 17 13:53:22 2019
+++ pkgsrc/games/doomlegacy/PLIST       Mon Jun 17 13:53:22 2019
@@ -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
Index: pkgsrc/games/doomlegacy/distinfo
diff -u /dev/null pkgsrc/games/doomlegacy/distinfo:1.1
--- /dev/null   Mon Jun 17 13:53:22 2019
+++ pkgsrc/games/doomlegacy/distinfo    Mon Jun 17 13:53:22 2019
@@ -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

Index: pkgsrc/games/doomlegacy/files/doomlegacy.in1
diff -u /dev/null pkgsrc/games/doomlegacy/files/doomlegacy.in1:1.1
--- /dev/null   Mon Jun 17 13:53:22 2019
+++ pkgsrc/games/doomlegacy/files/doomlegacy.in1        Mon Jun 17 13:53:22 2019
@@ -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

Index: pkgsrc/games/doomlegacy/patches/patch-Makefile
diff -u /dev/null pkgsrc/games/doomlegacy/patches/patch-Makefile:1.1
--- /dev/null   Mon Jun 17 13:53:22 2019
+++ pkgsrc/games/doomlegacy/patches/patch-Makefile      Mon Jun 17 13:53:22 2019
@@ -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
+ 
+ 
Index: pkgsrc/games/doomlegacy/patches/patch-src_Makefile
diff -u /dev/null pkgsrc/games/doomlegacy/patches/patch-src_Makefile:1.1
--- /dev/null   Mon Jun 17 13:53:22 2019
+++ pkgsrc/games/doomlegacy/patches/patch-src_Makefile  Mon Jun 17 13:53:22 2019
@@ -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
Index: pkgsrc/games/doomlegacy/patches/patch-src_am__map.c
diff -u /dev/null pkgsrc/games/doomlegacy/patches/patch-src_am__map.c:1.1
--- /dev/null   Mon Jun 17 13:53:22 2019
+++ pkgsrc/games/doomlegacy/patches/patch-src_am__map.c Mon Jun 17 13:53:22 2019
@@ -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
Index: pkgsrc/games/doomlegacy/patches/patch-src_d__main.c
diff -u /dev/null pkgsrc/games/doomlegacy/patches/patch-src_d__main.c:1.1
--- /dev/null   Mon Jun 17 13:53:22 2019
+++ pkgsrc/games/doomlegacy/patches/patch-src_d__main.c Mon Jun 17 13:53:22 2019
@@ -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
Index: pkgsrc/games/doomlegacy/patches/patch-src_doomtype.h
diff -u /dev/null pkgsrc/games/doomlegacy/patches/patch-src_doomtype.h:1.1
--- /dev/null   Mon Jun 17 13:53:22 2019
+++ pkgsrc/games/doomlegacy/patches/patch-src_doomtype.h        Mon Jun 17 13:53:22 2019
@@ -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.
Index: pkgsrc/games/doomlegacy/patches/patch-src_i__tcp.c
diff -u /dev/null pkgsrc/games/doomlegacy/patches/patch-src_i__tcp.c:1.1
--- /dev/null   Mon Jun 17 13:53:22 2019
+++ pkgsrc/games/doomlegacy/patches/patch-src_i__tcp.c  Mon Jun 17 13:53:22 2019
@@ -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.
Index: pkgsrc/games/doomlegacy/patches/patch-src_sdl_i__system.c
diff -u /dev/null pkgsrc/games/doomlegacy/patches/patch-src_sdl_i__system.c:1.1
--- /dev/null   Mon Jun 17 13:53:22 2019
+++ pkgsrc/games/doomlegacy/patches/patch-src_sdl_i__system.c   Mon Jun 17 13:53:22 2019
@@ -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;



Home | Main Index | Thread Index | Old Index