aboutsummaryrefslogtreecommitdiff
path: root/games/doomlegacy
diff options
context:
space:
mode:
authorAlexey Dokuchaev <danfe@FreeBSD.org>2013-05-17 01:02:37 +0000
committerAlexey Dokuchaev <danfe@FreeBSD.org>2013-05-17 01:02:37 +0000
commit9030e6d8e2d83f02441388f3ae643c97b07e8ad6 (patch)
treec4b40df0e9d4e4b99adf54cb79a49068460c2378 /games/doomlegacy
parent3dda040aeffef2c63c32722412adc4062bb48f21 (diff)
downloadports-9030e6d8e2d83f02441388f3ae643c97b07e8ad6.tar.gz
ports-9030e6d8e2d83f02441388f3ae643c97b07e8ad6.zip
- Update to version 1.44_alpha4
- Do not use hand-written assembly code by default: upstream says they do not currently maintain it, and it does not contain many new improvements made to rendering, nor fog effects (ticket #604) - Fix memory reporting in I_GetFreeMem() on amd64 (reported by Ilya Arkhipov) - Enable key auto repeat in the menu/console (ticket #587) - Assume maintainership while hacking on it more than I originally intended Most of the patches were submitted upstream (tickets 587, 602-610).
Notes
Notes: svn path=/head/; revision=318348
Diffstat (limited to 'games/doomlegacy')
-rw-r--r--games/doomlegacy/Makefile26
-rw-r--r--games/doomlegacy/distinfo4
-rw-r--r--games/doomlegacy/files/patch-Makefile48
-rw-r--r--games/doomlegacy/files/patch-sdl+i_system.c35
4 files changed, 82 insertions, 31 deletions
diff --git a/games/doomlegacy/Makefile b/games/doomlegacy/Makefile
index 093ddc67b068..da07e7ce209e 100644
--- a/games/doomlegacy/Makefile
+++ b/games/doomlegacy/Makefile
@@ -2,16 +2,18 @@
# $FreeBSD$
PORTNAME= doomlegacy
-DISTVERSION= 1.44_alpha3
+DISTVERSION= 1.44_alpha4
PORTEPOCH= 1
CATEGORIES= games
MASTER_SITES= http://doomlegacy.sourceforge.net/releases/ \
http://freebsd.nsu.ru/distfiles/:wad
DISTNAME= ${PORTNAME}_${DISTVERSION}_src_r${SVN_REV}
+# legacy.wad is not provided by upstream and must be regenerated manually
+# when needed (its contents change); luckily, it doesn't happen too often
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} legacy_wad${EXTRACT_SUFX}:wad
DIST_SUBDIR= ${PORTNAME}
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= danfe@FreeBSD.org
COMMENT= Improved and extended version of Doom
LICENSE= GPLv2
@@ -21,24 +23,22 @@ USE_GL= glu
USE_GMAKE= yes
USE_SDL= mixer sdl
-MAKE_ENV= OLD_DEPENDENCIES=1 # since .dep file is removed
CFLAGS+= -DSVN_REV=\\\"${SVN_REV}\\\"
-WRKSRC= ${WRKDIR}/${PORTNAME}_${DISTVERSION:S/.//}/src
+WRKSRC= ${WRKDIR}/${PORTNAME}_${DISTVERSION}/src
PLIST_FILES= bin/${PORTNAME} share/doom/legacy.wad
PORTDOCS= *
-SVN_REV= 845
+SVN_REV= 999
OPTIONS_DEFINE= DOCS
OPTIONS_DEFINE_i386= ASM
-OPTIONS_DEFAULT_i386= ASM
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MASM}
BUILD_DEPENDS= nasm:${PORTSDIR}/devel/nasm
-MAKE_ENV+= USEASM=1
+MAKE_ENV= USEASM=1 OLD_DEPENDENCIES=1
.endif
post-patch: .SILENT
@@ -50,14 +50,12 @@ post-patch: .SILENT
# Ensure that gathered memory stats are printed correctly
${REINPLACE_CMD} -e 's|total, free|(int)total, (int)free|' \
${WRKSRC}/z_zone.c
-# Adjust config and save games directory name to be less ambiguous
- ${REINPLACE_CMD} -e 's|\.legacy|.${PORTNAME}|' ${WRKSRC}/doomdef.h
-# Change default value of DOOMWADDIR; better support for relative paths
- ${REINPLACE_CMD} -e 's|\(doomwaddir = \)"\."|\1"${DMDIR}"| ; \
- 1306,1309d' -e "s|s\[0\] ==[^)]*|strchr(s, '/')|" \
+# Make local directory name less ambiguous; adjust default WAD search path
+ ${REINPLACE_CMD} -e 's|\.legacy|.${PORTNAME}| ; \
+ /DEFWADS1/s|/.*|${DMDIR}"|' ${WRKSRC}/doomdef.h
+# Provide better support for relative paths (for `-iwad' switch)
+ ${REINPLACE_CMD} -e "s|s\[0\] ==[^)]*|strchr(s, '/')|" \
${WRKSRC}/d_main.c
-# Remove broken dependency file (wrong paths inside) and a copy of GPL
- ${RM} ${WRKSRC}/sdl.dep ; ${TOUCH} ${WRKSRC}/sdl.dep
${RM} ${WRKSRC}/_doc/LICENSE.txt
do-install:
diff --git a/games/doomlegacy/distinfo b/games/doomlegacy/distinfo
index 6b6e8a02b5cf..0f1ab59aab3a 100644
--- a/games/doomlegacy/distinfo
+++ b/games/doomlegacy/distinfo
@@ -1,4 +1,4 @@
-SHA256 (doomlegacy/doomlegacy_1.44_alpha3_src_r845.zip) = d5ac03ceab68f586ce7282fab1975bbbdbd83b093dd3fa55a8e5317892f61436
-SIZE (doomlegacy/doomlegacy_1.44_alpha3_src_r845.zip) = 2530660
+SHA256 (doomlegacy/doomlegacy_1.44_alpha4_src_r999.zip) = 51a41099168a113e13bd0bcbe0da7ed2dde1e9f23ddd3c23f6bedd911a4f4824
+SIZE (doomlegacy/doomlegacy_1.44_alpha4_src_r999.zip) = 2645943
SHA256 (doomlegacy/legacy_wad.zip) = dd805018a60d3e1b54da88ad6d082ae6bb9f790447a3f8d8b8f227b9ffa22240
SIZE (doomlegacy/legacy_wad.zip) = 338333
diff --git a/games/doomlegacy/files/patch-Makefile b/games/doomlegacy/files/patch-Makefile
index ae4f0b13d81e..4eb43f5bce98 100644
--- a/games/doomlegacy/files/patch-Makefile
+++ b/games/doomlegacy/files/patch-Makefile
@@ -1,15 +1,15 @@
--- Makefile.orig
+++ Makefile
-@@ -76,7 +76,7 @@
+@@ -84,7 +84,7 @@
# std=c89, does not support // commments, no inline, no asm
# gcc or g++
-CC=gcc
+CC?=gcc
-
- # End of User tunable settings
-
-@@ -116,9 +116,9 @@
+ ifdef CC_WATCOM
+ CC=WATCOMC
+ endif
+@@ -135,9 +135,9 @@
LIBS := -lopengl32 -lglu32 -lwsock32 -lm
else
# default is Linux, for all unix SDL
@@ -21,8 +21,8 @@
# -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.
-@@ -296,7 +296,7 @@
-
+@@ -392,7 +392,7 @@
+ endif
# compiler and linker flags
-CFLAGS = $(WFLAGS)
@@ -30,7 +30,7 @@
ifdef PROFILEMODE
# build with gprof profiling information
-@@ -309,7 +309,7 @@
+@@ -405,7 +405,7 @@
else
# build a normal optimized version
#CFLAGS += -O3
@@ -39,3 +39,35 @@
endif
endif
+@@ -583,7 +583,7 @@
+
+ # executable
+ $(BIN)/$(EXENAME): $(O) $(OBJS) $(MAINOBJ) versionstring
+-# @mkdir $(BIN)
++ @mkdir -p $(BIN)
+ @echo Linking...
+ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(MAINOBJ) \
+ -o $(BIN)/$(EXENAME) $(LIBS)
+@@ -651,7 +651,7 @@
+ ../dep/main2.dep : i*.c m*.c p*.c
+ ../dep/main3.dep : q*.c r*.c s*.c t*.c v*.c z*.c
+ # none: e*.c j*.c k*.c l*.c n*.c o*.c
+-../dep/hardware.dep : hardware/*.c hardware/*/*.c
++../dep/hardware.dep : hardware/*.c hardware/r_opengl/*.c
+ # $(INTERFACE).dep : $(INTERFACE)/*.c
+ ../dep/djgppdos.dep : djgppdos/*.c
+ ../dep/linux_x.dep : linux_x/*.c linux_x/musserv/*.c linux_x/sndserv/*.c
+@@ -673,11 +673,10 @@
+ ../dep :
+ @mkdir ../dep;
+
+-%.dep :
++%.dep : ../dep
+ @echo "Making dependencies $(@F)"
+- if test ! -d ../dep; then mkdir ../dep; fi
+ $(CC) $(CFLAGS) -MM $^ > ../dep/$(@F)
+- sed --separate -e "s@^[a-zA-Z0-9_]*.o:@\$$(O)/&@" ../dep/$(@F) > sed.dep
++ sed -e "s@^[a-zA-Z0-9_]*.o:@\$$(O)/&@" ../dep/$(@F) > sed.dep
+ mv sed.dep ../dep/$(@F)
+ endif
+
diff --git a/games/doomlegacy/files/patch-sdl+i_system.c b/games/doomlegacy/files/patch-sdl+i_system.c
index 27bb24d1fd2e..da84e8ffe9d6 100644
--- a/games/doomlegacy/files/patch-sdl+i_system.c
+++ b/games/doomlegacy/files/patch-sdl+i_system.c
@@ -1,6 +1,6 @@
--- sdl/i_system.c.orig
+++ sdl/i_system.c
-@@ -83,10 +83,7 @@
+@@ -84,10 +84,7 @@
# include <sys/mount.h>
/*For meminfo*/
# include <sys/types.h>
@@ -12,7 +12,16 @@
# endif
#endif
-@@ -832,30 +829,16 @@ uint64_t I_GetFreeMem(uint64_t *total)
+@@ -516,6 +513,8 @@ void I_SysInit()
+
+ // Enable unicode key conversion
+ SDL_EnableUNICODE(1);
++ // Enable key auto repeat
++ SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
+
+ // Initialize the joystick subsystem.
+ I_JoystickInit();
+@@ -906,33 +905,19 @@ uint64_t I_GetFreeMem(uint64_t *total)
// LINUX covers all the unix-type OS's.
#ifdef FREEBSD
@@ -24,8 +33,8 @@
- { NULL }
- };
- if ((kd = kvm_open(NULL, NULL, NULL, O_RDONLY, "kvm_open")) == NULL)
-+ unsigned long page_count, free_count, pagesize;
-+ size_t len = sizeof(unsigned long);
++ unsigned page_count, free_count, pagesize;
++ size_t len = sizeof(unsigned);
+ if (sysctlbyname("vm.stats.vm.v_page_count", &page_count, &len, NULL, 0))
goto guess;
-
@@ -47,8 +56,20 @@
+ goto guess;
+ if (sysctlbyname("hw.pagesize", &pagesize, &len, NULL, 0))
+ goto guess;
-+ *total = page_count * pagesize;
-+ return free_count * pagesize;
++ *total = (uint64_t)page_count * pagesize;
++ return (uint64_t)free_count * pagesize;
#elif defined(SOLARIS)
goto guess;
- #else
+-#else
++#endif
+ // Actual Linux
+
+ #define MEMINFO_FILE "/proc/meminfo"
+@@ -970,7 +955,6 @@ uint64_t I_GetFreeMem(uint64_t *total)
+ // make a conservative guess
+ *total = 32 << 20;
+ return 32 << 20;
+-#endif // Unix flavors
+ #elif defined(WIN32)
+ // windows
+ #if defined(WIN_LARGE_MEM) && defined( _WIN32_WINNT ) && (_WIN32_WINNT >= 0x0500)