aboutsummaryrefslogtreecommitdiffstats
path: root/games/qcc
diff options
context:
space:
mode:
authordanfe <danfe@FreeBSD.org>2005-01-14 03:25:29 +0800
committerdanfe <danfe@FreeBSD.org>2005-01-14 03:25:29 +0800
commit82a4bff3b9919f51b6bb252b326637bed9fa31a0 (patch)
treeab69ccc4e0cbe67fc37241decc114b369f3b0796 /games/qcc
parentf4b88f04a112da27fb1c10bcd47ec92e406dfaf9 (diff)
downloadfreebsd-ports-gnome-82a4bff3b9919f51b6bb252b326637bed9fa31a0.tar.gz
freebsd-ports-gnome-82a4bff3b9919f51b6bb252b326637bed9fa31a0.tar.zst
freebsd-ports-gnome-82a4bff3b9919f51b6bb252b326637bed9fa31a0.zip
- Adjust CATEGORIES
- Respect CFLAGS - Sanitize pkg-descr - Utilize DATADIR macro in pkg-plist - Take maintainership
Diffstat (limited to 'games/qcc')
-rw-r--r--games/qcc/Makefile11
-rw-r--r--games/qcc/pkg-descr72
-rw-r--r--games/qcc/pkg-plist78
3 files changed, 52 insertions, 109 deletions
diff --git a/games/qcc/Makefile b/games/qcc/Makefile
index d0314e951fbe..c1a59d3922c3 100644
--- a/games/qcc/Makefile
+++ b/games/qcc/Makefile
@@ -7,19 +7,24 @@
PORTNAME= qcc
PORTVERSION= 1.01
-CATEGORIES= games
+CATEGORIES= games devel
MASTER_SITES= ftp://ftp.idsoftware.com/idstuff/source/
DISTNAME= ${PORTNAME}
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= danfe@FreeBSD.org
COMMENT= The QuakeC compiler, for building custom games of Quake
+USE_REINPLACE= yes
+
WRKSRC= ${WRKDIR}/send
MAKEFILE= makefile
+post-extract:
+ @${REINPLACE_CMD} -e '/^CFLAGS/d' ${WRKSRC}/makefile
+
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/qcc ${PREFIX}/bin
- @ ${MKDIR} ${PREFIX}/share/qcc/v101qc
+ @${MKDIR} ${PREFIX}/share/qcc/v101qc
${INSTALL_DATA} ${WRKSRC}/readme.txt ${PREFIX}/share/qcc
${INSTALL_DATA} ${WRKSRC}/v101qc/* ${PREFIX}/share/qcc/v101qc
diff --git a/games/qcc/pkg-descr b/games/qcc/pkg-descr
index e9a4023e520c..308429570432 100644
--- a/games/qcc/pkg-descr
+++ b/games/qcc/pkg-descr
@@ -1,68 +1,6 @@
+QCC is the Quake-C Compiler made by John Carmack of id Software. It is used
+to generate `progs.dat' file that essentially holds game logic behind the
+graphic engine. It is used primarily to create modifications (MODs) for
+Quake and QuakeWorld.
-This is the last major component of the quake utilities to be released. To
-be honest, I have been a little reticent to release this because most of the
-actual qc code is basically rather embarassing crap. The time never became
-available to even give it a good top to bottom going over. I never spent
-any quality engineering time on my parts, American wrote a lot of qc code,
-and even Romero has a bit of work in there. It is a mess. If you look
-through the code and occasionally think "This is stupid!", you are probably
-right...
-
-The compiler itself can be drastically sped up by just replacing the symbol
-searches with binary trees or hashing. We remotely compile on our alpha, so
-it hasn't been a big enough issue for me to do it, but as the code size
-grows and grows it will be done sooner or later.
-
-The resulting code is horribly nieve and space ineficient (twleve bytes /
-instruction). If common subexpression removal was added, the instruction
-count could probably be cut nearly in half. I would have liked to have done
-a better job at this, but this was my first compiler front end, and I had a
-ton of other things fighting for my time. The next one will turn out
-better. (wow, I'm making a lot of excuses here, aren't I?)
-
-Qcc also performs some other maintenence functions for us, like rebuildinng
-all the brush models and making pak files, but those functions are only
-usefull if you have created all new data for everything. models.qc and
-sprites.qc don't actually generate any code, they are just parsed by
-modelgen and spritegen and included for completeness.
-
-
-To modify the quake program code, set up a new game directory parallel with
-id1, and containing a "progs" subdirectory. Copy all the .qc files and
-progs.src into that, and just run qcc from that directory. That will
-compile all of the files listed in progs.src and (if there aren't any
-errors) generate a new progs.dat file in the parent directory.
-
-As a simple test, open the client.qc file, go to the ClientObituary function
-at the end, and change some of the messages.
-
-The directory structure will look something like:
-
-/quake/quake.exe
-/quake/id1/
-/quake/mygame/progs.dat
-/quake/mygame/progs/progs.src
-/quake/mygame/progs/world.qc
-/quake/mygame/progs/client.qc
-/quake/mygame/progs/... etc ...
-
-Run quake with "-game mygame", which will cause quake to look for data in
-the mygame directory before falling back to id1. In this example, it will
-find the new progs.dat from mygame, and take everything else from id1. You
-can type "path" at the quake console to verify the current search order of
-directories and pak files. THIS WILL ONLY WORK WITH A REGISTERED VERSION OF
-QUAKE.
-
-The header qcc.h has the language spec and some documentation, but I'm not
-positive if it is all current.
-
-The only documentation for the various builtin functions I can offer is the
-source code used by quake. See builtin.c. Some of them are required to do
-things outside the scope of the qc world, and some are just there for speed
-reasons.
-
-PLEASE don't ask me questions about all this!
-
-
-John Carmack
-
+WWW: ftp://ftp.idsoftware.com/idstuff/source/
diff --git a/games/qcc/pkg-plist b/games/qcc/pkg-plist
index 74f2fa090d87..e46a498d6e97 100644
--- a/games/qcc/pkg-plist
+++ b/games/qcc/pkg-plist
@@ -1,40 +1,40 @@
bin/qcc
-share/qcc/readme.txt
-share/qcc/v101qc/ai.qc
-share/qcc/v101qc/amtest.qc
-share/qcc/v101qc/boss.qc
-share/qcc/v101qc/buttons.qc
-share/qcc/v101qc/client.qc
-share/qcc/v101qc/combat.qc
-share/qcc/v101qc/defs.qc
-share/qcc/v101qc/demon.qc
-share/qcc/v101qc/dog.qc
-share/qcc/v101qc/doors.qc
-share/qcc/v101qc/enforcer.qc
-share/qcc/v101qc/fight.qc
-share/qcc/v101qc/fish.qc
-share/qcc/v101qc/hknight.qc
-share/qcc/v101qc/items.qc
-share/qcc/v101qc/jctest.qc
-share/qcc/v101qc/knight.qc
-share/qcc/v101qc/misc.qc
-share/qcc/v101qc/models.qc
-share/qcc/v101qc/monsters.qc
-share/qcc/v101qc/ogre.qc
-share/qcc/v101qc/oldone.qc
-share/qcc/v101qc/plats.qc
-share/qcc/v101qc/player.qc
-share/qcc/v101qc/progs.src
-share/qcc/v101qc/subs.qc
-share/qcc/v101qc/shalrath.qc
-share/qcc/v101qc/shambler.qc
-share/qcc/v101qc/soldier.qc
-share/qcc/v101qc/sprites.qc
-share/qcc/v101qc/tarbaby.qc
-share/qcc/v101qc/triggers.qc
-share/qcc/v101qc/weapons.qc
-share/qcc/v101qc/wizard.qc
-share/qcc/v101qc/world.qc
-share/qcc/v101qc/zombie.qc
-@dirrm share/qcc/v101qc
-@dirrm share/qcc
+%%DATADIR%%/readme.txt
+%%DATADIR%%/v101qc/ai.qc
+%%DATADIR%%/v101qc/amtest.qc
+%%DATADIR%%/v101qc/boss.qc
+%%DATADIR%%/v101qc/buttons.qc
+%%DATADIR%%/v101qc/client.qc
+%%DATADIR%%/v101qc/combat.qc
+%%DATADIR%%/v101qc/defs.qc
+%%DATADIR%%/v101qc/demon.qc
+%%DATADIR%%/v101qc/dog.qc
+%%DATADIR%%/v101qc/doors.qc
+%%DATADIR%%/v101qc/enforcer.qc
+%%DATADIR%%/v101qc/fight.qc
+%%DATADIR%%/v101qc/fish.qc
+%%DATADIR%%/v101qc/hknight.qc
+%%DATADIR%%/v101qc/items.qc
+%%DATADIR%%/v101qc/jctest.qc
+%%DATADIR%%/v101qc/knight.qc
+%%DATADIR%%/v101qc/misc.qc
+%%DATADIR%%/v101qc/models.qc
+%%DATADIR%%/v101qc/monsters.qc
+%%DATADIR%%/v101qc/ogre.qc
+%%DATADIR%%/v101qc/oldone.qc
+%%DATADIR%%/v101qc/plats.qc
+%%DATADIR%%/v101qc/player.qc
+%%DATADIR%%/v101qc/progs.src
+%%DATADIR%%/v101qc/subs.qc
+%%DATADIR%%/v101qc/shalrath.qc
+%%DATADIR%%/v101qc/shambler.qc
+%%DATADIR%%/v101qc/soldier.qc
+%%DATADIR%%/v101qc/sprites.qc
+%%DATADIR%%/v101qc/tarbaby.qc
+%%DATADIR%%/v101qc/triggers.qc
+%%DATADIR%%/v101qc/weapons.qc
+%%DATADIR%%/v101qc/wizard.qc
+%%DATADIR%%/v101qc/world.qc
+%%DATADIR%%/v101qc/zombie.qc
+@dirrm %%DATADIR%%/v101qc
+@dirrm %%DATADIR%%