Index: head/games/qcc/Makefile =================================================================== --- head/games/qcc/Makefile (revision 126333) +++ head/games/qcc/Makefile (revision 126334) @@ -1,26 +1,31 @@ # New ports collection makefile for: qcc # Date created: October 25th 1996 # Whom: jfitz@FreeBSD.org # # $FreeBSD$ # 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 .include Property changes on: head/games/qcc/Makefile ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.13 \ No newline at end of property +1.14 \ No newline at end of property Index: head/games/qcc/pkg-descr =================================================================== --- head/games/qcc/pkg-descr (revision 126333) +++ head/games/qcc/pkg-descr (revision 126334) @@ -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/ Property changes on: head/games/qcc/pkg-descr ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.1.1.1 \ No newline at end of property +1.2 \ No newline at end of property Index: head/games/qcc/pkg-plist =================================================================== --- head/games/qcc/pkg-plist (revision 126333) +++ head/games/qcc/pkg-plist (revision 126334) @@ -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%% Property changes on: head/games/qcc/pkg-plist ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.1.1.1 \ No newline at end of property +1.2 \ No newline at end of property