hartung@amos.ling.ucsd.edu (Jeff Hartung) (07/29/89)
I am using Turbo C 2.0 to compile NetHack 3.0, and I've managed to compile NETHACK.EXE without too much trouble, but I'm stuck without and LEV_COMP.EXE file, and consequently lines in the makefile like "lev_comp ..\auxil\tower.des" return "bad command or filename" messages. I checked the 'o' directory, and I noticed that three of the SPLEVOBJS object files, lev_comp.obj, lev_lex.obj and lev_main.obj, are not being compiled. The makefile looks OK to me, but NDMake 4.5 seems to ignore that portion of the Makefile completely. I compiled 2 of the object files myself, but when I try to compile lev_comp.c, I get the following errors: line 1190: illegal '#' character line 1192: declaration syntax error line 1221: undefined symbol 'yyv' line 1221: invalid indirection line 1237: undefined symbol 'YYFLAG' None of these makes any sense to me. There is no '#' character on line 1190, there is no 'yyv' symbol on line 1221, YYFLAG is defined, as far as I can tell, etc. (1) Why does NDMake ignore the dependencies for lev_comp.obj, lev_lex.obj, and lev_main.c? (2) What's wrong with lev_comp.c (or lev_comp.y ?) that causes it to generate the aforementioned errors? I also get a couple of other 'bad command or filename' messages, and NDMake complains that the macro 'TMP' is not defined when it links everything, but this doesn't seem to affect anything, as the .EXE file is still produced. By the way, I'm running DOS 3.3 on an XT clone, and I've compiled other versions of NetHack, including 2.3, using the same soft/hardware. HELP! --Jeff Hartung-- Disclaimer: My opinions only, etc., etc., BLAH! BLAH! BLAH!... ARPA - hartung@amos.ucsd.edu UUCP - ucsd!amos.ucsd.edu!hartung
linhart@topaz.rutgers.edu (Mike Threepoint) (07/31/89)
The hartung writes! -=> I am using Turbo C 2.0 to compile NetHack 3.0, and I've managed to compile -=> NETHACK.EXE without too much trouble, but I'm stuck without... LEV_COMP.EXE -=> ...when I try to compile lev_comp.c, I get the following errors: -=> -=> line 1190: illegal '#' character -=> line 1192: declaration syntax error -=> line 1221: undefined symbol 'yyv' -=> line 1221: invalid indirection -=> line 1237: undefined symbol 'YYFLAG' The problem is in lev_comp.c, but not the line mentioned. Look for a line containing only "# " just before the YYFLAG #define. yacc puts it in and Turbo C doesn't like it, even tho it's supposed to ignore it. Delete it and it should compile.