NHDT->ANH, nethack->anethack, nhdat->anhdat
[aNetHack.git] / sys / os2 / Makefile.os2
blob4613e8611550dfc0a72780d7e3601b99a5bde84e
1 # aNetHack 0.0.1        Makefile.os2    $ANH-Date: 1432512793 2015/05/25 00:13:13 $  $ANH-Branch: master $:$ANH-Revision: 1.19 $
2 #       OS/2 aNetHack 0.0.1 Makefile for OS/2 versions 1.x and 2.x
3 #       Copyright (C) 1990, 1991, 1992, 1993, 1996 Timo Hakulinen
5 #       Several compilers exist for OS/2 but, currently only GCC emx is tested
6 #       and used for releases.  make programs other than dmake are not tested.
8 #       Supported compilers: GCC emx 0.9g
10 #       DMAKE is required.  Credit for the makefile improvements goes to Pekka Rousu.
12 #       Copy this file into $(SRC) directory, rename it to "makefile"
13 #       (important, many targets rely on it), compile and link inside
14 #       $(SRC).  If required, termcap library can be built from termcap
15 #       sources using makefile.lib in "sys\share" directory.
17 #       "GCC" refers to GCC emx only.  No other ports of GCC are supported.
18 #       Additional credits for honing GCC support for 3.2 go to Ronald
19 #       Van Iwaarden (ron@vaniwaarden.org) and Stefan Neis (neis@cs.uni-sb.de).
21 #       "OMF" is short for "Object Module Format" and refers to the
22 #       standard OS/2 object format, which e.g. link386 uses.  MSC and
23 #       CSet/2 always produce OMF object files, and GCC can be instructed
24 #       to produce them with proper switches (see below).
26 #       "a.out" refers to Unix object file format, which is used by GCC
27 #       in its default compilation mode.  These object files must be
28 #       linked using GCC's own linker to produce a proper OS/2 executable.
29 #       GDB debugger shipped with GCC can only be used with a.out object
30 #       format.
32 #       Note that the default setup in this makefile is my personal setup,
33 #       which you will have to adapt to your configuration.
37 #       Compiler and linker selection.
40 #format        = omf
41 format = a.out
43 .IF $(format) == a.out
44 with_x11 = yes
45 #debug = yes
46 .END
49 CC      = gcc           # GCC
51 .IF $(format) == a.out
52 LINK    = gcc
53 #LINK  = link386       # GCC OMF, CSet/2
54 .ELSE
55 LINK   = link386       # GCC OMF, CSet/2
56 LFLAGS = /noig /stack:40000
57 .END
59 .IF $(with_x11) == yes
60 WINX11OBJ01 = $(OBJ)/Window.o
61 WINX11OBJ02 = $(OBJ)/dialogs.o
62 WINX11OBJ03 = $(OBJ)/winX.o
63 WINX11OBJ04 = $(OBJ)/winmap.o
64 WINX11OBJ05 = $(OBJ)/winmenu.o
65 WINX11OBJ06 = $(OBJ)/winmesg.o
66 WINX11OBJ07 = $(OBJ)/winmisc.o
67 WINX11OBJ08 = $(OBJ)/winstat.o
68 WINX11OBJ09 = $(OBJ)/wintext.o
69 WINX11OBJ10 = $(OBJ)/winval.o
70 WINX11OBJ11 = $(OBJ)/tile.o
71 X11ROOT = e:/xfree86
72 WINX11CFLAGS = -DUSE_XPM -DX11_GRAPHICS \
73             -I$(X11ROOT)/include -Zmtd
74 WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11 -lXpm -L$(X11ROOT)/lib -lc_app
75 WINX11SRC = ../win/X11/Window.c ../win/X11/dialogs.c ../win/X11/winX.c \
76        ../win/X11/winmap.c  ../win/X11/winmenu.c ../win/X11/winmesg.c \
77        ../win/X11/winmisc.c ../win/X11/winstat.c ../win/X11/wintext.c \
78        ../win/X11/winval.c tile.c
79 WINX11OBJ = $(WINX11OBJ01) $(WINX11OBJ02) $(WINX11OBJ03) $(WINX11OBJ04) \
80        $(WINX11OBJ05) $(WINX11OBJ06) $(WINX11OBJ07) $(WINX11OBJ08) \
81        $(WINX11OBJ09) $(WINX11OBJ10) $(WINX11OBJ11)
82 WINX11VARDAT=x11tiles pet_mark.xbm rip.xpm
83 X11ECHO        = $(CMD) @echo
84 .END
89 MAKEB   = dmake
90 CMD     = cmd /C
91 AB      = $(@:B).c
92 CB      = $$(@:B).c
93 BEG     = $(CMD) "
94 END     = "
95 SEP     = &
96 P       = %
99 #       Most makes execute actions automatically inside a subshell,
100 #       which makes even the shell internals work ok.
103 ECHO    = $(CMD) @echo
104 RM      = $(CMD) del
105 CP      = $(CMD) copy
106 CAT     = $(CMD) type
109 #       For those of us who have these on PC.
112 #YACC   = yacc
113 #LEX    = lex
114 YACC    = bison -y
115 LEX     = flex
118 #       For extracting aNetHack icon.
121 UUDECODE = uudecode
124 #       For people with TeX and LaTeX.
127 LATEX   = latex
130 #       If you have TOUCH, some things become slightly easier.
133 TOUCH   = touch
136 #       Standard file naming for LEX and YACC output may vary in PC
137 #       installations.  These three are probably the most generally used
138 #       names.
141 YTABC   = y_tab.c
142 YTABH   = y_tab.h
143 LEXYYC  = lexyy.c
146 #       Source tree base directory.
149 NHSRC   = \anethack
152 #       Source directories.  Makedefs hardcodes these, don't change them.
155 INCL    = $(NHSRC)\include      # aNetHack include files
156 DAT     = $(NHSRC)\dat          # aNetHack data files
157 DOC     = $(NHSRC)\doc          # aNetHack documentation files
158 UTIL    = $(NHSRC)\util         # Utility source
159 SRC     = $(NHSRC)\src          # Main source
160 WIN     = $(NHSRC)\win\tty      # Window system specific source
161 WINX11  = $(NHSRC)\win\x11      # Window system specific source
162 SYS     = $(NHSRC)\sys\os2      # System specific source
163 SSYS    = $(NHSRC)\sys\share    # Shared system files
164 WINSHARE= $(NHSRC)\win\share    # Shared system files
167 #       Modifiable directories.  Set these according to your setup and
168 #       preferences.  They must all be present prior to compilation.
169 #       OBJ, TEMP and GAMEDIR should all preferably be separate and,
170 #       in particular, not the same as any of the source directories.
171 #       Note that DMAKE may dislike drive designators in paths because
172 #       it misinterprets the colon as being part of a make rule.  In that
173 #       case, all directories have to reside on the same drive.
176 OBJ     = \tmp\obj              # Object files
177 TEMP    = \tmp\bin              # Temporary files during make process
178 GAMEDIR = \games\nh350x11       # Game directory
179 PLIBP   = c:\emx\lib            # Protected mode C libraries
180 RLIBP   = c:\emx\lib            # Possible real mode C libraries
183 #       The game name and description.
186 GAME    = anethack
187 GAMEDES = "aNetHack 0.0.1.0"
190 #       The uppermost two lines for MSC, the middle two for GCC, and
191 #       the lowermost two for CSet/2.
193 #       GCC: compile only, compiler id, object format selection, warnings,
194 #       include file path, debug flags, ANSI conformance.
197 CFLAGS  = -c $(GCCO) $(WARN) -I$(INCL) $(CDFLAGS) $(STDC) $(WINX11CFLAGS)
198 #OPT    = -s -O -o
199 OPT     = -o
202 #       Compiler warning levels.  These are really for development, so
203 #       they are commented out in general distribution to save the user
204 #       from masses of benign warnings.  If any problems arise, however,
205 #       they may help in finding the trouble.
207 #       GCC: max. reasonable GCC warning levels.  Can't use -Wall, because then
208 #       it would whine about all the zillions of unused declarations etc.
209 #       Even with these switches you'll get a lot of warnings, but they should
210 #       all be benign.
213 WARN    = #-W -Wimplicit -Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -DGCC_WARN # GCC
216 #       GCC object format selection.  The upper line for standard OS/2 OMF
217 #       object format, the lower for Unix style a.out format.
220 .IF $(format) == omf
221 GCCO   = -Zomf -Zsys
222 .ELSE
223 GCCO   =
224 .END
227 #       MSC 5.1 needs the large model first pass of the compiler.
228 #       Not needed for later versions.
231 BIGC    =
234 #       Unset CL to avoid troubles with conflicting switches in MSC 6.0.
237 CL      =
240 #       Prepare for a debugger.
243 .IF $(debug) == yes
244 CDFLAGS =
245 LDFLAGS =
246 .ELSE
247 CDFLAGS = -O -s
248 LDFLAGS = -s
249 .END
252 #       How to produce the most ANSI-like environment.
255 STDC    = -ansi         # GCC
258 #       Possible system object files required during linking.
261 .IF $(format) == omf
262 SYSOBJ = $(PLIBP)\crt0.obj     $(PLIBP)\end.lib# GCC OMF
263 .ELSE
264 SYSOBJ  =                       # MSC, GCC a.out, CSet/2
265 .END
268 #       Compiler library selection.  Change if necessary.
270 #       GCC emx 0.9 OMF: C single-threaded libs, Unix system call alias lib,
271 #       extra GCC lib, single threaded system lib, OS/2 API entry points.
272 #       Note that emx changed library naming convention between 0.8 and 0.9.
274 #       GCC a.out: extra GCC lib, C standard lib, extra GCC lib (again),
275 #       OS/2 API entry points.
278 .IF $(format) == omf
279 PLIBS  = $(PLIBP)\st\c $(PLIBP)\st\c_app $(PLIBP)\c_alias $(PLIBP)\gcc $(PLIBP)\st\sys $(PLIBP)\os2    # GCC emx 0.9 OMF
280 .ELSE
281 PLIBS  = -lgcc -lc -lgcc -los2 $(X11LIBS)      # GCC a.out
282 .END
285 #       C libraries used by makedefs, lev_comp and dgn_comp (change if
286 #       necessary).  If compilation is done in DOS, enable the upper line
287 #       possibly setting the library name to something else, if in OS/2,
288 #       enable the lower line (protected mode libraries).
291 #RLIBS  = $(RLIBP)\llibcer
292 RLIBS   = $(PLIBS)
294 SRCCC   = $(CC) $(CFLAGS) $(OPT) $@ $(AB)
295 UTILCC  = $(BEG) cd $(UTIL) $(SEP) $(CC) $(CFLAGS) $(OPT) $@ $(AB) $(END)
296 SYSCC   = $(BEG) cd $(SYS) $(SEP) $(CC) $(CFLAGS) $(OPT) $@ $(AB) $(END)
297 SSYSCC  = $(BEG) cd $(SSYS) $(SEP) $(CC) $(CFLAGS) $(OPT) $@ $(AB) $(END)
298 PSYSCC  = $(BEG) cd $(SSYS) $(SEP) $(CC) $(CFLAGS) $(OPT) $@ pc$(AB) $(END)
299 WINCC   = $(BEG) cd $(WIN) $(SEP) $(CC) $(CFLAGS) $(OPT) $@ $(AB) $(END)
302 #       Default linker skeletons.  The upper six lines for everything
303 #       that uses standard OS/2 object format (GCC OMF),  The lower six
304 #       for GCC a.out format.
307 .IF $(format) == omf
308 GAMELN = $(LINK) @$(TEMP)\$(GAME).rsp
309 MKDFLN = $(LINK) @$(TEMP)\makedefs.rsp
310 LEVCLN = $(LINK) @$(TEMP)\lev_comp.rsp
311 DGNCLN = $(LINK) @$(TEMP)\dgn_comp.rsp
312 RCVRLN = $(LINK) @$(TEMP)\recover.rsp
313 DLBRLN = $(LINK) @$(TEMP)\dlb.rsp
314 .ELSE
315 GAMELN = $(CC) $(LDFLAGS) -o $(GAMEDIR)\$(GAME).exe @$(TEMP)\$(GAME).r $(PLIBS) $(WINX11CFLAGS) $(WINX11LIB)
316 MKDFLN  = $(CC) $(LDFLAGS) -o $(TEMP)\makedefs.exe $(TEMP)\$(MKDFDEF) $(SYSOBJ) $(MAKEOBJS) $(PLIBS)
317 LEVCLN  = $(CC) $(LDFLAGS) -o $(TEMP)\lev_comp.exe $(TEMP)\$(LEVCDEF) $(SYSOBJ) $(SPLEVOBJS) $(PLIBS)
318 DGNCLN  = $(CC) $(LDFLAGS) -o $(TEMP)\dgn_comp.exe $(TEMP)\$(DGNCDEF) $(SYSOBJ) $(DGNCOMPOBJS) $(PLIBS)
319 RCVRLN  = $(CC) $(LDFLAGS) -o $(GAMEDIR)\recover.exe $(TEMP)\$(RCVRDEF) $(SYSOBJ) $(RECOVOBJS) $(PLIBS)
320  DLBRLN = $(CC) $(LDFLAGS) -o $(TEMP)\dlb.exe $(TEMP)\$(DLBDEF) $(SYSOBJ) $(DLBOBJS) $(PLIBS)
321 .END
324 #       OS/2 module definition files for aNetHack,
325 #       makedefs, dgn_comp, lev_comp, recover, dlb.
328 GAMEDEF = $(GAME).def
329 MKDFDEF = makedefs.def
330 LEVCDEF = lev_comp.def
331 DGNCDEF = dgn_comp.def
332 RCVRDEF = recover.def
333 DLBDEF  = dlb.def
336 #       For compilation in DOS, enable the lower three lines and
337 #       disable the upper three.
340 MKDFMD  = $(TEMP)\$(MKDFDEF)
341 LEVCMD  = $(TEMP)\$(LEVCDEF)
342 DGNCMD  = $(TEMP)\$(DGNCDEF)
343 #MKDFMD =
344 #LEVCMD =
345 #DGNCMD =
348 #       Optional high-quality BSD random number generation routines
349 #       (see os2conf.h).  Set to nothing if not used.
352 RANDOM  = $(OBJ)\random.o
353 #RANDOM =
356 #       If TERMLIB is defined in os2conf.h, comment out the upper line and
357 #       uncomment the lower.  If the termcap-library doesn't exist, use
358 #       sys\share\makefile.lib to build it.
361 TERMLIB =
362 #TERMLIB = termlib.lib
365 #       Short / long file name selection for FAT and HPFS.
366 #       Only three files need consideration.
369 #GUIDEBOO = Guideboo    # FAT
370 #PATCHLEV = patchlev    # - " -
371 #DATABASE = data.bas    # - " -
372 GUIDEBOO = Guidebook    # HPFS
373 PATCHLEV = patchlevel   # - " -
374 DATABASE = data.base    # - " -
378 #       If you have LaTeX and want to create the aNetHack Guidebook in TeX
379 #       device-independent file format, comment out the upper line and
380 #       uncomment the lower.
383 GUIDE   =
384 #GUIDE  = $(TEMP)\$(GUIDEBOO).dvi
387 #       Set WINOBJ lines corresponding to your desired combination
388 #       of windowing systems.  Also set windowing systems in config.h.
390 #       A straight tty port using no native windowing system is the
391 #       only choice for now.
394 WINOBJ1 = $(OBJ)\getline.o
395 WINOBJ2 = $(OBJ)\termcap.o
396 WINOBJ3 = $(OBJ)\topl.o
397 WINOBJ4 = $(OBJ)\wintty.o
398 WINOBJ = $(WINOBJ1) $(WINOBJ2) $(WINOBJ3) $(WINOBJ4) $(WINX11OBJ)
401 #       The default make target, so just typing 'make' is useful.
402 #       Has to be the first target in the makefile.
405 default : all
408 #       If you have yacc and lex programs and make any changes, uncomment
409 #       the lowermost two lines and comment out the others.  If you make
410 #       changes to the .y and .l files but prefer processing the files
411 #       separately elsewhere, activate the middle two lines, so your changes
412 #       don't get overwritten.
415 do_yacc : yacc_cpy      # use pre-generated files
416 do_lex :  lex_cpy       #       - " -
417 #do_yacc : yacc_msg     # show message if changed
418 #do_lex :  lex_msg      #       - " -
419 #do_yacc : yacc_act     # re-process files
420 #do_lex :  lex_act      #       - " -
423 #       If you have the TOUCH utility the upper line is ok.  Otherwise
424 #       the lower one does the same albeit in an ugly manner.  Besides,
425 #       the latter method only works for text files.
428 #do_touch : realtouch
429 do_touch : faketouch
432 #       If you don't have uudecode program, use the upper line.
433 #       If you still want the icon, you'll have to extract the
434 #       file manually somewhere else.
437 do_icon : icon_msg      # show message if changed
438 #do_icon : icon_act     # extract icon file
441 #       If you don't want to generate anethack.cmd, use the upper line.
442 #       This could be the case, e.g., if you use a different shell than
443 #       the standard cmd.exe.
446 #do_cmd : cmd_msg       # show message
447 do_cmd : cmd_act        # generate anethack.cmd
450 #       If you want to try the data librarian scheme to reduce
451 #       the amount of data files in the aNetHack home directory, comment
452 #       out the lower line and uncomment the upper.  Also, make sure
453 #       that DLB is defined in config.h.
456 do_dlb : dlb_yup
457 #do_dlb : dlb_nope
459 ######################################################################
461 #       Nothing below this line should have to be changed.
463 #       Other things that have to be reconfigured are in
464 #       config.h, os2conf.h and possibly system.h.
468 #       The game filename.
471 GAMEFILE = $(GAMEDIR)\$(GAME).exe
474 #       Object files for makedefs.
477 MAKEOBJS = $(OBJ)\makedefs.o $(OBJ)\monst.o $(OBJ)\objects.o
480 #       Object files for special levels compiler.
483 SOBJ01  = $(OBJ)\lev_yacc.o $(OBJ)\lev_lex.o $(OBJ)\lev_main.o $(OBJ)\alloc.o
484 SOBJ02  = $(OBJ)\monst.o $(OBJ)\objects.o $(OBJ)\panic.o $(OBJ)\decl.o
485 SOBJ03  = $(OBJ)\drawing.o
487 SPLEVOBJS = $(SOBJ01) $(SOBJ02) $(SOBJ03)
490 #       Object files for dungeon compiler.
493 DOBJ01  = $(OBJ)\dgn_yacc.o $(OBJ)\dgn_lex.o $(OBJ)\dgn_main.o
494 DOBJ02  = $(OBJ)\panic.o $(OBJ)\alloc.o
496 DGNCOMPOBJS = $(DOBJ01) $(DOBJ02)
499 #       Object files for recovery utility.
502 RECOVOBJS = $(OBJ)\recover.o
505 #       Object files for dlb.
508 DLBOBJS = $(OBJ)\dlb_main.o $(OBJ)\dlb.o $(OBJ)\alloc.o $(OBJ)\panic.o
511 #       Data files for dlb.
514 DATHELP = \
515  help hh cmdhelp history opthelp wizhelp
517 SPEC_LEVS = \
518  asmodeus.lev baalz.lev    bigrm-1.lev \
519  bigrm-2.lev  bigrm-3.lev  bigrm-4.lev castle.lev   fakewiz1.lev fakewiz2.lev \
520  juiblex.lev  knox.lev     medusa-1.lev medusa-2.lev minend-1.lev minend-2.lev \
521  minend-3.lev minefill.lev minetn-1.lev minetn-2.lev minetn-3.lev minetn-4.lev \
522  minetn-5.lev minetn-6.lev minetn-7.lev oracle.lev   orcus.lev    sanctum.lev \
523  tower1.lev   tower2.lev   tower3.lev valley.lev   wizard1.lev  wizard2.lev \
524  wizard3.lev  astral.lev   air.lev earth.lev    fire.lev     water.lev \
525  soko1-1.lev  soko1-2.lev  soko2-1.lev  soko2-2.lev  \
526  soko3-1.lev  soko3-2.lev  soko4-1.lev  soko4-2.lev
528 QUEST_LEVS = \
529  Arc-goal.lev Arc-fila.lev Arc-filb.lev Arc-loca.lev Arc-strt.lev \
530  Bar-goal.lev Bar-fila.lev Bar-filb.lev Bar-loca.lev Bar-strt.lev \
531  Cav-goal.lev Cav-fila.lev Cav-filb.lev Cav-loca.lev Cav-strt.lev \
532  Hea-goal.lev Hea-fila.lev Hea-filb.lev Hea-loca.lev Hea-strt.lev \
533  Kni-goal.lev Kni-fila.lev Kni-filb.lev Kni-loca.lev Kni-strt.lev \
534  Mon-goal.lev Mon-fila.lev Mon-filb.lev Mon-loca.lev Mon-strt.lev \
535  Pri-goal.lev Pri-fila.lev Pri-filb.lev Pri-loca.lev Pri-strt.lev \
536  Ran-goal.lev Ran-fila.lev Ran-filb.lev Ran-loca.lev Ran-strt.lev \
537  Rog-goal.lev Rog-fila.lev Rog-filb.lev Rog-loca.lev Rog-strt.lev \
538  Sam-goal.lev Sam-fila.lev Sam-filb.lev Sam-loca.lev Sam-strt.lev \
539  Tou-goal.lev Tou-fila.lev Tou-filb.lev Tou-loca.lev Tou-strt.lev \
540  Val-goal.lev Val-fila.lev Val-filb.lev Val-loca.lev Val-strt.lev \
541  Wiz-goal.lev Wiz-fila.lev Wiz-filb.lev Wiz-loca.lev Wiz-strt.lev
542 VARDATD = \
543  data oracles options quest.dat rumors $(WINX11VARDAT)
545 DATDLB = $(DATHELP) dungeon $(SPEC_LEVS) $(QUEST_LEVS) $(VARDATD) \
546          $(do_dlb)
549 #       Object files for the game itself.
552 VOBJ011 = $(OBJ)\allmain.o
553 VOBJ012 = $(OBJ)\alloc.o
554 VOBJ013 = $(OBJ)\apply.o
555 VOBJ014 = $(OBJ)\artifact.o
556 VOBJ021 = $(OBJ)\attrib.o 
557 VOBJ022 = $(OBJ)\ball.o
558 VOBJ023 = $(OBJ)\bones.o
559 VOBJ024 = $(OBJ)\botl.o
560 VOBJ031 = $(OBJ)\cmd.o
561 VOBJ032 = $(OBJ)\dbridge.o
562 VOBJ033 = $(OBJ)\decl.o
563 VOBJ034 = $(OBJ)\detect.o
564 VOBJ041 = $(OBJ)\dig.o
565 VOBJ042 = $(OBJ)\display.o
566 VOBJ043 = $(OBJ)\dlb.o
567 VOBJ044 = $(OBJ)\do.o
568 VOBJ051 = $(OBJ)\do_name.o
569 VOBJ052 = $(OBJ)\do_wear.o
570 VOBJ053 = $(OBJ)\dog.o
571 VOBJ054 = $(OBJ)\dogmove.o
572 VOBJ061 = $(OBJ)\dokick.o
573 VOBJ062 = $(OBJ)\dothrow.o
574 VOBJ063 = $(OBJ)\drawing.o
575 VOBJ064 = $(OBJ)\dungeon.o
576 VOBJ071 = $(OBJ)\eat.o
577 VOBJ072 = $(OBJ)\end.o
578 VOBJ073 = $(OBJ)\engrave.o
579 VOBJ074 = $(OBJ)\exper.o
580 VOBJ071 = $(OBJ)\eat.o
581 VOBJ072 = $(OBJ)\end.o
582 VOBJ073 = $(OBJ)\engrave.o
583 VOBJ074 = $(OBJ)\exper.o
584 VOBJ081 = $(OBJ)\explode.o
585 VOBJ082 = $(OBJ)\extralev.o
586 VOBJ083 = $(OBJ)\files.o
587 VOBJ084 = $(OBJ)\fountain.o
588 VOBJ091 = $(OBJ)\hack.o
589 VOBJ092 = $(OBJ)\hacklib.o
590 VOBJ093 = $(OBJ)\invent.o
591 VOBJ094 = $(OBJ)\light.o
592 VOBJ101 = $(OBJ)\lock.o
593 VOBJ102 = $(OBJ)\mail.o
594 VOBJ103 = $(OBJ)\main.o
595 VOBJ104 = $(OBJ)\makemon.o
596 VOBJ111 = $(OBJ)\mapglyph.o
597 VOBJ112 = $(OBJ)\mcastu.o
598 VOBJ113 = $(OBJ)\mhitm.o
599 VOBJ114 = $(OBJ)\mhitu.o
600 VOBJ115 = $(OBJ)\minion.o
601 VOBJ121 = $(OBJ)\mklev.o
602 VOBJ122 = $(OBJ)\mkmap.o
603 VOBJ123 = $(OBJ)\mkmaze.o
604 VOBJ124 = $(OBJ)\mkobj.o
605 VOBJ131 = $(OBJ)\mkroom.o
606 VOBJ132 = $(OBJ)\mon.o
607 VOBJ133 = $(OBJ)\mondata.o
608 VOBJ134 = $(OBJ)\monmove.o
609 VOBJ141 = $(OBJ)\monst.o
610 VOBJ142 = $(OBJ)\monstr.o
611 VOBJ143 = $(OBJ)\mplayer.o
612 VOBJ144 = $(OBJ)\mthrowu.o
613 VOBJ151 = $(OBJ)\muse.o
614 VOBJ152 = $(OBJ)\music.o
615 VOBJ153 = $(OBJ)\o_init.o
616 VOBJ154 = $(OBJ)\objects.o
617 VOBJ161 = $(OBJ)\objnam.o
618 VOBJ162 = $(OBJ)\options.o
619 VOBJ163 = $(OBJ)\os2.o
620 VOBJ164 = $(OBJ)\pager.o
621 VOBJ171 = $(OBJ)\pcsys.o
622 VOBJ172 = $(OBJ)\pickup.o
623 VOBJ173 = $(OBJ)\pline.o
624 VOBJ174 = $(OBJ)\polyself.o
625 VOBJ181 = $(OBJ)\potion.o
626 VOBJ182 = $(OBJ)\pray.o
627 VOBJ183 = $(OBJ)\priest.o
628 VOBJ184 = $(OBJ)\quest.o
629 VOBJ191 = $(OBJ)\questpgr.o
630 VOBJ192 = $(OBJ)\read.o
631 VOBJ193 = $(OBJ)\rect.o
632 VOBJ194 = $(OBJ)\region.o
633 VOBJ195 = $(OBJ)\restore.o
634 VOBJ201 = $(OBJ)\rip.o
635 VOBJ202 = $(OBJ)\rnd.o
636 VOBJ203 = $(OBJ)\rumors.o
637 VOBJ204 = $(OBJ)\save.o
638 VOBJ211 = $(OBJ)\shk.o
639 VOBJ212 = $(OBJ)\shknam.o
640 VOBJ213 = $(OBJ)\sit.o
641 VOBJ214 = $(OBJ)\sounds.o
642 VOBJ221 = $(OBJ)\sp_lev.o
643 VOBJ222 = $(OBJ)\spell.o
644 VOBJ223 = $(OBJ)\steal.o
645 VOBJ224 = $(OBJ)\teleport.o
646 VOBJ231 = $(OBJ)\timeout.o
647 VOBJ232 = $(OBJ)\topten.o
648 VOBJ233 = $(OBJ)\track.o
649 VOBJ234 = $(OBJ)\trap.o
650 VOBJ241 = $(OBJ)\tty.o
651 VOBJ242 = $(OBJ)\u_init.o
652 VOBJ243 = $(OBJ)\uhitm.o
653 VOBJ244 = $(OBJ)\unix.o
654 VOBJ251 = $(OBJ)\vault.o
655 VOBJ252 = $(OBJ)\vision.o
656 VOBJ253 = $(OBJ)\vis_tab.o
657 VOBJ254 = $(OBJ)\weapon.o
658 VOBJ261 = $(OBJ)\were.o
659 VOBJ262 = $(OBJ)\wield.o
660 VOBJ263 = $(OBJ)\windows.o
661 VOBJ264 = $(OBJ)\wizard.o
662 VOBJ271 = $(OBJ)\worm.o
663 VOBJ272 = $(OBJ)\worn.o
664 VOBJ273 = $(OBJ)\write.o
665 VOBJ274 = $(OBJ)\zap.o
666 VOBJ281 = $(OBJ)\role.o
667 VOBJ282 = $(OBJ)\steed.o
668 VOBJ283 = $(OBJ)\sys.o
670 VOBJ01 = $(VOBJ011) $(VOBJ012) $(VOBJ013) $(VOBJ014)
671 VOBJ02 = $(VOBJ021) $(VOBJ022) $(VOBJ023) $(VOBJ024)
672 VOBJ03 = $(VOBJ031) $(VOBJ032) $(VOBJ033) $(VOBJ034)
673 VOBJ04 = $(VOBJ041) $(VOBJ042) $(VOBJ043) $(VOBJ044)
674 VOBJ05 = $(VOBJ051) $(VOBJ052) $(VOBJ053) $(VOBJ054)
675 VOBJ06 = $(VOBJ061) $(VOBJ062) $(VOBJ063) $(VOBJ064)
676 VOBJ07 = $(VOBJ071) $(VOBJ072) $(VOBJ073) $(VOBJ074)
677 VOBJ08 = $(VOBJ081) $(VOBJ082) $(VOBJ083) $(VOBJ084)
678 VOBJ09 = $(VOBJ091) $(VOBJ092) $(VOBJ093) $(VOBJ094)
679 VOBJ10 = $(VOBJ101) $(VOBJ102) $(VOBJ103) $(VOBJ104)
680 VOBJ11 = $(VOBJ111) $(VOBJ112) $(VOBJ113) $(VOBJ114) $(VOBJ115)
681 VOBJ12 = $(VOBJ121) $(VOBJ122) $(VOBJ123) $(VOBJ124)
682 VOBJ13 = $(VOBJ131) $(VOBJ132) $(VOBJ133) $(VOBJ134)
683 VOBJ14 = $(VOBJ141) $(VOBJ142) $(VOBJ143) $(VOBJ144)
684 VOBJ15 = $(VOBJ151) $(VOBJ152) $(VOBJ153) $(VOBJ154)
685 VOBJ16 = $(VOBJ161) $(VOBJ162) $(VOBJ163) $(VOBJ164)
686 VOBJ17 = $(VOBJ171) $(VOBJ172) $(VOBJ173) $(VOBJ174)
687 VOBJ18 = $(VOBJ181) $(VOBJ182) $(VOBJ183) $(VOBJ184)
688 VOBJ19 = $(VOBJ191) $(VOBJ192) $(VOBJ193) $(VOBJ194) $(VOBJ195)
689 VOBJ20 = $(VOBJ201) $(VOBJ202) $(VOBJ203) $(VOBJ204)
690 VOBJ21 = $(VOBJ211) $(VOBJ212) $(VOBJ213) $(VOBJ214)
691 VOBJ22 = $(VOBJ221) $(VOBJ222) $(VOBJ223) $(VOBJ224)
692 VOBJ23 = $(VOBJ231) $(VOBJ232) $(VOBJ233) $(VOBJ234)
693 VOBJ24 = $(VOBJ241) $(VOBJ242) $(VOBJ243) $(VOBJ244)
694 VOBJ25 = $(VOBJ251) $(VOBJ252) $(VOBJ253) $(VOBJ254)
695 VOBJ26 = $(VOBJ261) $(VOBJ262) $(VOBJ263) $(VOBJ264)
696 VOBJ27 = $(VOBJ271) $(VOBJ272) $(VOBJ273) $(VOBJ274)
697 VOBJ28 = $(VOBJ281) $(VOBJ282) $(VOBJ283)
698 VOBJ29 = $(WINOBJ) $(RANDOM)
699 HHOBJ  = $(OBJ)\version.o
701 VOBJ =   $(VOBJ01)  $(VOBJ02)  $(VOBJ03)  $(VOBJ04)  $(VOBJ05)  $(VOBJ06)  $(VOBJ07) \
702          $(VOBJ08)  $(VOBJ09)  $(VOBJ10)  $(VOBJ11)  $(VOBJ12)  $(VOBJ13)  $(VOBJ14) \
703          $(VOBJ15)  $(VOBJ16)  $(VOBJ17)  $(VOBJ18)  $(VOBJ19)  $(VOBJ20)  $(VOBJ21) \
704          $(VOBJ22)  $(VOBJ23)  $(VOBJ24)  $(VOBJ25)  $(VOBJ26)  $(VOBJ27)  $(VOBJ28) \
705          $(VOBJ29)
706 HOBJ =   $(VOBJ)  $(HHOBJ)
708 EXTERN_H   = # $(INCL)\extern.h
709 OS2CONF_H  = $(INCL)\os2conf.h $(INCL)\micro.h $(INCL)\system.h $(EXTERN_H)
710 GLOBAL_H   = $(INCL)\global.h $(INCL)\coord.h $(OS2CONF_H)
711 CONFIG_H   = $(INCL)\config.h $(INCL)\config1.h $(INCL)\tradstdc.h $(GLOBAL_H)
712 TRAP_H     = $(INCL)\trap.h
713 PERMONST_H = $(INCL)\permonst.h $(INCL)\monattk.h $(INCL)\monflag.h
714 YOU_H      = $(INCL)\you.h $(INCL)\attrib.h $(PERMONST_H) $(INCL)\mondata.h \
715              $(INCL)\monst.h $(INCL)\mextra.h $(INCL)\youprop.h \
716              $(INCL)\prop.h $(INCL)\pm.h
717 DECL_H     = $(INCL)\decl.h $(INCL)\spell.h $(INCL)\obj.h $(YOU_H) \
718              $(INCL)\onames.h $(INCL)\color.h
719 HACK_H     = $(CONFIG_H) $(INCL)\context.h $(DECL_H) $(INCL)\monsym.h $(INCL)\mkroom.h \
720              $(INCL)\objclass.h $(TRAP_H) $(INCL)\engrave.h $(INCL)\flag.h \
721              $(INCL)\rm.h $(INCL)\dungeon.h $(INCL)\hack.h $(INCL)\display.h \
722              $(INCL)\vision.h $(INCL)\wintty.h $(INCL)\wintype.h $(INCL)\align.h \
723              $(INCL)\winprocs.h $(INCL)\sys.h
726 #       The default target.
729 all :   makedefs dgn_comp lev_comp recover $(GAME) dat $(GUIDE)
730         $(ECHO) Done.
733 #       Definition file creation.
736 $(TEMP)\$(GAMEDEF) :
737         $(MAKEB) DD_NAME=$(GAME) DD_DESC=$(GAMEDES) DD_TARG=$@ do_def
738 $(TEMP)\$(MKDFDEF) :
739         $(MAKEB) DD_NAME=makedefs DD_DESC="Definitions compiler" DD_TARG=$@ do_def
740 $(TEMP)\$(DGNCDEF) :
741         $(MAKEB) DD_NAME=dgn_comp DD_DESC="Dungeon compiler" DD_TARG=$@ do_def
742 $(TEMP)\$(LEVCDEF) :
743         $(MAKEB) DD_NAME=lev_comp DD_DESC="Level compiler" DD_TARG=$@ do_def
744 $(TEMP)\$(RCVRDEF) :
745         $(MAKEB) DD_NAME=recover DD_DESC="Recovery utility" DD_TARG=$@ do_def
746 $(TEMP)\$(DLBDEF) :
747         $(MAKEB) DD_NAME=dlb DD_DESC="Archive utility" DD_TARG=$@ do_def
749 do_def :
750         $(ECHO) NAME $(DD_NAME) WINDOWCOMPAT> $(DD_TARG)
751         $(ECHO) DESCRIPTION '$(DD_DESC)'>> $(DD_TARG)
752         $(ECHO) PROTMODE>> $(DD_TARG)
753         $(ECHO) EXETYPE OS2>> $(DD_TARG)
756 #       The main target.
759 $(GAME) : $(GAMEDIR)\$(GAME).exe
760 $(GAME).exe : $(GAMEDIR)\$(GAME).exe
761 $(GAMEDIR)\$(GAME).exe : $(TEMP)\$(GAME).rsp $(TEMP)\$(GAME).r
762         $(GAMELN)
764 $(TEMP)\$(GAME).r : $(HOBJ) $(TEMP)\$(GAMEDEF)
765         $(ECHO) $(VOBJ011) > $@
766         $(ECHO) $(VOBJ012) >> $@
767         $(ECHO) $(VOBJ013) >> $@
768         $(ECHO) $(VOBJ014) >> $@
769         $(ECHO) $(VOBJ021) >> $@
770         $(ECHO) $(VOBJ022) >> $@
771         $(ECHO) $(VOBJ023) >> $@
772         $(ECHO) $(VOBJ024) >> $@
773         $(ECHO) $(VOBJ031) >> $@
774         $(ECHO) $(VOBJ032) >> $@
775         $(ECHO) $(VOBJ033) >> $@
776         $(ECHO) $(VOBJ034) >> $@
777         $(ECHO) $(VOBJ041) >> $@
778         $(ECHO) $(VOBJ042) >> $@
779         $(ECHO) $(VOBJ043) >> $@
780         $(ECHO) $(VOBJ044) >> $@
781         $(ECHO) $(VOBJ051) >> $@
782         $(ECHO) $(VOBJ052) >> $@
783         $(ECHO) $(VOBJ053) >> $@
784         $(ECHO) $(VOBJ054) >> $@
785         $(ECHO) $(VOBJ061) >> $@
786         $(ECHO) $(VOBJ062) >> $@
787         $(ECHO) $(VOBJ063) >> $@
788         $(ECHO) $(VOBJ064) >> $@
789         $(ECHO) $(VOBJ071) >> $@
790         $(ECHO) $(VOBJ072) >> $@
791         $(ECHO) $(VOBJ073) >> $@
792         $(ECHO) $(VOBJ074) >> $@
793         $(ECHO) $(VOBJ081) >> $@
794         $(ECHO) $(VOBJ082) >> $@
795         $(ECHO) $(VOBJ083) >> $@
796         $(ECHO) $(VOBJ084) >> $@
797         $(ECHO) $(VOBJ091) >> $@
798         $(ECHO) $(VOBJ092) >> $@
799         $(ECHO) $(VOBJ093) >> $@
800         $(ECHO) $(VOBJ094) >> $@
801         $(ECHO) $(VOBJ101) >> $@
802         $(ECHO) $(VOBJ102) >> $@
803         $(ECHO) $(VOBJ103) >> $@
804         $(ECHO) $(VOBJ104) >> $@
805         $(ECHO) $(VOBJ111) >> $@
806         $(ECHO) $(VOBJ112) >> $@
807         $(ECHO) $(VOBJ113) >> $@
808         $(ECHO) $(VOBJ114) >> $@
809         $(ECHO) $(VOBJ115) >> $@
810         $(ECHO) $(VOBJ121) >> $@
811         $(ECHO) $(VOBJ122) >> $@
812         $(ECHO) $(VOBJ123) >> $@
813         $(ECHO) $(VOBJ124) >> $@
814         $(ECHO) $(VOBJ131) >> $@
815         $(ECHO) $(VOBJ132) >> $@
816         $(ECHO) $(VOBJ133) >> $@
817         $(ECHO) $(VOBJ134) >> $@
818         $(ECHO) $(VOBJ141) >> $@
819         $(ECHO) $(VOBJ142) >> $@
820         $(ECHO) $(VOBJ143) >> $@
821         $(ECHO) $(VOBJ144) >> $@
822         $(ECHO) $(VOBJ151) >> $@
823         $(ECHO) $(VOBJ152) >> $@
824         $(ECHO) $(VOBJ153) >> $@
825         $(ECHO) $(VOBJ154) >> $@
826         $(ECHO) $(VOBJ161) >> $@
827         $(ECHO) $(VOBJ162) >> $@
828         $(ECHO) $(VOBJ163) >> $@
829         $(ECHO) $(VOBJ164) >> $@
830         $(ECHO) $(VOBJ171) >> $@
831         $(ECHO) $(VOBJ172) >> $@
832         $(ECHO) $(VOBJ173) >> $@
833         $(ECHO) $(VOBJ174) >> $@
834         $(ECHO) $(VOBJ181) >> $@
835         $(ECHO) $(VOBJ182) >> $@
836         $(ECHO) $(VOBJ183) >> $@
837         $(ECHO) $(VOBJ184) >> $@
838         $(ECHO) $(VOBJ191) >> $@
839         $(ECHO) $(VOBJ192) >> $@
840         $(ECHO) $(VOBJ193) >> $@
841         $(ECHO) $(VOBJ194) >> $@
842         $(ECHO) $(VOBJ195) >> $@
843         $(ECHO) $(VOBJ201) >> $@
844         $(ECHO) $(VOBJ202) >> $@
845         $(ECHO) $(VOBJ203) >> $@
846         $(ECHO) $(VOBJ204) >> $@
847         $(ECHO) $(VOBJ211) >> $@
848         $(ECHO) $(VOBJ212) >> $@
849         $(ECHO) $(VOBJ213) >> $@
850         $(ECHO) $(VOBJ214) >> $@
851         $(ECHO) $(VOBJ221) >> $@
852         $(ECHO) $(VOBJ222) >> $@
853         $(ECHO) $(VOBJ223) >> $@
854         $(ECHO) $(VOBJ224) >> $@
855         $(ECHO) $(VOBJ231) >> $@
856         $(ECHO) $(VOBJ232) >> $@
857         $(ECHO) $(VOBJ233) >> $@
858         $(ECHO) $(VOBJ234) >> $@
859         $(ECHO) $(VOBJ241) >> $@
860         $(ECHO) $(VOBJ242) >> $@
861         $(ECHO) $(VOBJ243) >> $@
862         $(ECHO) $(VOBJ244) >> $@
863         $(ECHO) $(VOBJ251) >> $@
864         $(ECHO) $(VOBJ252) >> $@
865         $(ECHO) $(VOBJ253) >> $@
866         $(ECHO) $(VOBJ254) >> $@
867         $(ECHO) $(VOBJ261) >> $@
868         $(ECHO) $(VOBJ262) >> $@
869         $(ECHO) $(VOBJ263) >> $@
870         $(ECHO) $(VOBJ264) >> $@
871         $(ECHO) $(VOBJ271) >> $@
872         $(ECHO) $(VOBJ272) >> $@
873         $(ECHO) $(VOBJ273) >> $@
874         $(ECHO) $(VOBJ274) >> $@
875         $(ECHO) $(VOBJ281) >> $@
876         $(ECHO) $(VOBJ282) >> $@
877         $(ECHO) $(VOBJ283) >> $@
878         $(ECHO) $(WINOBJ1) >> $@
879         $(ECHO) $(WINOBJ2) >> $@
880         $(ECHO) $(WINOBJ3) >> $@
881         $(ECHO) $(WINOBJ4) >> $@
882         $(ECHO) $(HHOBJ) >> $@
883         $(ECHO) $(RANDOM) >> $@
884 .IF $(with_x11) == yes
885         $(X11ECHO) $(WINX11OBJ01) >> $@
886         $(X11ECHO) $(WINX11OBJ02) >> $@
887         $(X11ECHO) $(WINX11OBJ03) >> $@
888         $(X11ECHO) $(WINX11OBJ04) >> $@
889         $(X11ECHO) $(WINX11OBJ05) >> $@
890         $(X11ECHO) $(WINX11OBJ06) >> $@
891         $(X11ECHO) $(WINX11OBJ07) >> $@
892         $(X11ECHO) $(WINX11OBJ08) >> $@
893         $(X11ECHO) $(WINX11OBJ09) >> $@
894         $(X11ECHO) $(WINX11OBJ10) >> $@
895         $(X11ECHO) $(WINX11OBJ11) >> $@
896 .END
900 $(TEMP)\$(GAME).rsp : $(HOBJ) $(TEMP)\$(GAMEDEF)
901         $(ECHO) $(SYSOBJ) $(VOBJ01) +> $@
902         $(ECHO) $(VOBJ02) +>> $@
903         $(ECHO) $(VOBJ03) +>> $@
904         $(ECHO) $(VOBJ04) +>> $@
905         $(ECHO) $(VOBJ05) +>> $@
906         $(ECHO) $(VOBJ06) +>> $@
907         $(ECHO) $(VOBJ07) +>> $@
908         $(ECHO) $(VOBJ08) +>> $@
909         $(ECHO) $(VOBJ09) +>> $@
910         $(ECHO) $(VOBJ10) +>> $@
911         $(ECHO) $(VOBJ11) +>> $@
912         $(ECHO) $(VOBJ12) +>> $@
913         $(ECHO) $(VOBJ13) +>> $@
914         $(ECHO) $(VOBJ14) +>> $@
915         $(ECHO) $(VOBJ15) +>> $@
916         $(ECHO) $(VOBJ16) +>> $@
917         $(ECHO) $(VOBJ17) +>> $@
918         $(ECHO) $(VOBJ18) +>> $@
919         $(ECHO) $(VOBJ19) +>> $@
920         $(ECHO) $(VOBJ20) +>> $@
921         $(ECHO) $(VOBJ21) +>> $@
922         $(ECHO) $(VOBJ22) +>> $@
923         $(ECHO) $(VOBJ23) +>> $@
924         $(ECHO) $(VOBJ24) +>> $@
925         $(ECHO) $(VOBJ25) +>> $@
926         $(ECHO) $(VOBJ26) +>> $@
927         $(ECHO) $(VOBJ27) +>> $@
928         $(ECHO) $(VOBJ28) +>> $@
929         $(ECHO) $(VOBJ29) +>> $@
930         $(ECHO) $(VOBJ30) +>> $@
931         $(ECHO) $(HHOBJ)>> $@
932         $(ECHO) $(GAMEDIR)\$(GAME).exe>> $@
933         $(ECHO) $(TEMP)\$(GAME)>> $@
934         $(ECHO) $(PLIBS) $(TERMLIB)>> $@
935         $(ECHO) $(TEMP)\$(GAMEDEF) $(LFLAGS);>> $@
938 #       Targets for makedefs.
941 makedefs : $(TEMP)\makedefs.exe
942 $(TEMP)\makedefs.exe : $(TEMP)\makedefs.rsp
943         $(MKDFLN)
945 $(TEMP)\makedefs.rsp : $(MAKEOBJS) $(TEMP)\$(MKDFDEF)
946         $(ECHO) $(SYSOBJ) $(MAKEOBJS)> $@
947         $(ECHO) $(TEMP)\makedefs.exe>> $@
948         $(ECHO) nul>> $@
949         $(ECHO) $(RLIBS)>> $@
950         $(ECHO) $(MKDFMD) $(LFLAGS);>> $@
952 $(OBJ)\makedefs.o : $(UTIL)\$(CB) $(CONFIG_H) $(INCL)\permonst.h $(INCL)\objclass.h \
953                     $(INCL)\monsym.h $(INCL)\artilist.h $(INCL)\qtext.h
954         $(UTILCC)
957 #       Targets for the special levels compiler.
960 lev_comp : $(TEMP)\lev_comp.exe
961 $(TEMP)\lev_comp.exe : $(TEMP)\lev_comp.rsp
962         $(LEVCLN)
964 $(TEMP)\lev_comp.rsp : $(SPLEVOBJS) $(TEMP)\$(LEVCDEF)
965         $(ECHO) $(SYSOBJ) $(SOBJ01) +> $@
966         $(ECHO) $(SOBJ02) +>> $@
967         $(ECHO) $(SOBJ03)>> $@
968         $(ECHO) $(TEMP)\lev_comp.exe>> $@
969         $(ECHO) nul>> $@
970         $(ECHO) $(RLIBS)>> $@
971         $(ECHO) $(LEVCMD) $(LFLAGS);>> $@
973 $(OBJ)\lev_yacc.o : $(UTIL)\$(CB) $(HACK_H) $(INCL)\sp_lev.h
974         $(UTILCC)
975 $(OBJ)\lev_lex.o  : $(UTIL)\$(CB) $(HACK_H) $(INCL)\sp_lev.h $(INCL)\lev_comp.h
976         $(UTILCC)
977 $(OBJ)\lev_main.o : $(UTIL)\$(CB) $(HACK_H) $(INCL)\sp_lev.h $(INCL)\tcap.h
978         $(UTILCC)
980 $(UTIL)\lev_yacc.c : $(UTIL)\lev_comp.y
981         $(MAKEB) YY=lev do_yacc
983 $(UTIL)\lev_lex.c  : $(UTIL)\lev_comp.l
984         $(MAKEB) YY=lev do_lex
987 #       Targets for the dungeon compiler.
990 dgn_comp : $(TEMP)\dgn_comp.exe
991 $(TEMP)\dgn_comp.exe : $(TEMP)\dgn_comp.rsp
992         $(DGNCLN)
994 $(TEMP)\dgn_comp.rsp : $(DGNCOMPOBJS) $(TEMP)\$(DGNCDEF)
995         $(ECHO) $(SYSOBJ) $(DOBJ01) +> $@
996         $(ECHO) $(DOBJ02)>> $@
997         $(ECHO) $(TEMP)\dgn_comp.exe>> $@
998         $(ECHO) nul>> $@
999         $(ECHO) $(RLIBS)>> $@
1000         $(ECHO) $(DGNCMD) $(LFLAGS);>> $@
1002 $(OBJ)\dgn_yacc.o : $(UTIL)\$(CB) $(CONFIG_H) $(INCL)\date.h $(INCL)\dgn_file.h
1003         $(UTILCC)
1004 $(OBJ)\dgn_lex.o  : $(UTIL)\$(CB) $(CONFIG_H) $(INCL)\dgn_comp.h $(INCL)\dgn_file.h
1005         $(UTILCC)
1006 $(OBJ)\dgn_main.o : $(UTIL)\$(CB) $(CONFIG_H)
1007         $(UTILCC)
1009 $(UTIL)\dgn_yacc.c : $(UTIL)\dgn_comp.y
1010         $(MAKEB) YY=dgn do_yacc
1012 $(UTIL)\dgn_lex.c  : $(UTIL)\dgn_comp.l
1013         $(MAKEB) YY=dgn do_lex
1016 #       For both lev_comp and dgn_comp.
1019 $(OBJ)\panic.o : $(UTIL)\$(CB) $(CONFIG_H)
1020         $(UTILCC)
1023 #       Yacc and Lex targets.
1026 yacc_cpy :
1027         $(CP) $(SSYS)\$(YY)_yacc.c $(UTIL)
1028         $(CP) $(SSYS)\$(YY)_comp.h $(INCL)
1029         $(MAKEB) TT=$(UTIL)\$(YY)_yacc.c do_touch
1030         $(MAKEB) TT=$(INCL)\$(YY)_comp.h do_touch
1032 yacc_msg :
1033         $(ECHO) $(YY)_comp.y has changed. To update $(YY)_yacc.c and $(YY)_comp.h run $(YACC).
1035 yacc_act :
1036         $(YACC) -d $(UTIL)\$(YY)_comp.y
1037         $(CP) $(YTABC) $(UTIL)\$(YY)_yacc.c
1038         $(CP) $(YTABH) $(INCL)\$(YY)_comp.h
1039         $(RM) $(YTABC)
1040         $(RM) $(YTABH)
1042 lex_cpy :
1043         $(CP) $(SSYS)\$(YY)_lex.c $(UTIL)
1044         $(MAKEB) TT=$(UTIL)\$(YY)_lex.c do_touch
1046 lex_msg :
1047         $(ECHO) $(YY)_comp.l has changed. To update $(YY)_lex.c run $(LEX).
1049 lex_act :
1050         $(LEX) $(UTIL)\$(YY)_comp.l
1051         $(CP) $(LEXYYC) $(UTIL)\$(YY)_lex.c
1052         $(RM) $(LEXYYC)
1055 #       Why must this be so kludgy?
1058 realtouch :
1059         $(TOUCH) $(TT)
1061 faketouch :
1062         $(BEG) $(CAT) $(TT) > $(TEMP)\foo.bar $(SEP) $(CP) $(TEMP)\foo.bar $(TT) $(SEP) $(RM) $(TEMP)\foo.bar $(END)
1065 #       Targets for the recovery utility.
1068 recover : $(GAMEDIR)\recover.exe
1069 $(GAMEDIR)\recover.exe : $(TEMP)\recover.rsp
1070         $(RCVRLN)
1072 $(TEMP)\recover.rsp : $(RECOVOBJS) $(TEMP)\$(RCVRDEF)
1073         $(ECHO) $(SYSOBJ) $(RECOVOBJS)> $@
1074         $(ECHO) $(GAMEDIR)\recover.exe>> $@
1075         $(ECHO) nul>> $@
1076         $(ECHO) $(PLIBS)>> $@
1077         $(ECHO) $(TEMP)\$(RCVRDEF) $(LFLAGS);>> $@
1079 $(OBJ)\recover.o : $(UTIL)\$(CB) $(CONFIG_H)
1080         $(UTILCC)
1083 #       Targets for the dlb.
1086 dlb : $(TEMP)\dlb.exe
1087 $(TEMP)\dlb.exe : $(TEMP)\dlb.rsp
1088         $(DLBRLN)
1090 $(TEMP)\dlb.rsp : $(DLBOBJS) $(TEMP)\$(DLBDEF)
1091         $(ECHO) $(SYSOBJ) $(DLBOBJS)> $@
1092         $(ECHO) $(TEMP)\dlb.exe>> $@
1093         $(ECHO) nul>> $@
1094         $(ECHO) $(PLIBS)>> $@
1095         $(ECHO) $(TEMP)\$(DLBDEF) $(LFLAGS);>> $@
1097 $(OBJ)\dlb_main.o : $(UTIL)\$(CB) $(CONFIG_H) $(INCL)\dlb.h
1098         $(UTILCC)
1100 $(GAMEDIR)\anhdat : $(WINX11VARDAT)
1101         $(MAKEB) do_dlb
1103 dlb_yup : dlb
1104         $(TEMP)\dlb cCf $(GAMEDIR) $(GAMEDIR)\anhdat $(DATDLB)
1105         -$(RM) $(GAMEDIR)\help
1106         -$(RM) $(GAMEDIR)\hh
1107         -$(RM) $(GAMEDIR)\cmdhelp
1108         -$(RM) $(GAMEDIR)\history
1109         -$(RM) $(GAMEDIR)\opthelp
1110         -$(RM) $(GAMEDIR)\wizhelp
1111         -$(RM) $(GAMEDIR)\asmodeus.lev
1112         -$(RM) $(GAMEDIR)\baalz.lev
1113         -$(RM) $(GAMEDIR)\bigrm-?.lev
1114         -$(RM) $(GAMEDIR)\castle.lev
1115         -$(RM) $(GAMEDIR)\fakewiz?.lev
1116         -$(RM) $(GAMEDIR)\juiblex.lev
1117         -$(RM) $(GAMEDIR)\knox.lev
1118         -$(RM) $(GAMEDIR)\medusa-?.lev
1119         -$(RM) $(GAMEDIR)\minend-?.lev
1120         -$(RM) $(GAMEDIR)\minefill.lev
1121         -$(RM) $(GAMEDIR)\minetn-?.lev
1122         -$(RM) $(GAMEDIR)\oracle.lev
1123         -$(RM) $(GAMEDIR)\orcus.lev
1124         -$(RM) $(GAMEDIR)\sanctum.lev
1125         -$(RM) $(GAMEDIR)\tower?.lev
1126         -$(RM) $(GAMEDIR)\valley.lev
1127         -$(RM) $(GAMEDIR)\wizard?.lev
1128         -$(RM) $(GAMEDIR)\astral.lev
1129         -$(RM) $(GAMEDIR)\air.lev
1130         -$(RM) $(GAMEDIR)\earth.lev
1131         -$(RM) $(GAMEDIR)\fire.lev
1132         -$(RM) $(GAMEDIR)\water.lev
1133         -$(RM) $(GAMEDIR)\???-goal.lev
1134         -$(RM) $(GAMEDIR)\???-fil?.lev
1135         -$(RM) $(GAMEDIR)\???-loca.lev
1136         -$(RM) $(GAMEDIR)\???-strt.lev
1137         -$(RM) $(GAMEDIR)\data
1138         -$(RM) $(GAMEDIR)\oracles
1139         -$(RM) $(GAMEDIR)\options
1140         -$(RM) $(GAMEDIR)\quest.dat
1141         -$(RM) $(GAMEDIR)\rumors
1142         -$(RM) $(GAMEDIR)\dungeon
1143         -$(RM) $(GAMEDIR)\soko?-?.lev
1144 #       -$(RM) $(GAMEDIR)\pet_mark.xbm
1145 #       -$(RM) $(GAMEDIR)\rip.xpm
1147 dlb_nope :
1148         $(ECHO) DLB not requested.
1151 #       The following files depend on makedefs to be created.
1153 #       date.h should be remade every time any of the source or include
1154 #       files is modified.
1157 $(INCL)\date.h : $(VOBJ) $(TEMP)\makedefs.exe
1158         $(TEMP)\makedefs -v
1159         $(CP) $(DAT)\options $(GAMEDIR)
1160         $(RM) $(DAT)\options
1162 $(INCL)\onames.h : $(TEMP)\makedefs.exe
1163         $(TEMP)\makedefs -o
1165 $(INCL)\pm.h : $(TEMP)\makedefs.exe
1166         $(TEMP)\makedefs -p
1168 monstr.c : $(TEMP)\makedefs.exe
1169         $(TEMP)\makedefs -m
1171 $(OBJ)\monstr.o : $(CB)
1172         $(SRCCC)
1174 $(GAMEDIR)\data : $(DAT)\$(DATABASE) $(TEMP)\makedefs.exe
1175         $(TEMP)\makedefs -d
1176         $(CP) $(DAT)\data $(GAMEDIR)
1177         $(RM) $(DAT)\data
1179 $(GAMEDIR)\rumors : $(DAT)\rumors.tru $(DAT)\rumors.fal $(TEMP)\makedefs.exe
1180         $(TEMP)\makedefs -r
1181         $(CP) $(DAT)\rumors $(GAMEDIR)
1182         $(RM) $(DAT)\rumors
1184 $(GAMEDIR)\oracles : $(DAT)\oracles.txt $(TEMP)\makedefs.exe
1185         $(TEMP)\makedefs -h
1186         $(CP) $(DAT)\oracles $(GAMEDIR)
1187         $(RM) $(DAT)\oracles
1189 $(GAMEDIR)\quest.dat : $(DAT)\quest.txt $(TEMP)\makedefs.exe
1190         $(TEMP)\makedefs -q
1191         $(CP) $(DAT)\quest.dat $(GAMEDIR)
1192         $(RM) $(DAT)\quest.dat
1195 #       Vision tables for algorithm D.
1198 vis_tab.c : $(INCL)\vis_tab.h
1199 $(INCL)\vis_tab.h : $(TEMP)\makedefs.exe
1200         $(TEMP)\makedefs -z
1202 $(OBJ)\vis_tab.o : $(CB)
1203         $(SRCCC)
1206 #       The following programs vary depending on what OS you are using.
1209 $(OBJ)\main.o : $(SSYS)\pc$(CB) $(HACK_H) $(INCL)\dlb.h
1210         $(PSYSCC)
1211 $(OBJ)\tty.o  : $(SSYS)\pc$(CB) $(HACK_H) $(INCL)\func_tab.h
1212         $(PSYSCC)
1213 $(OBJ)\unix.o : $(SSYS)\pc$(CB) $(HACK_H)
1214         $(PSYSCC)
1217 #       Other system specific modules.
1220 $(OBJ)\os2.o   : $(SYS)\$(CB) $(HACK_H) $(INCL)\tcap.h $(INCL)\def_os2.h
1221         $(SYSCC)
1222 $(OBJ)\pcsys.o : $(SSYS)\$(CB) $(HACK_H)
1223         $(SSYSCC)
1226 #       Berkeley random(3) routines.
1229 $(OBJ)\random.o : $(SSYS)\$(CB)
1230         $(SSYSCC)
1233 #       Window source.
1236 $(OBJ)\getline.o : $(WIN)\$(CB) $(HACK_H) $(INCL)\func_tab.h
1237         $(WINCC)
1238 $(OBJ)\termcap.o : $(WIN)\$(CB) $(HACK_H) $(INCL)\tcap.h
1239         $(WINCC)
1240 $(OBJ)\topl.o    : $(WIN)\$(CB) $(HACK_H) $(INCL)\tcap.h
1241         $(WINCC)
1242 $(OBJ)\wintty.o  : $(WIN)\$(CB) $(HACK_H) $(INCL)\tcap.h $(INCL)\date.h
1243         $(WINCC)
1246 #       Secondary targets.
1249 dat :   spec_lev help_fil $(GAMEDIR)\dungeon $(GAMEDIR)\data $(GAMEDIR)\rumors \
1250         $(GAMEDIR)\oracles $(GAMEDIR)\quest.dat $(GAMEDIR)\$(GAME).ico \
1251         $(GAMEDIR)\$(GAME).cmd $(GAMEDIR)\anethack.cnf $(GAMEDIR)\anhdat \
1252         $(WINX11VARDAT)
1254 help_fil : $(GAMEDIR)\cmdhelp $(GAMEDIR)\help $(GAMEDIR)\hh $(GAMEDIR)\history \
1255         $(GAMEDIR)\license $(GAMEDIR)\opthelp $(GAMEDIR)\wizhelp
1257 $(GAMEDIR)\cmdhelp : $(DAT)\cmdhelp
1258         $(CP) $(DAT)\cmdhelp $(GAMEDIR)
1259 $(GAMEDIR)\help : $(DAT)\help
1260         $(CP) $(DAT)\help $(GAMEDIR)
1261 $(GAMEDIR)\hh : $(DAT)\hh
1262         $(CP) $(DAT)\hh $(GAMEDIR)
1263 $(GAMEDIR)\history : $(DAT)\history
1264         $(CP) $(DAT)\history $(GAMEDIR)
1265 $(GAMEDIR)\license : $(DAT)\license
1266         $(CP) $(DAT)\license $(GAMEDIR)
1267 $(GAMEDIR)\opthelp : $(DAT)\opthelp
1268         $(CP) $(DAT)\opthelp $(GAMEDIR)
1269 $(GAMEDIR)\wizhelp : $(DAT)\wizhelp
1270         $(CP) $(DAT)\wizhelp $(GAMEDIR)
1272 $(GAMEDIR)\dungeon : $(DAT)\dungeon.def $(TEMP)\makedefs.exe $(TEMP)\dgn_comp.exe
1273         $(TEMP)\makedefs -e
1274         $(TEMP)\dgn_comp $(DAT)\dungeon.pdf
1275         $(CP) $(DAT)\dungeon $(GAMEDIR)
1276         $(RM) $(DAT)\dungeon.pdf
1277         $(RM) $(DAT)\dungeon
1279 AFILES = $(GAMEDIR)\Arc-goal.lev
1280 BFILES = $(GAMEDIR)\Bar-goal.lev
1281 CFILES = $(GAMEDIR)\Cav-goal.lev
1282 HFILES = $(GAMEDIR)\Hea-goal.lev
1283 KFILES = $(GAMEDIR)\Kni-goal.lev
1284 MFILES = $(GAMEDIR)\Mon-goal.lev
1285 PFILES = $(GAMEDIR)\Pri-goal.lev
1286 RANFILES = $(GAMEDIR)\Ran-goal.lev
1287 RFILES = $(GAMEDIR)\Rog-goal.lev
1288 SFILES = $(GAMEDIR)\Sam-goal.lev
1289 TFILES = $(GAMEDIR)\Tou-goal.lev
1290 VFILES = $(GAMEDIR)\Val-goal.lev
1291 WFILES = $(GAMEDIR)\Wiz-goal.lev
1293 XFILES = $(AFILES) $(BFILES) $(CFILES) $(HFILES) $(KFILES) $(MFILES) \
1294          $(PFILES) $(RANFILES) $(RFILES) $(SFILES) $(TFILES) $(VFILES) $(WFILES)
1296 spec_lev : $(GAMEDIR)\astral.lev $(GAMEDIR)\bigrm-1.lev $(GAMEDIR)\castle.lev \
1297            $(GAMEDIR)\knox.lev $(GAMEDIR)\medusa-1.lev $(GAMEDIR)\minefill.lev \
1298            $(GAMEDIR)\oracle.lev $(GAMEDIR)\tower1.lev $(GAMEDIR)\valley.lev \
1299            $(GAMEDIR)\wizard1.lev $(GAMEDIR)\soko1-1.lev $(XFILES)
1301 #       Single special level files
1303 $(GAMEDIR)\castle.lev : $(DAT)\castle.des $(TEMP)\lev_comp.exe
1304         $(MAKEB) LF=castle do_slev
1305 $(GAMEDIR)\knox.lev : $(DAT)\knox.des $(TEMP)\lev_comp.exe
1306         $(MAKEB) LF=knox do_slev
1307 $(GAMEDIR)\oracle.lev : $(DAT)\oracle.des $(TEMP)\lev_comp.exe
1308         $(MAKEB) LF=oracle do_slev
1310 do_slev :
1311         $(TEMP)\lev_comp $(DAT)\$(LF).des
1312         $(CP) $(LF).lev $(GAMEDIR)
1313         $(RM) $(LF).lev
1315 #       Multiple special level files
1317 $(GAMEDIR)\astral.lev : $(DAT)\endgame.des $(TEMP)\lev_comp.exe
1318         $(TEMP)\lev_comp $(DAT)\endgame.des
1319         $(CP) air.lev $(GAMEDIR)
1320         $(CP) astral.lev $(GAMEDIR)
1321         $(CP) earth.lev $(GAMEDIR)
1322         $(CP) fire.lev $(GAMEDIR)
1323         $(CP) water.lev $(GAMEDIR)
1324         $(RM) air.lev
1325         $(RM) astral.lev
1326         $(RM) earth.lev
1327         $(RM) fire.lev
1328         $(RM) water.lev
1330 $(GAMEDIR)\bigrm-1.lev : $(DAT)\bigroom.des $(TEMP)\lev_comp.exe
1331         $(TEMP)\lev_comp $(DAT)\bigroom.des
1332         $(CP) bigrm-?.lev $(GAMEDIR)
1333         $(RM) bigrm-?.lev
1335 $(GAMEDIR)\medusa-1.lev : $(DAT)\medusa.des $(TEMP)\lev_comp.exe
1336         $(TEMP)\lev_comp $(DAT)\medusa.des
1337         $(CP) medusa-?.lev $(GAMEDIR)
1338         $(RM) medusa-?.lev
1340 $(GAMEDIR)\minefill.lev : $(DAT)\mines.des $(TEMP)\lev_comp.exe
1341         $(TEMP)\lev_comp $(DAT)\mines.des
1342         $(CP) minend-?.lev $(GAMEDIR)
1343         $(CP) minefill.lev $(GAMEDIR)
1344         $(CP) minetn-?.lev $(GAMEDIR)
1345         $(RM) minend-?.lev
1346         $(RM) minefill.lev
1347         $(RM) minetn-?.lev
1349 $(GAMEDIR)\tower1.lev : $(DAT)\tower.des $(TEMP)\lev_comp.exe
1350         $(TEMP)\lev_comp $(DAT)\tower.des
1351         $(CP) tower?.lev $(GAMEDIR)
1352         $(RM) tower?.lev
1354 $(GAMEDIR)\valley.lev : $(DAT)\gehennom.des $(TEMP)\lev_comp.exe
1355         $(TEMP)\lev_comp $(DAT)\gehennom.des
1356         $(CP) asmodeus.lev $(GAMEDIR)
1357         $(CP) baalz.lev $(GAMEDIR)
1358         $(CP) juiblex.lev $(GAMEDIR)
1359         $(CP) orcus.lev $(GAMEDIR)
1360         $(CP) sanctum.lev $(GAMEDIR)
1361         $(CP) valley.lev $(GAMEDIR)
1362         $(RM) asmodeus.lev
1363         $(RM) baalz.lev
1364         $(RM) juiblex.lev
1365         $(RM) orcus.lev
1366         $(RM) sanctum.lev
1367         $(RM) valley.lev
1369 $(GAMEDIR)\wizard1.lev : $(DAT)\yendor.des $(TEMP)\lev_comp.exe
1370         $(TEMP)\lev_comp $(DAT)\yendor.des
1371         $(CP) wizard?.lev $(GAMEDIR)
1372         $(CP) fakewiz?.lev $(GAMEDIR)
1373         $(RM) wizard?.lev
1374         $(RM) fakewiz?.lev
1376 $(GAMEDIR)\soko1-1.lev : $(DAT)\sokoban.des $(TEMP)\lev_comp.exe
1377         $(TEMP)\lev_comp $(DAT)\sokoban.des
1378         $(CP) soko?-?.lev $(GAMEDIR)
1379         $(RM) soko?-?.lev
1382 #       Quest dungeons
1384 $(AFILES) : $(DAT)\Arch.des $(TEMP)\lev_comp.exe
1385         $(MAKEB) QQ=Arc QF=Arch do_quest
1386 $(BFILES) : $(DAT)\Barb.des $(TEMP)\lev_comp.exe
1387         $(MAKEB) QQ=Bar QF=Barb do_quest
1388 $(CFILES) : $(DAT)\Caveman.des $(TEMP)\lev_comp.exe
1389         $(MAKEB) QQ=Cav QF=Caveman do_quest
1390 $(HFILES) : $(DAT)\Healer.des $(TEMP)\lev_comp.exe
1391         $(MAKEB) QQ=Hea QF=Healer do_quest
1392 $(KFILES) : $(DAT)\Knight.des $(TEMP)\lev_comp.exe
1393         $(MAKEB) QQ=Kni QF=Knight do_quest
1394 $(MFILES) : $(DAT)\Monk.des $(TEMP)\lev_comp.exe
1395         $(MAKEB) QQ=Mon QF=Monk do_quest
1396 $(PFILES) : $(DAT)\Priest.des $(TEMP)\lev_comp.exe
1397         $(MAKEB) QQ=Pri QF=Priest do_quest
1398 $(RANFILES) : $(DAT)\Ranger.des $(TEMP)\lev_comp.exe
1399         $(MAKEB) QQ=Ran QF=Ranger do_quest
1400 $(RFILES) : $(DAT)\Rogue.des $(TEMP)\lev_comp.exe
1401         $(MAKEB) QQ=Rog QF=Rogue do_quest
1402 $(SFILES) : $(DAT)\Samurai.des $(TEMP)\lev_comp.exe
1403         $(MAKEB) QQ=Sam QF=Samurai do_quest
1404 $(TFILES) : $(DAT)\Tourist.des $(TEMP)\lev_comp.exe
1405         $(MAKEB) QQ=Tou QF=Tourist do_quest
1406 $(VFILES) : $(DAT)\Valkyrie.des $(TEMP)\lev_comp.exe
1407         $(MAKEB) QQ=Val QF=Valkyrie do_quest
1408 $(WFILES) : $(DAT)\Wizard.des $(TEMP)\lev_comp.exe
1409         $(MAKEB) QQ=Wiz QF=Wizard do_quest
1411 do_quest :
1412         $(TEMP)\lev_comp $(DAT)\$(QF).des
1413         $(CP) $(QQ)-fil?.lev $(GAMEDIR)
1414         $(CP) $(QQ)-goal.lev $(GAMEDIR)
1415         $(CP) $(QQ)-loca.lev $(GAMEDIR)
1416         $(CP) $(QQ)-strt.lev $(GAMEDIR)
1417         $(RM) $(QQ)-fil?.lev
1418         $(RM) $(QQ)-goal.lev
1419         $(RM) $(QQ)-loca.lev
1420         $(RM) $(QQ)-strt.lev
1423 #       aNetHack icon for Presentation Manager.
1426 $(GAMEDIR)\$(GAME).ico : $(SYS)\nhpmico.uu
1427         $(MAKEB) do_icon
1429 icon_msg :
1430         $(ECHO) Icon file not extracted.  Extract manually if required.
1432 icon_act :
1433         $(UUDECODE) $(SYS)\nhpmico.uu
1434         $(CP) anethack.ico $(GAMEDIR)\$(GAME).ico
1435         $(RM) anethack.ico
1438 #       aNetHack command file to use with Presentation Manager.
1441 $(GAMEDIR)\$(GAME).cmd :
1442         $(MAKEB) CMDF=$@ do_cmd
1444 cmd_msg :
1445         $(ECHO) Command file not created.  Create manually if required.
1447 cmd_act :
1448         $(ECHO) @echo off> $(CMDF)
1449         $(ECHO) REM Command file for starting anethack.exe from PM/WPS Desktop>> $(CMDF)
1450         $(ECHO) $(GAME).exe $(P)1 $(P)2 $(P)3 $(P)4 $(P)5 $(P)6 $(P)7>> $(CMDF)
1451         $(ECHO) pause>> $(CMDF)
1454 #       aNetHack configuration file.  Will not overwrite an existing file.
1457 $(GAMEDIR)\anethack.cnf :
1458         $(CP) $(SSYS)\anethack.cnf $(GAMEDIR)
1461 #       Documentation.
1463 #       LaTeX needs to be run twice.
1464 #       The second pass uses the $(GUIDEBOO).aux file made by the first.
1467 $(TEMP)\$(GUIDEBOO).dvi : $(DOC)\$(GUIDEBOO).tex
1468         $(LATEX) $(DOC)\$(GUIDEBOO).tex
1469         $(LATEX) $(DOC)\$(GUIDEBOO).tex
1470         $(CP) $(GUIDEBOO).dvi $(TEMP)
1471         $(CP) $(GUIDEBOO).aux $(TEMP)
1472         $(CP) $(GUIDEBOO).log $(TEMP)
1473         $(RM) $(GUIDEBOO).dvi
1474         $(RM) $(GUIDEBOO).aux
1475         $(RM) $(GUIDEBOO).log
1478 #       Housekeeping.
1481 clean :
1482         -$(RM) $(OBJ)\*.o
1484 spotless : clean
1485         -$(RM) $(INCL)\date.h
1486         -$(RM) $(INCL)\onames.h
1487         -$(RM) $(INCL)\pm.h
1488         -$(RM) $(INCL)\vis_tab.h
1489         -$(RM) vis_tab.c
1490         -$(RM) monstr.c
1491         -$(RM) *.lev
1492         -$(RM) anethack.ico
1493         -$(RM) $(TEMP)\makedefs.exe
1494         -$(RM) $(TEMP)\lev_comp.exe
1495         -$(RM) $(TEMP)\dgn_comp.exe
1496         -$(RM) $(TEMP)\*.rsp
1497         -$(RM) $(TEMP)\*.def
1498         -$(RM) $(TEMP)\*.map
1499         -$(RM) $(TEMP)\$(GUIDEBOO).dvi
1500         -$(RM) $(TEMP)\$(GUIDEBOO).aux
1501         -$(RM) $(TEMP)\$(GUIDEBOO).log
1504 #       Main source.
1506 #       Default rules are sooo difficult for so many make
1507 #       programs that we do this the most straightforward way.
1510 $(OBJ)\allmain.o  : $(SRC)\$(CB) $(HACK_H)
1511         $(SRCCC)
1512 $(OBJ)\alloc.o    : $(SRC)\$(CB) $(CONFIG_H)
1513         $(SRCCC)
1514 $(OBJ)\apply.o    : $(SRC)\$(CB) $(HACK_H)
1515         $(SRCCC)
1516 $(OBJ)\artifact.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h $(INCL)\artilist.h
1517         $(SRCCC)
1518 $(OBJ)\attrib.o   : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h
1519         $(SRCCC)
1520 $(OBJ)\ball.o     : $(SRC)\$(CB) $(HACK_H)
1521         $(SRCCC)
1522 $(OBJ)\bones.o    : $(SRC)\$(CB) $(HACK_H) $(INCL)\lev.h
1523         $(SRCCC)
1524 $(OBJ)\botl.o     : $(SRC)\$(CB) $(HACK_H)
1525         $(SRCCC)
1526 $(OBJ)\cmd.o      : $(SRC)\$(CB) $(HACK_H) $(INCL)\func_tab.h
1527         $(SRCCC)
1528 $(OBJ)\dbridge.o  : $(SRC)\$(CB) $(HACK_H)
1529         $(SRCCC)
1530 $(OBJ)\decl.o     : $(SRC)\$(CB) $(HACK_H) $(INCL)\quest.h
1531         $(SRCCC)
1532 $(OBJ)\detect.o   : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h
1533         $(SRCCC)
1534 $(OBJ)\dig.o      : $(SRC)\$(CB) $(HACK_H)
1535         $(SRCCC)
1536 $(OBJ)\display.o  : $(SRC)\$(CB) $(HACK_H)
1537         $(SRCCC)
1538 $(OBJ)\dlb.o      : $(SRC)\$(CB) $(CONFIG_H) $(INCL)\dlb.h
1539         $(SRCCC)
1540 $(OBJ)\do.o       : $(SRC)\$(CB) $(HACK_H) $(INCL)\lev.h
1541         $(SRCCC)
1542 $(OBJ)\do_name.o  : $(SRC)\$(CB) $(HACK_H)
1543         $(SRCCC)
1544 $(OBJ)\do_wear.o  : $(SRC)\$(CB) $(HACK_H)
1545         $(SRCCC)
1546 $(OBJ)\dog.o      : $(SRC)\$(CB) $(HACK_H)
1547         $(SRCCC)
1548 $(OBJ)\dogmove.o  : $(SRC)\$(CB) $(HACK_H) $(INCL)\mfndpos.h
1549         $(SRCCC)
1550 $(OBJ)\dokick.o   : $(SRC)\$(CB) $(HACK_H)
1551         $(SRCCC)
1552 $(OBJ)\dothrow.o  : $(SRC)\$(CB) $(HACK_H)
1553         $(SRCCC)
1554 $(OBJ)\drawing.o  : $(SRC)\$(CB) $(HACK_H) $(INCL)\tcap.h
1555         $(SRCCC)
1556 $(OBJ)\dungeon.o  : $(SRC)\$(CB) $(HACK_H) $(INCL)\dgn_file.h
1557         $(SRCCC)
1558 $(OBJ)\eat.o      : $(SRC)\$(CB) $(HACK_H)
1559         $(SRCCC)
1560 $(OBJ)\end.o      : $(SRC)\$(CB) $(HACK_H) $(INCL)\lev.h
1561         $(SRCCC)
1562 $(OBJ)\engrave.o  : $(SRC)\$(CB) $(HACK_H) $(INCL)\lev.h
1563         $(SRCCC)
1564 $(OBJ)\exper.o    : $(SRC)\$(CB) $(HACK_H)
1565         $(SRCCC)
1566 $(OBJ)\explode.o  : $(SRC)\$(CB) $(HACK_H)
1567         $(SRCCC)
1568 $(OBJ)\extralev.o : $(SRC)\$(CB) $(HACK_H)
1569         $(SRCCC)
1570 $(OBJ)\files.o    : $(SRC)\$(CB) $(HACK_H)
1571         $(SRCCC)
1572 $(OBJ)\fountain.o : $(SRC)\$(CB) $(HACK_H)
1573         $(SRCCC)
1574 $(OBJ)\hack.o     : $(SRC)\$(CB) $(HACK_H)
1575         $(SRCCC)
1576 $(OBJ)\hacklib.o  : $(SRC)\$(CB) $(HACK_H)
1577         $(SRCCC)
1578 $(OBJ)\invent.o   : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h
1579         $(SRCCC)
1580 $(OBJ)\light.o    : $(SRC)\$(CB) $(HACK_H)
1581         $(SRCCC)
1582 $(OBJ)\lock.o     : $(SRC)\$(CB) $(HACK_H)
1583         $(SRCCC)
1584 $(OBJ)\mail.o     : $(SRC)\$(CB) $(HACK_H) $(INCL)\mail.h
1585         $(SRCCC)
1586 $(OBJ)\makemon.o  : $(SRC)\$(CB) $(HACK_H)
1587         $(SRCCC)
1588 $(OBJ)\mapglyph.o : $(SRC)\$(CB) $(HACK_H)
1589         $(SRCCC)
1590 $(OBJ)\mcastu.o   : $(SRC)\$(CB) $(HACK_H)
1591         $(SRCCC)
1592 $(OBJ)\mhitm.o    : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h
1593         $(SRCCC)
1594 $(OBJ)\mhitu.o    : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h
1595         $(SRCCC)
1596 $(OBJ)\minion.o   : $(SRC)\$(CB) $(HACK_H)
1597         $(SRCCC)
1598 $(OBJ)\mklev.o    : $(SRC)\$(CB) $(HACK_H)
1599         $(SRCCC)
1600 $(OBJ)\mkmap.o    : $(SRC)\$(CB) $(HACK_H) $(INCL)\sp_lev.h
1601         $(SRCCC)
1602 $(OBJ)\mkmaze.o   : $(SRC)\$(CB) $(HACK_H) $(INCL)\sp_lev.h
1603         $(SRCCC)
1604 $(OBJ)\mkobj.o    : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h
1605         $(SRCCC)
1606 $(OBJ)\mkroom.o   : $(SRC)\$(CB) $(HACK_H)
1607         $(SRCCC)
1608 $(OBJ)\mon.o      : $(SRC)\$(CB) $(HACK_H) $(INCL)\mfndpos.h
1609         $(SRCCC)
1610 $(OBJ)\mondata.o  : $(SRC)\$(CB) $(HACK_H)
1611         $(SRCCC)
1612 $(OBJ)\monmove.o  : $(SRC)\$(CB) $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
1613         $(SRCCC)
1614 $(OBJ)\monst.o    : $(SRC)\$(CB) $(CONFIG_H) $(PERMONST_H) $(INCL)\monsym.h $(INCL)\color.h
1615         $(SRCCC)
1616 $(OBJ)\mplayer.o  : $(SRC)\$(CB) $(HACK_H)
1617         $(SRCCC)
1618 $(OBJ)\mthrowu.o  : $(SRC)\$(CB) $(HACK_H)
1619         $(SRCCC)
1620 $(OBJ)\muse.o     : $(SRC)\$(CB) $(HACK_H)
1621         $(SRCCC)
1622 $(OBJ)\music.o    : $(SRC)\$(CB) $(HACK_H)
1623         $(SRCCC)
1624 $(OBJ)\o_init.o   : $(SRC)\$(CB) $(HACK_H)
1625         $(SRCCC)
1626 $(OBJ)\objects.o  : $(SRC)\$(CB) $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h $(INCL)\prop.h $(INCL)\color.h
1627         $(SRCCC)
1628 $(OBJ)\objnam.o   : $(SRC)\$(CB) $(HACK_H)
1629         $(SRCCC)
1630 $(OBJ)\options.o  : $(SRC)\$(CB) $(HACK_H) $(INCL)\tcap.h
1631         $(SRCCC)
1632 $(OBJ)\pager.o    : $(SRC)\$(CB) $(HACK_H)
1633         $(SRCCC)
1634 $(OBJ)\pickup.o   : $(SRC)\$(CB) $(HACK_H)
1635         $(SRCCC)
1636 $(OBJ)\pline.o    : $(SRC)\$(CB) $(HACK_H)
1637         $(SRCCC)
1638 $(OBJ)\polyself.o : $(SRC)\$(CB) $(HACK_H)
1639         $(SRCCC)
1640 $(OBJ)\potion.o   : $(SRC)\$(CB) $(HACK_H)
1641         $(SRCCC)
1642 $(OBJ)\pray.o     : $(SRC)\$(CB) $(HACK_H)
1643         $(SRCCC)
1644 $(OBJ)\priest.o   : $(SRC)\$(CB) $(HACK_H) $(INCL)\mfndpos.h
1645         $(SRCCC)
1646 $(OBJ)\quest.o    : $(SRC)\$(CB) $(HACK_H) $(INCL)\quest.h $(INCL)\qtext.h
1647         $(SRCCC)
1648 $(OBJ)\questpgr.o : $(SRC)\$(CB) $(HACK_H) $(INCL)\qtext.h
1649         $(SRCCC)
1650 $(OBJ)\read.o     : $(SRC)\$(CB) $(HACK_H)
1651         $(SRCCC)
1652 $(OBJ)\region.o     : $(SRC)\$(CB) $(HACK_H)
1653         $(SRCCC)
1654 $(OBJ)\rect.o     : $(SRC)\$(CB) $(HACK_H)
1655         $(SRCCC)
1656 $(OBJ)\restore.o  : $(SRC)\$(CB) $(HACK_H) $(INCL)\lev.h $(INCL)\tcap.h $(INCL)\quest.h
1657         $(SRCCC)
1658 $(OBJ)\rip.o      : $(SRC)\$(CB) $(HACK_H)
1659         $(SRCCC)
1660 $(OBJ)\rnd.o      : $(SRC)\$(CB) $(HACK_H)
1661         $(SRCCC)
1662 $(OBJ)\role.o     : $(SRC)\$(CB) $(HACK_H)
1663         $(SRCCC)
1664 $(OBJ)\rumors.o   : $(SRC)\$(CB) $(HACK_H)
1665         $(SRCCC)
1666 $(OBJ)\save.o     : $(SRC)\$(CB) $(HACK_H) $(INCL)\lev.h $(INCL)\quest.h
1667         $(SRCCC)
1668 $(OBJ)\shk.o      : $(SRC)\$(CB) $(HACK_H)
1669         $(SRCCC)
1670 $(OBJ)\shknam.o   : $(SRC)\$(CB) $(HACK_H)
1671         $(SRCCC)
1672 $(OBJ)\sit.o      : $(SRC)\$(CB) $(HACK_H) $(INCL)\artifact.h
1673         $(SRCCC)
1674 $(OBJ)\sounds.o   : $(SRC)\$(CB) $(HACK_H)
1675         $(SRCCC)
1676 $(OBJ)\sp_lev.o   : $(SRC)\$(CB) $(HACK_H) $(INCL)\sp_lev.h $(INCL)\rect.h
1677         $(SRCCC)
1678 $(OBJ)\spell.o    : $(SRC)\$(CB) $(HACK_H)
1679         $(SRCCC)
1680 $(OBJ)\steal.o    : $(SRC)\$(CB) $(HACK_H)
1681         $(SRCCC)
1682 $(OBJ)\steed.o    : $(SRC)\$(CB) $(HACK_H)
1683         $(SRCCC)
1684 $(OBJ)\sys.o    : $(SRC)\$(CB) $(HACK_H)
1685         $(SRCCC)
1686 $(OBJ)\teleport.o : $(SRC)\$(CB) $(HACK_H)
1687         $(SRCCC)
1688 $(OBJ)\timeout.o  : $(SRC)\$(CB) $(HACK_H)
1689         $(SRCCC)
1690 $(OBJ)\topten.o   : $(SRC)\$(CB) $(HACK_H)
1691         $(SRCCC)
1692 $(OBJ)\track.o    : $(SRC)\$(CB) $(HACK_H)
1693         $(SRCCC)
1694 $(OBJ)\trap.o     : $(SRC)\$(CB) $(HACK_H)
1695         $(SRCCC)
1696 $(OBJ)\u_init.o   : $(SRC)\$(CB) $(HACK_H)
1697         $(SRCCC)
1698 $(OBJ)\uhitm.o    : $(SRC)\$(CB) $(HACK_H)
1699         $(SRCCC)
1700 $(OBJ)\vault.o    : $(SRC)\$(CB) $(HACK_H)
1701         $(SRCCC)
1702 $(OBJ)\version.o  : $(SRC)\$(CB) $(HACK_H) $(INCL)\date.h $(INCL)\$(PATCHLEV).h
1703         $(SRCCC)
1704 $(OBJ)\vision.o   : $(SRC)\$(CB) $(HACK_H) $(INCL)\vis_tab.h
1705         $(SRCCC)
1706 $(OBJ)\weapon.o   : $(SRC)\$(CB) $(HACK_H)
1707         $(SRCCC)
1708 $(OBJ)\were.o     : $(SRC)\$(CB) $(HACK_H)
1709         $(SRCCC)
1710 $(OBJ)\wield.o    : $(SRC)\$(CB) $(HACK_H)
1711         $(SRCCC)
1712 $(OBJ)\windows.o  : $(SRC)\$(CB) $(HACK_H)
1713         $(SRCCC)
1714 $(OBJ)\wizard.o   : $(SRC)\$(CB) $(HACK_H) $(INCL)\qtext.h
1715         $(SRCCC)
1716 $(OBJ)\worm.o     : $(SRC)\$(CB) $(HACK_H) $(INCL)\lev.h
1717         $(SRCCC)
1718 $(OBJ)\worn.o     : $(SRC)\$(CB) $(HACK_H)
1719         $(SRCCC)
1720 $(OBJ)\write.o    : $(SRC)\$(CB) $(HACK_H)
1721         $(SRCCC)
1722 $(OBJ)\zap.o      : $(SRC)\$(CB) $(HACK_H)
1723         $(SRCCC)
1725 $(OBJ)/Window.o: $(WINX11)\Window.c $(INCL)\xwindowp.h $(INCL)\xwindow.h \
1726                 $(CONFIG_H)
1727         $(CC) -o$(OBJ)\Window.o $(CFLAGS) -c $(WINX11)\Window.c
1728 $(OBJ)/dialogs.o: $(WINX11)\dialogs.c $(CONFIG_H)
1729         $(CC) -o$(OBJ)\dialogs.o $(CFLAGS) -c $(WINX11)\dialogs.c
1730 $(OBJ)/winX.o: $(WINX11)\winX.c $(HACK_H) $(INCL)\winX.h $(INCL)\dlb.h \
1731                 $(INCL)\patchlevel.h $(WINX11)\nh72icon \
1732                 $(WINX11)\nh56icon $(WINX11)\nh32icon
1733         $(CC) $(CFLAGS) -c $(WINX11)\winX.c -o$(OBJ)\winX.o
1734 $(OBJ)/winmap.o: $(WINX11)\winmap.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\dlb.h \
1735                 $(INCL)\winX.h $(INCL)\tile2x11.h
1736         $(CC) $(CFLAGS) -c $(WINX11)\winmap.c -o $(OBJ)\winmap.o
1737 $(OBJ)/winmenu.o: $(WINX11)\winmenu.c $(HACK_H) $(INCL)\winX.h
1738         $(CC) $(CFLAGS) -c $(WINX11)\winmenu.c -o $(OBJ)\winmenu.o
1739 $(OBJ)/winmesg.o: $(WINX11)\winmesg.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\winX.h
1740         $(CC) $(CFLAGS) -c $(WINX11)\winmesg.c -o$(OBJ)\winmesg.o
1741 $(OBJ)/winmisc.o: $(WINX11)\winmisc.c $(HACK_H) $(INCL)\func_tab.h \
1742                 $(INCL)\winX.h
1743         $(CC) $(CFLAGS) -c $(WINX11)\winmisc.c -o$(OBJ)\winmisc.o
1744 $(OBJ)/winstat.o: $(WINX11)\winstat.c $(HACK_H) $(INCL)\winX.h
1745         $(CC) $(CFLAGS) -c $(WINX11)\winstat.c -o$(OBJ)\winstat.o
1746 $(OBJ)/wintext.o: $(WINX11)\wintext.c $(HACK_H) $(INCL)\winX.h $(INCL)\xwindow.h
1747         $(CC) $(CFLAGS) -c $(WINX11)\wintext.c -o$(OBJ)\wintext.o
1748 $(OBJ)/winval.o: $(WINX11)\winval.c $(HACK_H) $(INCL)\winX.h
1749         $(CC) $(CFLAGS) -c $(WINX11)\winval.c -o$(OBJ)\winval.o
1751 $(OBJ)/tile.o: $(NHSRC)\src\tile.c $(HACK_H)
1752         $(CC) $(CFLAGS) -c $(NHSRC)\src\tile.c -o$(OBJ)\tile.o
1754 $(TEMP)\tilemap.exe: ..\win\share\tilemap.c $(HACK_H)
1755         $(CC) $(GCCO) $(WARN) -I$(INCL) $(CDFLAGS) $(STDC) $(WINX11CFLAGS) $(LFLAGS) -o $(TEMP)\tilemap.exe ..\win\share\tilemap.c $(LIBS)
1756 $(NHSRC)\src\tile.c: $(TEMP)\tilemap.exe
1757         $(TEMP)\tilemap
1759 x11tiles: $(TEMP)\tile2x11.exe $(WINSHARE)\monsters.txt \
1760                                 $(WINSHARE)\objects.txt \
1761                                 $(WINSHARE)\other.txt
1762         $(TEMP)\tile2x11.exe $(WINSHARE)\monsters.txt $(WINSHARE)\objects.txt \
1763                                 $(WINSHARE)\other.txt
1764         $(CP) x11tiles $(GAMEDIR)\x11tiles
1766 TEXT_IO = $(OBJ)\tiletext.o \
1767           $(OBJ)\tiletxt.o \
1768           $(OBJ)\drawing.o \
1769           $(OBJ)\decl.o \
1770           $(OBJ)\monst.o \
1771           $(OBJ)\objects.o
1773 $(OBJ)\tiletext.o: ../win/share/tiletext.c $(CONFIG_H) $(WINSHARE)\tile.h
1774         $(CC) $(CFLAGS) -c $(WINSHARE)\tiletext.c -o$(OBJ)\tiletext.o
1775 $(OBJ)\tiletxt.o: $(WINSHARE)\tilemap.c $(HACK_H)
1776         $(CC) $(CFLAGS) -c -DTILETEXT $(WINSHARE)\tilemap.c -o$(OBJ)\tiletxt.o
1778 $(TEMP)\tile2x11.exe: $(OBJ)\tile2x11.o $(TEXT_IO)
1779         $(CC) $(LFLAGS) -o $(TEMP)\tile2x11.exe $(OBJ)\tile2x11.o $(TEXT_IO) $(LIBS)
1781 pet_mark.xbm: $(WINX11)\pet_mark.xbm
1782         $(CP) $(WINX11)\pet_mark.xbm $(GAMEDIR)\pet_mark.xbm
1784 rip.xpm: $(WINX11)\rip.xpm
1785         $(CP) $(WINX11)\rip.xpm $(GAMEDIR)\rip.xpm
1787 $(OBJ)\tile2x11.o : $(WINX11)\tile2x11.c $(INCL)\tile2x11.h
1788         $(CC) $(CFLAGS) -o$(OBJ)\tile2x11.o -c $(WINX11)\tile2x11.c \
1789                 -I$(WINSHARE)