
CXX = g++
CXXOPT = -ansi -pedantic -Wall -O3

STRIP = strip

# MKSU is a small program I use to make programs suid/sgid root.
# MKSU = mksu

TTYLIBS = -lncurses -ltermcap
XLIBS = -lX11
VGALIBS = -lvga

CONFIG = Config.H
COMMONOBJS = Worm.o Field.o
TTYOBJS = Video.o
XOBJS = Video.X.o
VGAOBJS = Video.V.o VgaFont.o

all : TWorm XWorm VWorm

TWorm : $(CONFIG) $(COMMONOBJS) $(TTYOBJS)
	$(RM) TWorm
	$(CXX) $(CXXOPT) -DCFG_TTY_MAIN -c Main.C
	$(CXX) -o TWorm Main.o $(COMMONOBJS) $(TTYOBJS) $(TTYLIBS)
	$(STRIP) TWorm

XWorm : $(CONFIG) $(COMMONOBJS) $(XOBJS)
	$(RM) XWorm
	$(CXX) $(CXXOPT) -DCFG_X_MAIN -c Main.C
	$(CXX) -o XWorm Main.o $(COMMONOBJS) $(XOBJS) $(XLIBS)
	$(STRIP) XWorm

VWorm : $(CONFIG) $(COMMONOBJS) $(VGAOBJS)
	$(RM) VWorm
	$(CXX) $(CXXOPT) -DCFG_VGA_MAIN -c Main.C
	$(CXX) -o VWorm Main.o $(COMMONOBJS) $(VGAOBJS) $(VGALIBS)
	$(STRIP) VWorm
	echo "Remember to make VWorm suid root!"
#	$(MKSU) VWorm

Video.X.o : Video.X.C Config.H

.C.o :
	$(CXX) $(CXXOPT) -c $<

clean :
	$(RM) $(COMMONOBJS) $(TTYOBJS) $(XOBJS) $(VGAOBJS) Main.o \
	TWorm XWorm VWorm core
