diff options
author | danfe <danfe@FreeBSD.org> | 2005-01-14 03:25:29 +0800 |
---|---|---|
committer | danfe <danfe@FreeBSD.org> | 2005-01-14 03:25:29 +0800 |
commit | 82a4bff3b9919f51b6bb252b326637bed9fa31a0 (patch) | |
tree | ab69ccc4e0cbe67fc37241decc114b369f3b0796 /games/qcc | |
parent | f4b88f04a112da27fb1c10bcd47ec92e406dfaf9 (diff) | |
download | freebsd-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/Makefile | 11 | ||||
-rw-r--r-- | games/qcc/pkg-descr | 72 | ||||
-rw-r--r-- | games/qcc/pkg-plist | 78 |
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%% |