# Makefile for dungeon # By Jonathan Mark MSC = 1 # this is the Microsoft C version (for DOS) !if $(MSC) O = obj # suffix for object files BINDIR = . # Where to install the program LIBDIR = . # Where to install the data file TARGET = dungeon.exe !else O = o # suffix for object files BINDIR = /usr/games # Where to install the program LIBDIR = /usr/games/lib # Where to install the data file TARGET = dungeon !endif # The dungeon program provides a ``more'' facility which tries to # figure out how many rows the terminal has. Several mechanisms are # supported for determining this; the most common one has been left # uncommented. If you have trouble, especially when linking, you may # have to select a different option. # more option 1: use the termcap routines. On some systems the LIBS # variable may need to be set to -lcurses. On some it may need to # be /usr/lib/termcap.o. These options are commented out below. # LIBS = -ltermcap # TERMFLAG = # LIBS = -lcurses # LIBS = /usr/lib/termcap.o # more option 2: use the terminfo routines. On some systems the LIBS # variable needs to be -lcursesX, but probably all such systems support # the termcap routines (option 1) anyhow. # LIBS = -lcurses # TERMFLAG = -DMORE_TERMINFO # more option 3: assume all terminals have 24 rows !if $(MSC) LIBS = TERMFLAG = -DMORE_24 !endif # more option 4: don't use the more facility at all # LIBS = # TERMFLAG = -DMORE_NONE # End of more options # Uncomment the following line if you want to have access to the game # debugging tool. This is invoked by typing "gdt". It is not much # use except for debugging. # GDTFLAG = -DALLOW_GDT # Compilation flags !if $(MSC) # MSC-specific compile options: # -AM "medium" memory model (code > 64k, data < 64k) # -Za disables Microsoft C extensions. This causes the compiler to # define __STDC__, which in turn causes BINREAD to be defined # as "rb", etc. (This seems odd -- is the "b" suffix in # ANSI C?) [Yes, it is] CFLAGS = -O -AM -Za !else CFLAGS = -O !endif ################################################################## # Source files CSRC = actors.c ballop.c clockr.c demons.c dgame.c dinit.c dmain.c\ dso1.c dso2.c dso3.c dso4.c dso5.c dso6.c dso7.c dsub.c dverb1.c\ dverb2.c gdt.c lightp.c local.c nobjs.c np.c np1.c np2.c np3.c\ nrooms.c objcts.c rooms.c sobjs.c supp.c sverbs.c verbs.c villns.c # Object files OBJS1 = actors.$O ballop.$O clockr.$O demons.$O dgame.$O dinit.$O dmain.$O OBJS2 = dso1.$O dso2.$O dso3.$O dso4.$O dso5.$O dso6.$O dso7.$O dsub.$O OBJS3 = dverb1.$O dverb2.$O gdt.$O lightp.$O local.$O nobjs.$O np.$O np1.$O OBJS4 = np2.$O np3.$O nrooms.$O objcts.$O rooms.$O sobjs.$O supp.$O sverbs.$O OBJS5 = verbs.$O villns.$O OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(OBJS5) !if $(MSC) # If we try to link as one $(CC) command, the command line is too long for # DOS to accept. We therefore have to use the ugly "response file" syntax. # $(TARGET): $(OBJS) dtextc.dat link @<< $(OBJS1)+ $(OBJS2)+ $(OBJS3)+ $(OBJS4)+ $(OBJS5) $(TARGET) /map /codeview $(LIBS) << !else $(TARGET): $(OBJS) dtextc.dat $(CC) $(CFLAGS) -o $(TARGET) $(OBJS) $(LIBS) !endif install: $(TARGET) dtextc.dat cp $(TARGET) $(BINDIR) cp dtextc.dat $(LIBDIR) clean: rm -f $(OBJS) $(TARGET) core dsave.dat *~ dtextc.dat: cat dtextc.uu1 dtextc.uu2 dtextc.uu3 dtextc.uu4 >dtextc.uu uudecode dtextc.uu rm -f dtextc.uu dinit.$O: dinit.c funcs.h vars.h $(CC) $(CFLAGS) $(GDTFLAG) -DTEXTFILE=\"$(LIBDIR)/dtextc.dat\" -c dinit.c dgame.$O: dgame.c funcs.h vars.h $(CC) $(CFLAGS) $(GDTFLAG) -c dgame.c gdt.$O: gdt.c funcs.h vars.h $(CC) $(CFLAGS) $(GDTFLAG) -c gdt.c local.$O: local.c funcs.h vars.h $(CC) $(CFLAGS) $(GDTFLAG) -c local.c supp.$O: supp.c funcs.h vars.h $(CC) $(CFLAGS) $(TERMFLAG) -c supp.c actors.$O: funcs.h vars.h ballop.$O: funcs.h vars.h clockr.$O: funcs.h vars.h demons.$O: funcs.h vars.h dmain.$O: funcs.h vars.h dso1.$O: funcs.h vars.h dso2.$O: funcs.h vars.h dso3.$O: funcs.h vars.h dso4.$O: funcs.h vars.h dso5.$O: funcs.h vars.h dso6.$O: funcs.h vars.h dso7.$O: funcs.h vars.h dsub.$O: funcs.h vars.h dverb1.$O: funcs.h vars.h dverb2.$O: funcs.h vars.h lightp.$O: funcs.h vars.h nobjs.$O: funcs.h vars.h np.$O: funcs.h vars.h np1.$O: funcs.h vars.h parse.h np2.$O: funcs.h vars.h parse.h np3.$O: funcs.h vars.h parse.h nrooms.$O: funcs.h vars.h objcts.$O: funcs.h vars.h rooms.$O: funcs.h vars.h sobjs.$O: funcs.h vars.h sverbs.$O: funcs.h vars.h verbs.$O: funcs.h vars.h villns.$O: funcs.h vars.h