# SCCS Id: @(#)Makefile.os2 3.0 91/01/13 # OS/2 NetHack 3.0 Makefile for Microsoft(tm) C 5.1 and 6.0 # -- Timo Hakulinen # # NDMAKE ver 4.5 or MS-NMAKE is required, MS-MAKE will not work. # To enable either make utility, uncomment the respective # make-specific macros. If you plan to cross-compile in DOS, your # best bet is NDMAKE, since it requires less memory than NMAKE. # To compile in OS/2 use NMAKE or compatible. Remember to set # $(RLIBS) to real mode libraries if compiling in DOS, and to # protected mode libraries for compilation in OS/2. # # Copy pctty.c, pcunix.c, pcmain.c, msdos.c and this file # (+ termcap library if used) into $(SRC) directory, rename # this file to "makefile" (important, some targets rely on it), # compile and link inside $(SRC). Termcap library can be built # from termcap sources using makefile.lib in "others" directory. # # When using CodeView versions earlier than ver. 2.3, define # OS2_CODEVIEW in pcconf.h and set HACKDIR (+ TERM and TERMCAP # if used) in OS/2 config.sys. Otherwise path searches may fail. # # Note that $(GAMEDIR) must exist prior to compilation. # CC = cl LINK = link LIB = lib # Enable the upper three lines for NDMAKE and lower three for MS-NMAKE. # ($(MAKE) macro is often predefined, so we use $(MAKEBIN) instead). #MAKEBIN = make #AB = $*.c #CB = $*.c MAKEBIN = nmake AB = $(@B).c CB = $$(@B).c # For those of us who have these on PC. #YACC = yacc #LEX = lex YACC = bison -y LEX = flex # Standard file names may vary in PC installations. YTABC = y_tab.c YTABH = y_tab.h LEXYYC = lexyy.c # Directories (makedefs hardcodes these, don't change them). INCL = ..\include # NetHack include files AUX = ..\auxil # NetHack data and documentation SRC = ..\src # NetHack source # Modifiable directories. OBJ = $(SRC)\o2 # Object files PLIBP = c:\libp # Protected mode C libraries RLIBP = c:\lib # Real mode C libraries GAMEDIR = \games\nethack # The game directory # The game name and description. GAME = nethack GAMEDES = NetHack 3.0 # Memory model, compile only, disable optimization, remove stack probes, # 80286 instruction set, dedicated datasegment for items >= 5 bytes, # pack structures on 1 byte boundaries, generate code for 8087 # coprocessor, compiler warning level, include file path. CFLAGS = /AL /c /Od /Gs /G2 /Gt5 /Zp1 /FPi /W1 /I$(INCL) $(CDFLAGS) $(STDC) # + prepare for CodeView symbolic debugger. CDFLAGS = #CDFLAGS = /Zi # Disable for MSC 5.1, enable for 6.0. STDC = #STDC = /D__STDC__ # Don't ignore case in symbols, no default lib search, stack 4096 bytes. # (actually a bit of overkill), allow max 1024 segments in program. LFLAGS = /noig /nod /stack:4096 /seg:1024 $(LDFLAGS) # + prepare for CodeView symbolic debugger. LDFLAGS = #LDFLAGS = /CO # Protected mode C libraries for 8087 emulation (change if necessary), # OS/2 API entry points. For MSC 5.1, enable the upper line # for 6.0 the lower. PLIBS = $(PLIBP)\llibcep $(PLIBP)\doscalls #PLIBS = $(PLIBP)\llibcep $(PLIBP)\os2 # C libraries used by makedefs and lev_comp (change if necessary). # If compilation is done in DOS, enable the upper line, if in OS/2, # the lower (protected mode libraries). #RLIBS = $(RLIBP)\llibcer RLIBS = $(PLIBS) # Module definition file for OS/2. OS2DEFS = $(GAME).def # The default make target (so just typing 'make' is useful). default: $(GAME) # If you have yacc and lex programs and make any changes, comment out the # upper two lines and uncomment the lower two. do_yacc: yacc_msg do_lex: lex_msg #do_yacc: yacc_act #do_lex: lex_act # Optional high-quality BSD random number generation routines (see pcconf.h). # Set to nothing if not used. RANDOM = $(OBJ)\random.o #RANDOM = # If TERMLIB defined in pcconf.h, comment out the upper line and # uncomment the lower. If the termcap-library doesn't exist, use # others\makefile.lib to build it. TERMLIB = #TERMLIB = termlib.lib ###################################################################### # # Nothing below this line should have to be changed. # # Other things that have to be reconfigured are in # config.h, pcconf.h and possibly system.h. # # The game filename. GAMEFILE = $(GAMEDIR)\$(GAME).exe # Object files for makedefs. MAKEOBJS = $(OBJ)\makedefs.o $(OBJ)\monst.o $(OBJ)\objects.o # Object files for special levels compiler. SOBJ01 = $(OBJ)\lev_comp.o $(OBJ)\lev_lex.o $(OBJ)\lev_main.o $(OBJ)\alloc.o SOBJ02 = $(OBJ)\monst.o $(OBJ)\objects.o $(OBJ)\panic.o SPLEVOBJS = $(SOBJ01) $(SOBJ02) VOBJ01 = $(OBJ)\allmain.o $(OBJ)\alloc.o $(OBJ)\apply.o $(OBJ)\artifact.o VOBJ02 = $(OBJ)\attrib.o $(OBJ)\bones.o $(OBJ)\cmd.o $(OBJ)\dbridge.o VOBJ03 = $(OBJ)\decl.o $(OBJ)\demon.o $(OBJ)\do.o $(OBJ)\do_name.o VOBJ04 = $(OBJ)\do_wear.o $(OBJ)\dog.o $(OBJ)\dogmove.o $(OBJ)\dokick.o VOBJ05 = $(OBJ)\dothrow.o $(OBJ)\eat.o $(OBJ)\end.o VOBJ06 = $(OBJ)\engrave.o $(OBJ)\exper.o $(OBJ)\extralev.o $(OBJ)\fountain.o VOBJ07 = $(OBJ)\getline.o $(OBJ)\hack.o $(OBJ)\invent.o $(OBJ)\lock.o VOBJ08 = $(OBJ)\mail.o $(OBJ)\main.o $(OBJ)\makemon.o $(OBJ)\mcastu.o VOBJ09 = $(OBJ)\mhitm.o $(OBJ)\mhitu.o $(OBJ)\mklev.o $(OBJ)\mkmaze.o VOBJ10 = $(OBJ)\mkobj.o $(OBJ)\mkroom.o $(OBJ)\mon.o $(OBJ)\mondata.o VOBJ11 = $(OBJ)\msdos.o $(OBJ)\monmove.o $(OBJ)\monst.o $(OBJ)\mthrowu.o VOBJ12 = $(OBJ)\music.o $(OBJ)\o_init.o $(OBJ)\objects.o VOBJ13 = $(OBJ)\objnam.o $(OBJ)\options.o $(OBJ)\pager.o $(OBJ)\pickup.o VOBJ14 = $(OBJ)\polyself.o $(OBJ)\potion.o $(OBJ)\pray.o $(OBJ)\pri.o VOBJ15 = $(OBJ)\priest.o $(OBJ)\prisym.o $(RANDOM) $(OBJ)\read.o VOBJ16 = $(OBJ)\restore.o $(OBJ)\rip.o $(OBJ)\rnd.o $(OBJ)\rumors.o VOBJ17 = $(OBJ)\save.o $(OBJ)\search.o $(OBJ)\shk.o $(OBJ)\shknam.o VOBJ18 = $(OBJ)\sit.o $(OBJ)\sounds.o $(OBJ)\sp_lev.o $(OBJ)\spell.o VOBJ20 = $(OBJ)\steal.o $(OBJ)\termcap.o $(OBJ)\timeout.o $(OBJ)\topl.o VOBJ21 = $(OBJ)\topten.o $(OBJ)\track.o $(OBJ)\trap.o $(OBJ)\tty.o VOBJ22 = $(OBJ)\u_init.o $(OBJ)\uhitm.o $(OBJ)\unix.o $(OBJ)\vault.o VOBJ23 = $(OBJ)\weapon.o $(OBJ)\were.o $(OBJ)\wield.o VOBJ24 = $(OBJ)\wizard.o $(OBJ)\worm.o $(OBJ)\worn.o $(OBJ)\write.o VOBJ25 = $(OBJ)\zap.o HHOBJ = $(OBJ)\version.o VOBJ = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) $(VOBJ06) $(VOBJ07) \ $(VOBJ08) $(VOBJ09) $(VOBJ10) $(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) \ $(VOBJ15) $(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ20) $(VOBJ21) $(VOBJ22) \ $(VOBJ23) $(VOBJ24) $(VOBJ25) HOBJ = $(VOBJ) $(HHOBJ) PCCONF_H = $(INCL)\pcconf.h $(INCL)\msdos.h $(INCL)\system.h \ $(INCL)\extern.h $(INCL)\def_os2.h GLOBAL_H = $(INCL)\global.h $(INCL)\coord.h $(PCCONF_H) CONFIG_H = $(INCL)\config.h $(INCL)\tradstdc.h $(GLOBAL_H) TRAP_H = $(INCL)\trap.h PERMONST_H = $(INCL)\permonst.h $(INCL)\monattk.h $(INCL)\monflag.h YOU_H = $(INCL)\you.h $(INCL)\attrib.h $(PERMONST_H) $(INCL)\mondata.h \ $(INCL)\monst.h $(INCL)\youprop.h $(INCL)\prop.h $(INCL)\pm.h DECL_H = $(INCL)\decl.h $(INCL)\spell.h $(INCL)\obj.h $(YOU_H) \ $(INCL)\onames.h $(INCL)\color.h HACK_H = $(CONFIG_H) $(DECL_H) $(INCL)\monsym.h $(INCL)\mkroom.h \ $(INCL)\objclass.h $(INCL)\gold.h $(TRAP_H) $(INCL)\flag.h \ $(INCL)\rm.h $(INCL)\hack.h # The default target all: makedefs lev_comp $(GAME) auxil @echo Done. # The main target $(GAME): $(OBJ) $(GAMEDIR)\$(GAME).exe $(GAME).exe: $(GAMEDIR)\$(GAME).exe $(GAMEDIR)\$(GAME).exe: $(GAME).res $(LINK) @$(GAME).res $(GAME).res: $(HOBJ) $(OS2DEFS) @echo $(VOBJ01) +> $@ @echo $(VOBJ02) +>> $@ @echo $(VOBJ03) +>> $@ @echo $(VOBJ04) +>> $@ @echo $(VOBJ05) +>> $@ @echo $(VOBJ06) +>> $@ @echo $(VOBJ07) +>> $@ @echo $(VOBJ08) +>> $@ @echo $(VOBJ09) +>> $@ @echo $(VOBJ10) +>> $@ @echo $(VOBJ11) +>> $@ @echo $(VOBJ12) +>> $@ @echo $(VOBJ13) +>> $@ @echo $(VOBJ14) +>> $@ @echo $(VOBJ15) +>> $@ @echo $(VOBJ16) +>> $@ @echo $(VOBJ17) +>> $@ @echo $(VOBJ18) +>> $@ @echo $(VOBJ20) +>> $@ @echo $(VOBJ21) +>> $@ @echo $(VOBJ22) +>> $@ @echo $(VOBJ23) +>> $@ @echo $(VOBJ24) +>> $@ @echo $(VOBJ25) +>> $@ @echo $(HHOBJ)>> $@ @echo $(GAMEDIR)\$(GAME)>> $@ @echo $(GAME)>> $@ @echo $(PLIBS) $(TERMLIB)>> $@ @echo $(OS2DEFS) $(LFLAGS);>> $@ $(OBJ): -mkdir $(OBJ) # Targets for makedefs. makedefs: $(OBJ) makedefs.exe makedefs.exe: makedefs.res $(LINK) @makedefs.res makedefs.res: $(MAKEOBJS) @echo $(MAKEOBJS)> $@ @echo makedefs>> $@ @echo nul>> $@ @echo $(RLIBS)>> $@ @echo $(LFLAGS);>> $@ $(OBJ)\makedefs.o : $(CB) $(INCL)\config.h $(INCL)\permonst.h $(INCL)\objclass.h $(CC) $(CFLAGS) /Fo$@ $(AB) # Targets for the special levels compiler. lev_comp: $(OBJ) lev_comp.exe lev_comp.exe: lev_comp.res $(LINK) @lev_comp.res lev_comp.res: $(SPLEVOBJS) @echo $(SOBJ01) +> $@ @echo $(SOBJ02)>> $@ @echo lev_comp>> $@ @echo nul>> $@ @echo $(RLIBS)>> $@ @echo $(LFLAGS);>> $@ $(OBJ)\lev_comp.o : $(CB) $(HACK_H) $(INCL)\sp_lev.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\lev_lex.o : $(CB) $(HACK_H) $(INCL)\sp_lev.h $(INCL)\lev_comp.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\lev_main.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) lev_comp.c : lev_comp.y $(MAKEBIN) do_yacc lev_lex.c : lev_comp.l $(MAKEBIN) do_lex yacc_msg: @echo lev_comp.y has changed. To update lev_comp.c and lev_comp.h run YACC. yacc_act: $(YACC) -d lev_comp.y copy $(YTABC) lev_comp.c copy $(YTABH) $(INCL)\lev_comp.h del $(YTABC) del $(YTABH) lex_msg: @echo lev_comp.l has changed. To update lev_lex.c run LEX. lex_act: $(LEX) lev_comp.l copy $(LEXYYC) lev_lex.c del $(LEXYYC) # # The following include files depend on makedefs to be created. # # date.h should be remade any time any of the source or include code # is modified. # $(INCL)\date.h: $(VOBJ) makedefs.exe makedefs -v $(INCL)\trap.h: makedefs.exe makedefs -t $(INCL)\onames.h: makedefs.exe makedefs -o $(INCL)\pm.h: makedefs.exe makedefs -p data: $(AUX)\data.bas makedefs.exe makedefs -d rumors: $(AUX)\rumors.tru $(AUX)\rumors.fal makedefs.exe makedefs -r # # The following programs vary depending on what OS you are using. # $(OBJ)\main.o: pc$(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ pc$(AB) $(OBJ)\tty.o: pc$(CB) $(HACK_H) $(INCL)\func_tab.h $(CC) $(CFLAGS) /Fo$@ pc$(AB) $(OBJ)\unix.o: pc$(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ pc$(AB) # # Secondary targets # auxil: spec_lev data rumors xcopy $(AUX)\cmdhelp $(GAMEDIR) xcopy $(AUX)\help $(GAMEDIR) xcopy $(AUX)\hh $(GAMEDIR) xcopy $(AUX)\history $(GAMEDIR) xcopy $(AUX)\license $(GAMEDIR) xcopy $(AUX)\opthelp $(GAMEDIR) xcopy $(AUX)\oracles $(GAMEDIR) xcopy $(AUX)\data $(GAMEDIR) xcopy $(AUX)\rumors $(GAMEDIR) spec_lev: $(AUX)\castle.des $(AUX)\endgame.des $(AUX)\tower.des lev_comp $(AUX)\castle.des lev_comp $(AUX)\endgame.des lev_comp $(AUX)\tower.des xcopy castle $(GAMEDIR) xcopy endgame $(GAMEDIR) xcopy tower? $(GAMEDIR) del castle del endgame del tower? $(OS2DEFS): @echo NAME $(GAME) WINDOWCOMPAT> $(OS2DEFS) @echo DESCRIPTION '$(GAMEDES)'>> $(OS2DEFS) @echo PROTMODE>> $(OS2DEFS) @echo EXETYPE OS2>> $(OS2DEFS) clean: -del $(OBJ)\*.o -rmdir $(OBJ) spotless: clean -del $(INCL)\date.h -del $(INCL)\onames.h -del $(INCL)\pm.h -del makedefs.exe -del lev_comp.exe -del *.res -del *.def -del *.map -del $(AUX)\data -del $(AUX)\rumors -del castle -del endgame -del tower? # # Other dependencies. # # MS-NMAKE doesn't give a damn about default rules here, so until # that is fixed, we do this the hard way. # $(OBJ)\allmain.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\alloc.o : $(CB) $(CONFIG_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\apply.o : $(CB) $(HACK_H) $(INCL)\edog.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\artifact.o : $(CB) $(HACK_H) $(INCL)\artifact.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\attrib.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\bones.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\cmd.o : $(CB) $(HACK_H) $(INCL)\func_tab.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\dbridge.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\decl.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\demon.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\do.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\do_name.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\do_wear.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\dog.o : $(CB) $(HACK_H) $(INCL)\edog.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\dogmove.o : $(CB) $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\dokick.o : $(CB) $(HACK_H) $(INCL)\eshk.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\dothrow.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\eat.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\end.o : $(CB) $(HACK_H) $(INCL)\eshk.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\engrave.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\exper.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\extralev.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\fountain.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\getline.o : $(CB) $(HACK_H) $(INCL)\func_tab.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\hack.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\invent.o : $(CB) $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\ioctl.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\lock.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\makemon.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\mail.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\mcastu.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\mhitm.o : $(CB) $(HACK_H) $(INCL)\artifact.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\mhitu.o : $(CB) $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\mklev.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\mkmaze.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\mkobj.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\mkroom.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\mon.o : $(CB) $(HACK_H) $(INCL)\mfndpos.h $(INCL)\wseg.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\mondata.o : $(CB) $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\monmove.o : $(CB) $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\monst.o : $(CB) $(CONFIG_H) $(PERMONST_H) $(INCL)\monsym.h $(INCL)\eshk.h \ $(INCL)\vault.h $(INCL)\epri.h $(INCL)\color.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\msdos.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\mthrowu.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\music.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\o_init.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\objects.o : $(CB) $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h $(INCL)\prop.h \ $(INCL)\color.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\objnam.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\options.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\pager.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\panic.o : $(CB) $(CONFIG_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\pickup.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\polyself.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\potion.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\pray.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\pri.o : $(CB) $(HACK_H) $(INCL)\epri.h $(INCL)\termcap.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\priest.o : $(CB) $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h $(INCL)\epri.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\prisym.o : $(CB) $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\random.o : $(CB) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\read.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\restore.o : $(CB) $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\rip.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\rnd.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\rumors.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\save.o : $(CB) $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\search.o : $(CB) $(HACK_H) $(INCL)\artifact.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\shk.o : $(CB) $(HACK_H) $(INCL)\eshk.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\shknam.o : $(CB) $(HACK_H) $(INCL)\eshk.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\sit.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\sounds.o : $(CB) $(HACK_H) $(INCL)\edog.h $(INCL)\eshk.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\sp_lev.o : $(CB) $(HACK_H) $(INCL)\sp_lev.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\spell.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\steal.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\termcap.o : $(CB) $(HACK_H) $(INCL)\termcap.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\timeout.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\topl.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\topten.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\track.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\trap.o : $(CB) $(HACK_H) $(INCL)\edog.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\u_init.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\uhitm.o : $(CB) $(HACK_H) $(INCL)\artifact.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\vault.o : $(CB) $(HACK_H) $(INCL)\vault.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\version.o : $(CB) $(HACK_H) $(INCL)\date.h $(INCL)\patchlev.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\weapon.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\were.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\wield.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\wizard.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\worm.o : $(CB) $(HACK_H) $(INCL)\wseg.h $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\worn.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\write.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB) $(OBJ)\zap.o : $(CB) $(HACK_H) $(CC) $(CFLAGS) /Fo$@ $(AB)