diff options
-rw-r--r-- | games/Makefile | 1 | ||||
-rw-r--r-- | games/tenebrae/Makefile | 54 | ||||
-rw-r--r-- | games/tenebrae/distinfo | 4 | ||||
-rw-r--r-- | games/tenebrae/files/patch-cd__linux.c | 184 | ||||
-rw-r--r-- | games/tenebrae/files/patch-common.c | 11 | ||||
-rw-r--r-- | games/tenebrae/files/patch-common.h | 13 | ||||
-rw-r--r-- | games/tenebrae/files/patch-gl__common.c | 16 | ||||
-rw-r--r-- | games/tenebrae/files/patch-gl__vidlinuxglx.c | 10 | ||||
-rw-r--r-- | games/tenebrae/files/patch-linux_Makefile.i386linux | 80 | ||||
-rw-r--r-- | games/tenebrae/files/patch-net.h | 11 | ||||
-rw-r--r-- | games/tenebrae/files/patch-snd__linux.c | 11 | ||||
-rw-r--r-- | games/tenebrae/files/patch-snd__sdl.c | 15 | ||||
-rw-r--r-- | games/tenebrae/files/patch-sys__uxfindfirst.c | 11 | ||||
-rw-r--r-- | games/tenebrae/pkg-descr | 17 | ||||
-rw-r--r-- | games/tenebrae/pkg-message | 5 | ||||
-rw-r--r-- | games/tenebrae/pkg-plist | 6 |
16 files changed, 449 insertions, 0 deletions
diff --git a/games/Makefile b/games/Makefile index ada129c..b1fbc01 100644 --- a/games/Makefile +++ b/games/Makefile @@ -401,6 +401,7 @@ SUBDIR += tank SUBDIR += taxipilot SUBDIR += teg + SUBDIR += tenebrae SUBDIR += tetrinet SUBDIR += tetrinet-x SUBDIR += textmaze diff --git a/games/tenebrae/Makefile b/games/tenebrae/Makefile new file mode 100644 index 0000000..2dce492 --- /dev/null +++ b/games/tenebrae/Makefile @@ -0,0 +1,54 @@ +# New ports collection makefile for: tenebrae +# Date created: 14 Mar 2004 +# Whom: Igor Pokrovsky <tiamat@comset.net> +# +# $FreeBSD$ +# + +PORTNAME= tenebrae +PORTVERSION= 1.04 +CATEGORIES= games +MASTER_SITES= http://tenebrae.sourceforge.net/downloads/ +DISTFILES= ${PORTNAME}_src${EXTRACT_SUFX} \ + ${PORTNAME}data${EXTRACT_SUFX} + +MAINTAINER= tiamat@comset.net +COMMENT= Quake 1 source port with advanced graphics + +LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png + +USE_ZIP= yes +USE_GMAKE= yes +USE_GL= yes +USE_XLIB= yes +USE_SDL= yes +ONLY_FOR_ARCHS= i386 + +WRKSRC= ${WRKDIR}/${PORTNAME}_0 +BUILD_WRKSRC= ${WRKSRC}/linux +MAKE_ENV= DATADIR="${DATADIR}" \ + PTHREAD_LIBS="${PTHREAD_LIBS}" \ + SDL_CONFIG="${SDL_CONFIG}" + +pre-patch: + @${PERL} -pi -e 's|\r||g' `${FIND} ${WRKSRC} -type f` + +pre-build: + @${LN} -sf ${WRKSRC}/linux/Makefile.i386linux ${WRKSRC}/linux/Makefile + +do-install: + ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/debugi386.glibc/bin/${PORTNAME}.run \ + ${PREFIX}/bin/${PORTNAME} + @${MKDIR} ${DATADIR} + @${MKDIR} ${DATADIR}/${PORTNAME} + ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}/Pak0.pak ${DATADIR}/${PORTNAME} +.ifndef (NOPORTDOCS) + @${MKDIR} ${DOCSDIR} + ${TR} -d '\r' <${WRKDIR}/Tenebrae_Readme.txt \ + >${DOCSDIR}/Tenebrae_Readme.txt +.endif + +post-install: + @${SED} -e 's|%%DATADIR%%|${DATADIR}|' <${PKGMESSAGE} + +.include <bsd.port.mk> diff --git a/games/tenebrae/distinfo b/games/tenebrae/distinfo new file mode 100644 index 0000000..8606512 --- /dev/null +++ b/games/tenebrae/distinfo @@ -0,0 +1,4 @@ +MD5 (tenebrae_src.zip) = 132899bfcaf065b8cfd1bdf7f5a00787 +SIZE (tenebrae_src.zip) = 1580702 +MD5 (tenebraedata.zip) = b0769654088b4b9f46e69503ff453ec2 +SIZE (tenebraedata.zip) = 3989498 diff --git a/games/tenebrae/files/patch-cd__linux.c b/games/tenebrae/files/patch-cd__linux.c new file mode 100644 index 0000000..4ac54de --- /dev/null +++ b/games/tenebrae/files/patch-cd__linux.c @@ -0,0 +1,184 @@ +--- cd_linux.c.orig Sun Mar 14 12:11:16 2004 ++++ cd_linux.c Sun Mar 14 12:24:07 2004 +@@ -31,7 +31,7 @@ + #include <time.h> + #include <errno.h> + +-#include <linux/cdrom.h> ++#include <sys/cdio.h> + + #include "quakedef.h" + +@@ -54,8 +54,8 @@ + if (cdfile == -1 || !enabled) + return; // no cd init'd + +- if ( ioctl(cdfile, CDROMEJECT) == -1 ) +- Con_DPrintf("ioctl cdromeject failed\n"); ++ if ( ioctl(cdfile, CDIOCEJECT) == -1 ) ++ Con_DPrintf("ioctl CDIOCEJECT failed\n"); + } + + +@@ -64,30 +64,30 @@ + if (cdfile == -1 || !enabled) + return; // no cd init'd + +- if ( ioctl(cdfile, CDROMCLOSETRAY) == -1 ) +- Con_DPrintf("ioctl cdromclosetray failed\n"); ++ if ( ioctl(cdfile, CDIOCCLOSE) == -1 ) ++ Con_DPrintf("ioctl CDIOCCLOSE failed\n"); + } + + static int CDAudio_GetAudioDiskInfo(void) + { +- struct cdrom_tochdr tochdr; ++ struct ioc_toc_header tochdr; + + cdValid = false; + +- if ( ioctl(cdfile, CDROMREADTOCHDR, &tochdr) == -1 ) ++ if ( ioctl(cdfile, CDIOREADTOCHEADER, &tochdr) == -1 ) + { +- Con_DPrintf("ioctl cdromreadtochdr failed\n"); ++ Con_DPrintf("ioctl CDIOREADTOCHEADER failed\n"); + return -1; + } + +- if (tochdr.cdth_trk0 < 1) ++ if (tochdr.starting_track < 1) + { + Con_DPrintf("CDAudio: no music tracks\n"); + return -1; + } + + cdValid = true; +- maxTrack = tochdr.cdth_trk1; ++ maxTrack = tochdr.ending_track; + + return 0; + } +@@ -95,8 +95,8 @@ + + void CDAudio_Play(byte track, qboolean looping) + { +- struct cdrom_tocentry entry; +- struct cdrom_ti ti; ++ struct ioc_read_toc_single_entry entry; ++ struct ioc_play_track ti; + + if (cdfile == -1 || !enabled) + return; +@@ -115,7 +115,7 @@ + Con_DPrintf("CDAudio: Bad track number %u.\n", track); + return; + } +- ++/* + // don't try to play a non-audio track + entry.cdte_track = track; + entry.cdte_format = CDROM_MSF; +@@ -129,7 +129,7 @@ + Con_Printf("CDAudio: track %i is not audio\n", track); + return; + } +- ++*/ + if (playing) + { + if (playTrack == track) +@@ -137,19 +137,19 @@ + CDAudio_Stop(); + } + +- ti.cdti_trk0 = track; +- ti.cdti_trk1 = track; +- ti.cdti_ind0 = 1; +- ti.cdti_ind1 = 99; +- +- if ( ioctl(cdfile, CDROMPLAYTRKIND, &ti) == -1 ) ++ ti.start_track = track; ++ ti.end_track = track; ++ ti.start_index = 1; ++ ti.end_index = 99; ++ ++ if ( ioctl(cdfile, CDIOCPLAYTRACKS, &ti) == -1 ) + { +- Con_DPrintf("ioctl cdromplaytrkind failed\n"); ++ Con_DPrintf("ioctl CDIOCPLAYTRACKS failed\n"); + return; + } + +- if ( ioctl(cdfile, CDROMRESUME) == -1 ) +- Con_DPrintf("ioctl cdromresume failed\n"); ++ if ( ioctl(cdfile, CDIOCRESUME) == -1 ) ++ Con_DPrintf("ioctl CDIOCRESUME failed\n"); + + playLooping = looping; + playTrack = track; +@@ -168,8 +168,8 @@ + if (!playing) + return; + +- if ( ioctl(cdfile, CDROMSTOP) == -1 ) +- Con_DPrintf("ioctl cdromstop failed (%d)\n", errno); ++ if ( ioctl(cdfile, CDIOCSTOP) == -1 ) ++ Con_DPrintf("ioctl CDIOCSTOP failed (%d)\n", errno); + + wasPlaying = false; + playing = false; +@@ -183,8 +183,8 @@ + if (!playing) + return; + +- if ( ioctl(cdfile, CDROMPAUSE) == -1 ) +- Con_DPrintf("ioctl cdrompause failed\n"); ++ if ( ioctl(cdfile, CDIOCPAUSE) == -1 ) ++ Con_DPrintf("ioctl CDIOCPAUSE failed\n"); + + wasPlaying = playing; + playing = false; +@@ -202,8 +202,8 @@ + if (!wasPlaying) + return; + +- if ( ioctl(cdfile, CDROMRESUME) == -1 ) +- Con_DPrintf("ioctl cdromresume failed\n"); ++ if ( ioctl(cdfile, CDIOCRESUME) == -1 ) ++ Con_DPrintf("ioctl CDIOCRESUME failed\n"); + playing = true; + } + +@@ -327,7 +327,8 @@ + + void CDAudio_Update(void) + { +- struct cdrom_subchnl subchnl; ++ struct ioc_read_subchannel subchnl; ++ struct cd_sub_channel_info data; + static time_t lastchk; + + if (!enabled) +@@ -351,14 +352,17 @@ + + if (playing && lastchk < time(NULL)) { + lastchk = time(NULL) + 2; //two seconds between chks +- subchnl.cdsc_format = CDROM_MSF; +- if (ioctl(cdfile, CDROMSUBCHNL, &subchnl) == -1 ) { +- Con_DPrintf("ioctl cdromsubchnl failed\n"); ++ subchnl.data = &data; ++ subchnl.data_len = sizeof(data); ++ subchnl.address_format = CD_MSF_FORMAT; ++ subchnl.data_format = CD_CURRENT_POSITION; ++ if (ioctl(cdfile, CDIOCREADSUBCHANNEL, (char*) &subchnl) == -1 ) { ++ Con_DPrintf("ioctl CDIOCREADSUBCHANNEL failed\n"); + playing = false; + return; + } +- if (subchnl.cdsc_audiostatus != CDROM_AUDIO_PLAY && +- subchnl.cdsc_audiostatus != CDROM_AUDIO_PAUSED) { ++ if (subchnl.data->header.audio_status != CD_AS_PLAY_IN_PROGRESS && ++ subchnl.data->header.audio_status != CD_AS_PLAY_PAUSED) { + playing = false; + if (playLooping) + CDAudio_Play(playTrack, true); diff --git a/games/tenebrae/files/patch-common.c b/games/tenebrae/files/patch-common.c new file mode 100644 index 0000000..4da54a7 --- /dev/null +++ b/games/tenebrae/files/patch-common.c @@ -0,0 +1,11 @@ +--- common.c.orig Sun Mar 14 13:16:07 2004 ++++ common.c Sun Mar 14 13:17:40 2004 +@@ -2221,6 +2221,8 @@ + if ((userdir[j-1] == '\\') || (userdir[j-1] == '/')) + userdir[j-1] = 0; + } ++ ++ strncpy (com_prefdir, userdir, j); + COM_AddGameFS (userdir); + #endif + diff --git a/games/tenebrae/files/patch-common.h b/games/tenebrae/files/patch-common.h new file mode 100644 index 0000000..901bb81 --- /dev/null +++ b/games/tenebrae/files/patch-common.h @@ -0,0 +1,13 @@ +--- common.h.orig Sun Mar 14 13:19:04 2004 ++++ common.h Sun Mar 14 13:19:50 2004 +@@ -169,6 +169,10 @@ + + extern char com_gamedir[MAX_OSPATH]; + ++#ifdef USERPREF_DIR ++extern char com_prefdir[MAX_OSPATH]; ++#endif ++ + void COM_WriteFile (char *filename, void *data, int len); + int COM_OpenFile (const char *filename, int *hndl); + int COM_FOpenFile (const char *filename, FILE **file); diff --git a/games/tenebrae/files/patch-gl__common.c b/games/tenebrae/files/patch-gl__common.c new file mode 100644 index 0000000..9dbb358 --- /dev/null +++ b/games/tenebrae/files/patch-gl__common.c @@ -0,0 +1,16 @@ +--- gl_common.c.orig Sun Mar 14 12:33:12 2004 ++++ gl_common.c Sun Mar 14 12:35:26 2004 +@@ -248,11 +248,11 @@ + if (!strstr(gl_extensions, "GL_ARB_texture_env_dot3")) { + Sys_Error ("ARB_texture_env_dot3 not found.\nProbably your 3d-card is not supported.\n"); + } +- ++#if 0 + if (!strstr(gl_extensions, "GL_ARB_texture_cube_map")) { + Sys_Error ("ARB_texture_cube_map not found.\nProbably your 3d-card is not supported.\n"); + } +- ++#endif + //Just spit a warning user prob has gl-1.2 or something + if (!strstr(gl_extensions, "GL_SGI_texture_edge_clamp") && + !strstr(gl_extensions, "GL_EXT_texture_edge_clamp")) { diff --git a/games/tenebrae/files/patch-gl__vidlinuxglx.c b/games/tenebrae/files/patch-gl__vidlinuxglx.c new file mode 100644 index 0000000..1a20b1d --- /dev/null +++ b/games/tenebrae/files/patch-gl__vidlinuxglx.c @@ -0,0 +1,10 @@ +--- gl_vidlinuxglx.c.orig Sun Mar 14 12:27:06 2004 ++++ gl_vidlinuxglx.c Sun Mar 14 12:27:21 2004 +@@ -20,7 +20,6 @@ + #include <termios.h> + #include <sys/ioctl.h> + #include <sys/stat.h> +-#include <sys/vt.h> + #include <stdarg.h> + #include <stdio.h> + #include <signal.h> diff --git a/games/tenebrae/files/patch-linux_Makefile.i386linux b/games/tenebrae/files/patch-linux_Makefile.i386linux new file mode 100644 index 0000000..071a4b3 --- /dev/null +++ b/games/tenebrae/files/patch-linux_Makefile.i386linux @@ -0,0 +1,80 @@ +--- linux/Makefile.i386linux.orig Sun Mar 14 15:07:08 2004 ++++ linux/Makefile.i386linux Sun Mar 14 17:54:02 2004 +@@ -18,30 +18,30 @@ + + MOUNT_DIR = ../ + +-MASTER_DIR = /usr/local/share/games/quake ++MASTER_DIR = ${DATADIR} + + BUILD_DEBUG_DIR = debug$(ARCH)$(GLIBC) + BUILD_RELEASE_DIR = release$(ARCH)$(GLIBC) + +-LEX = /usr/bin/flex -i -Cfr +-CC = /usr/bin/gcc ++LEX ?= /usr/bin/flex -i -Cfr ++#CC = /usr/bin/gcc + +-X11_LIBS = -L/usr/X11R6/lib -lpthread -lX11 -lXext -lXxf86dga -lXxf86vm ++X11_LIBS = -L${X11BASE}/lib ${PTHREAD_LIBS} -lX11 -lXext -lXxf86dga -lXxf86vm + + # to enable OpenGL code in source +-OPENGL_CFLAGS = -D__glx__ -DGLQUAKE ++OPENGL_CFLAGS = -D__glx__ -DGLQUAKE -I${X11BASE}/include + OPENGL_LIBS = -lGL -lGLU + +-PNG_LIBS = -lpng -lz ++PNG_LIBS = -L${LOCALBASE}/lib -lpng -lz + + #OPENAL_LIBS = -lopenal +-#OPENAL_CFLAGS = -DOPENAL -I/usr/local/include/AL ++#OPENAL_CFLAGS = -DOPENAL -I${LOCALBASE}/include/AL + +-BASE_CFLAGS = -DBASEDIR="$(MASTER_DIR)" -DUSERPREF_DIR $(OPENGL_CFLAGS) $(OPENAL_CFLAGS) -I$(MOUNT_DIR) +-RELEASE_CFLAGS = $(BASE_CFLAGS) -mpentiumpro -O6 -ffast-math -funroll-loops \ ++BASE_CFLAGS = -DBASEDIR="$(MASTER_DIR)" -DUSERPREF_DIR $(OPENGL_CFLAGS) $(OPENAL_CFLAGS) -I$(MOUNT_DIR) -I${LOCALBASE}/include `${SDL_CONFIG} --cflags` ++RELEASE_CFLAGS = $(BASE_CFLAGS) -ffast-math -funroll-loops \ + -fomit-frame-pointer -fexpensive-optimizations + DEBUG_CFLAGS = $(BASE_CFLAGS) -g +-LDFLAGS = -lm -ldl $(X11_LIBS) $(OPENGL_LIBS) $(PNG_LIBS) $(OPENAL_LIBS) ++LDFLAGS = -lm $(X11_LIBS) $(OPENGL_LIBS) $(PNG_LIBS) $(OPENAL_LIBS) `${SDL_CONFIG} --libs` + + DO_GL_CC = $(CC) $(CFLAGS) -o $@ -c $< + DO_GL_AS = $(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $< +@@ -57,15 +57,15 @@ + @-mkdir -p $(BUILD_DEBUG_DIR) \ + $(BUILD_DEBUG_DIR)/bin \ + $(BUILD_DEBUG_DIR)/glquake +- $(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)" ++ $(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS+="$(DEBUG_CFLAGS)" + + build_release: + @-mkdir -p $(BUILD_RELEASE_DIR) \ + $(BUILD_RELEASE_DIR)/bin \ + $(BUILD_RELEASE_DIR)/glquake +- $(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(RELEASE_CFLAGS)" ++ $(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS+="$(RELEASE_CFLAGS)" + +-all: build_debug build_release ++all: build_debug + + targets: $(TARGETS) + +@@ -143,7 +143,7 @@ + $(BUILDDIR)/glquake/snd_dma.o \ + $(BUILDDIR)/glquake/snd_mem.o \ + $(BUILDDIR)/glquake/snd_mix.o \ +- $(BUILDDIR)/glquake/snd_linux.o \ ++ $(BUILDDIR)/glquake/snd_sdl.o \ + $(BUILDDIR)/glquake/gl_vidlinuxglx.o \ + $(BUILDDIR)/glquake/math.o \ + $(BUILDDIR)/glquake/worlda.o \ +@@ -361,7 +361,7 @@ + $(BUILDDIR)/glquake/snd_mix.o : $(MOUNT_DIR)/snd_mix.c + $(DO_GL_CC) + +-$(BUILDDIR)/glquake/snd_linux.o : $(MOUNT_DIR)/snd_linux.c ++$(BUILDDIR)/glquake/snd_sdl.o : $(MOUNT_DIR)/snd_sdl.c + $(DO_GL_CC) + + $(BUILDDIR)/glquake/math.o : $(MOUNT_DIR)/math.s diff --git a/games/tenebrae/files/patch-net.h b/games/tenebrae/files/patch-net.h new file mode 100644 index 0000000..9f2e41d --- /dev/null +++ b/games/tenebrae/files/patch-net.h @@ -0,0 +1,11 @@ +--- net.h.orig Wed Mar 17 10:25:22 2004 ++++ net.h Wed Mar 17 10:25:37 2004 +@@ -239,7 +239,7 @@ + extern int hostCacheCount; + extern hostcache_t hostcache[HOSTCACHESIZE]; + +-#if !defined(_WIN32 ) && !defined (__linux__) && !defined (__sun__) ++#if !defined(_WIN32 ) && !defined (__linux__) && !defined (__sun__) && !defined (__FreeBSD__) + #ifndef htonl + extern unsigned long htonl (unsigned long hostlong); + #endif diff --git a/games/tenebrae/files/patch-snd__linux.c b/games/tenebrae/files/patch-snd__linux.c new file mode 100644 index 0000000..610506a --- /dev/null +++ b/games/tenebrae/files/patch-snd__linux.c @@ -0,0 +1,11 @@ +--- snd_linux.c.orig Sun Mar 14 12:25:10 2004 ++++ snd_linux.c Sun Mar 14 12:25:46 2004 +@@ -25,7 +25,7 @@ + #include <sys/mman.h> + #include <sys/shm.h> + #include <sys/wait.h> +-#include <linux/soundcard.h> ++#include <sys/soundcard.h> + #include <stdio.h> + #include "quakedef.h" + diff --git a/games/tenebrae/files/patch-snd__sdl.c b/games/tenebrae/files/patch-snd__sdl.c new file mode 100644 index 0000000..c247885 --- /dev/null +++ b/games/tenebrae/files/patch-snd__sdl.c @@ -0,0 +1,15 @@ +--- snd_sdl.c.orig Sun Mar 14 17:59:19 2004 ++++ snd_sdl.c Sun Mar 14 17:59:35 2004 +@@ -119,3 +119,12 @@ + } + } + ++/* ++============== ++SNDDMA_Submit ++Send sound to device if buffer isn't really the dma buffer ++=============== ++*/ ++void SNDDMA_Submit(void) ++{ ++} diff --git a/games/tenebrae/files/patch-sys__uxfindfirst.c b/games/tenebrae/files/patch-sys__uxfindfirst.c new file mode 100644 index 0000000..47f1d7e --- /dev/null +++ b/games/tenebrae/files/patch-sys__uxfindfirst.c @@ -0,0 +1,11 @@ +--- sys_uxfindfirst.c.orig Sun Mar 14 15:00:09 2004 ++++ sys_uxfindfirst.c Sun Mar 14 15:06:52 2004 +@@ -36,7 +36,7 @@ + #include "quakedef.h" + #include <errno.h> + +-#if !defined(__GLIBC__) ++#if !defined(__GLIBC__) && !defined(__FreeBSD__) + + #include <dirent.h> + #include <fnmatch.h> diff --git a/games/tenebrae/pkg-descr b/games/tenebrae/pkg-descr new file mode 100644 index 0000000..eacd76d --- /dev/null +++ b/games/tenebrae/pkg-descr @@ -0,0 +1,17 @@ +Tenebrae is not quake1 anymore, it uses more advanced graphics algorithms so it +requires a much faster system to run. +These are the bare minimum reqs to run Tenebrae: + +PIII 600 +64 Mb RAM (More if you want to use some mods.) +Geforce1 +Quake1 data (registered or shareware) +Water vissed maps + +Recommended is a faster processor and a geforce4 / radeon 8500 class 3d card. +Tenebrae_Readme.txt contains full list of supported video cards. + +WWW: http://tenebrae.sourceforge.net/ + +- Igor Pokrovsky +tiamat@comset.net diff --git a/games/tenebrae/pkg-message b/games/tenebrae/pkg-message new file mode 100644 index 0000000..fde724f --- /dev/null +++ b/games/tenebrae/pkg-message @@ -0,0 +1,5 @@ +******************************************************************************* +* Before running Tenebrae copy Quake 1 data files (id1 directory) +* into %%DATADIR%%. +* Filenames should be in lower case! +******************************************************************************* diff --git a/games/tenebrae/pkg-plist b/games/tenebrae/pkg-plist new file mode 100644 index 0000000..fee49a9 --- /dev/null +++ b/games/tenebrae/pkg-plist @@ -0,0 +1,6 @@ +bin/tenebrae +%%DATADIR%%/tenebrae/Pak0.pak +@dirrm %%DATADIR%%/tenebrae +@dirrm %%DATADIR%% +%%PORTDOCS%%%%DOCSDIR%%/Tenebrae_Readme.txt +%%PORTDOCS%%@dirrm %%DOCSDIR%% |