# File: Makefile.std # This is not a very "nice" Makefile, but it usually works. # # Note that you may have to make modifications below according # to your machine, available libraries, compilation options, # and your "visual module" of choice. This Makefile is intended # for use with Unix machines running X11, gtk, (n)curses, termcap, # or VT100, Slang, Linux VCS or SVGA library, # or possibly for "Atari" or "Amiga" computers with "Curses" ports, # see below for more information. # # Note that "main-mac.c", the visual module for the Macintosh, # must be compiled in a special way, see elsewhere. # # Note that "main-win.c", the visual module for Windows, # must be compiled in a special way, see elsewhere. # # Note that "main-ibm.c", "main-dos.c", and "main-emx.c", # the visual modules for various types of IBM-PC computers, # must be compiled with special Makefiles, see elsewhere. # # Note that "main-ros.c", the visual module for RISC OS, # must be compiled with "Makefile.ros", see elsewhere. # # Note that "main-ami.c", the visual module for the Amiga, # must be compiled with "Makefile.ami", see elsewhere. # # If you are able to construct "main-xxx.c" and/or "Makefile.xxx" # files for a currently unsupported system, please send them to # Robert Ruehlmann < rr9@thangorodrim.net > for inclusion in future # versions. # # This Makefile comes with "default" dependencies that may be obsolete. # # # The "source" and "object" files. # SRCS = \ z-util.c z-virt.c z-form.c z-rand.c z-term.c \ variable.c tables.c util.c cave.c \ object1.c object2.c monster1.c monster2.c \ xtra1.c xtra2.c spells1.c spells2.c \ melee1.c melee2.c save.c effects.c feature.c files.c \ cmd1.c cmd2.c cmd3.c cmd4.c cmd5.c cmd6.c \ store.c birth.c load.c quest.c squelch.c \ wizard1.c wizard2.c obj-info.c \ generate.c dungeon.c init1.c init2.c randart.c \ main-cap.c main-gcu.c main-x11.c main-xaw.c main.c \ main-gtk.c main-lsl.c main-sla.c main-vcs.c main-xpj.c main-lfb.c \ maid-x11.c \ use-obj.c OBJS = \ z-util.o z-virt.o z-form.o z-rand.o z-term.o \ variable.o tables.o util.o cave.o \ object1.o object2.o monster1.o monster2.o \ xtra1.o xtra2.o spells1.o spells2.o \ melee1.o melee2.o save.o effects.o feature.o files.o \ cmd1.o cmd2.o cmd3.o cmd4.o cmd5.o cmd6.o \ store.o birth.o load.o quest.o squelch.o \ wizard1.o wizard2.o obj-info.o \ generate.o dungeon.o init1.o init2.o randart.o \ main-cap.o main-gcu.o main-x11.o main-xaw.o main.o \ main-gtk.o main-lsl.o main-sla.o main-vcs.o main-xpj.o main-lfb.o \ maid-x11.o \ use-obj.o ## ## Following are some "system" definitions ## ## No changes are needed to compile a version that will run on both ## X11 and Curses, in debugging mode, with maximal warnings, on many ## normal Unix machines of the Sun OS variety (non-solaris). ## ## To use an "alternative" definition, simply "modify" (or "replace") ## the definition below with one that you like. For example, you can ## change the compiler to "cc", or remove the "debugging" options, or ## remove the X11 or Curses support, etc, as desired. ## ## With X11, XAW or GTK, you can add -D"USE_XPJ" to CFLAGS to get the ## 3d-projection module "xpj". ## ## See also "config.h" and "h-config.h" for important information. ## ## Some "examples" are given below, they can be used by simply ## removing the FIRST column of "#" signs from the "block" of lines ## you wish to use, and commenting out "standard" block below. ## ## This is not intended to be a "good" Makefile, just a "simple" one. ## # # This is my compiler of choice, it seems to work most everywhere. # CC = gcc # # Standard version (see main-x11.c and main-gcu.c) # # This version supports both "X11" and "curses" in a single executable. # # You may have to add various X11 include/library directories to the # "CFLAGS", if your machine places files in a weird location. # # You may be able to remove "-ltermcap" on some machines (ex: Solaris). # # You may have to replace "-lcurses" with "-lncurses" to use the # "new curses" library instead of the "old curses" library, and # you may have to add "-I/usr/include/ncurses" to the "CFLAGS". # # See "main-gcu.c" and "config.h" for some optional "curses" defines, # including "USE_GETCH" and "USE_CURS_SET". Note that "config.h" will # attempt to "guess" at many of these flags based on your system. # #CFLAGS = -Wall -O1 -pipe -g -D"USE_X11" -D"USE_GCU" #LIBS = -lX11 -lcurses -ltermcap ## ## Variation -- Only support "main-x11.c" (not "main-gcu.c") ## #CFLAGS = -Wall -O1 -pipe -g -D"USE_X11" #LIBS = -lX11 ## ## Variation -- Only support "main-gcu.c" (not "main-x11.c") ## #CFLAGS = -Wall -O1 -pipe -g -D"USE_GCU" #LIBS = -lcurses -ltermcap ## ## Variation -- Use "main-xaw.c" instead of "main-x11.c" ## #CFLAGS = -Wall -O1 -pipe -g -D"USE_XAW" -D"USE_GCU" #LIBS = -lXaw -lXmu -lXt -lX11 -lcurses -ltermcap ## ## Variation -- Use "main-gtk.c" instead of "main-x11.c" ## Note: gtk-config adds GTK and X11 includes and libraries as appropriate. ## #CFLAGS = -Wall -O `gtk-config --cflags` -g -D"USE_GTK" -D"USE_GCU" #LIBS = `gtk-config --libs` -lcurses -ltermcap ## ## Variation -- Use "main-cap.c" instead of "main-gcu.c" ## #CFLAGS = -Wall -O1 -pipe -g -D"USE_X11" -D"USE_CAP" #LIBS = -lX11 -ltermcap ## ## Variation -- Only work on simple vt100 terminals ## #CFLAGS = -Wall -O1 -pipe -g -D"USE_CAP" -D"USE_HARDCODE" ## ## Variation -- compile for Linux ## ## Allows the use of Angband in the console using ncurses, ## as well as under X11. ## #CFLAGS = -I/usr/X11R6/include -I/usr/include/ncurses -Wall \ # -O2 -fno-strength-reduce -D"HAVE_MKSTEMP" \ # -D"USE_X11" -D"USE_GCU" -D"USE_NCURSES" -g #LIBS = -L/usr/X11R6/lib -lXaw -lXext -lSM -lICE -lXmu -lXt -lX11 -lncurses ## ## Variation -- compile for Linux ## ## Allows the use of Angband in the console using curses. ## #CFLAGS = -Wall -O2 -fno-strength-reduce -pipe -D"USE_GCU" #LIBS = -lcurses ## ## Variation -- compile for Linux ## ## Allows the use of Angband in X11 using the Athena Widget set. ## #CFLAGS = -Wall -O2 -fno-strength-reduce -pipe -g -D"USE_XAW" #LIBS = -L/usr/X11R6/lib -lXaw -lXext -lSM -lICE -lXmu -lXt -lX11 ## ## Variation -- this might work better than the suggestion above ## CFLAGS = -I/usr/include/ncurses \ -Wall -O2 -fno-strength-reduce -fomit-frame-pointer \ -D"USE_X11" -D"USE_GCU" \ -D"USE_TPOSIX" -D"USE_CURS_SET" LIBS = -lX11 -lncurses LDFLAGS = -s ## ## Variation -- compile for Solaris ## #CFLAGS = -Wall -O1 -pipe -g -D"USE_X11" -D"USE_GCU" -D"SOLARIS" #LIBS = -lX11 -lsocket -lcurses ## ## Variation -- compile for SGI Indigo runnig Irix ## #CFLAGS = -Wall -O1 -pipe -g -D"USE_X11" -D"USE_GCU" -D"SGI" #LIBS = -lX11 -lcurses -ltermcap -lsun ## ## Variation -- compile for Dec ALPHA OSF/1 v2.0 ## #CC = cc ##CFLAGS = -std -O -g3 -Olimit 4000 -D"USE_X11" -D"USE_GCU" #CFLAGS = -std -g -D"USE_X11" -D"USE_GCU" #LIBS = -lX11 -lcurses -ltermcap -lrpcsvc ## ## Variation -- compile for Interactive Unix (ISC) systems ## #CFLAGS = -Wall -O1 -pipe -g -D"USE_X11" -D"USE_GCU" -D"ISC" #LIBS = -lX11 -lcurses -lnsl_s -linet -lcposix ## ## Variation -- Support fat binaries under NEXTSTEP ## #CFLAGS = -Wall -O1 -pipe -g -D"USE_GCU" -arch m68k -arch i386 #LIBS = -lcurses -ltermcap ## ## Variation -- Support Linux + SVGA library ## #CFLAGS = -Wall -O2 -fno-strength-reduce -D"USE_LSL" #LIBS = -lz -lvgagl -lvga ## ## Variation -- Support Linux "vcs" (Virtual Console memory) module ## #CFLAGS = -Wall -O2 -fno-strength-reduce -D"USE_VCS" #LIBS = ## ## Variation -- Support S-Lang library ## #CFLAGS = -Wall -O2 -fno-strength-reduce -D"USE_SLA" -I/usr/include/slang #LIBS = -lslang # # Default target. # all: nppangband # # Install the game. # install: nppangband cp nppangband .. # # Build the "NPPAngband" program # nppangband: $(OBJS) $(CC) $(CFLAGS) $(LDFLAGS) -o nppangband $(OBJS) $(LIBS) # # Clean up old junk # clean: -rm -f *.o nppangband # # Generate dependencies automatically # depend: makedepend -D__MAKEDEPEND__ $(SRCS) # # Hack -- some file dependencies # HDRS = \ h-basic.h \ h-define.h h-type.h h-system.h h-config.h INCS = \ angband.h \ config.h defines.h types.h externs.h \ z-term.h z-rand.h z-util.h z-virt.h z-form.h $(HDRS) birth.o: birth.c $(INCS) cave.o: cave.c $(INCS) cmd1.o: cmd1.c $(INCS) cmd2.o: cmd2.c $(INCS) cmd3.o: cmd3.c $(INCS) cmd4.o: cmd4.c $(INCS) cmd5.o: cmd5.c $(INCS) cmd6.o: cmd6.c $(INCS) dungeon.o: dungeon.c $(INCS) effects.o: effects.c $(INCS) feature.o: feature.c $(INCS) files.o: files.c $(INCS) generate.o: generate.c $(INCS) init1.o: init1.c $(INCS) init.h init2.o: init2.c $(INCS) init.h load.o: load.c $(INCS) init.h maid-x11.o: maid-x11.c $(INCS) maid-x11.h main-cap.o: main-cap.c $(INCS) main.h main-gcu.o: main-gcu.c $(INCS) main.h main-gtk.o: main-gtk.c $(INCS) main.h maid-x11.h main-lsl.o: main-lsl.c $(INCS) main.h main-sla.o: main-sla.c $(INCS) main.h main-vcs.o: main-vcs.c $(INCS) main.h main-x11.o: main-x11.c $(INCS) main.h maid-x11.h main-xaw.o: main-xaw.c $(INCS) main.h maid-x11.h main-xpj.o: main-xpj.c $(INCS) main.h maid-x11.h main-lfb.o: main-lfb.c $(INCS) main.h main.o: main.c $(INCS) main.h melee1.o: melee1.c $(INCS) melee2.o: melee2.c $(INCS) monster1.o: monster1.c $(INCS) monster2.o: monster2.c $(INCS) obj-info.o: obj-info.c $(INCS) object1.o: object1.c $(INCS) object2.o: object2.c $(INCS) quest.o: quest.c $(INCS) randart.o: randart.c $(INCS) init.h save.o: save.c $(INCS) spells1.o: spells1.c $(INCS) spells2.o: spells2.c $(INCS) squelch.o: squelch.c $(INCS) store.o: store.c $(INCS) tables.o: tables.c $(INCS) use-obj.o: use-obj.c $(INCS) util.o: util.c $(INCS) variable.o: variable.c $(INCS) wizard1.o: wizard1.c $(INCS) wizard2.o: wizard2.c $(INCS) xtra1.o: xtra1.c $(INCS) xtra2.o: xtra2.c $(INCS) z-form.o: z-form.c $(HDRS) z-form.h z-util.h z-virt.h z-rand.o: z-rand.c $(HDRS) z-rand.h z-term.o: z-term.c $(HDRS) z-term.h z-virt.h z-util.o: z-util.c $(HDRS) z-util.h z-virt.o: z-virt.c $(HDRS) z-virt.h z-util.h