CC = cc
RM = rm -f
MAKE = make
FCFLAGS = -t
CDEBUGFLAGS =  -g
MKFONTDIR = /usr/bin/X/mkfontdir

FC = /usr/bin/X/bdftosnf
SYS_LIBRARIES = -lm -lX11
CFLAGS = $(CDEBUGFLAGS) $(INCLUDES) $(STD_DEFINES) $(DEFINES)
LDFLAGS = $(CDEBUGFLAGS) $(SYS_LIBRARIES) 

# X11_R3_ENV gets you the code in XTextExt.c, which will
# be part of the R4 environment. It speeds up string operations
# by several orders of magnitude.

XTOPTIONS	= -DTURBO_OPTION -DTELEPORT_OPTION -DUSEWATCH
CFLAGS 		= -g $(XTOPTIONS)
YACC		= yacc
LEX		= lex

PREFIX		= /afs/sipb.mit.edu/project/xtrek
XTREKBINDIR	= $(PREFIX)/@sys
XTREKLIBDIR	= $(PREFIX)/Configs
FONTDIR		= /usr/lib/X11/fonts/misc
TEMPDIR		= /tmp
PLANETFILE	= /tmp/.planets
SCOREFILE	= /tmp/scores
MOTDFILE	= $(XTREKBINDIR)/motd
DEFCONFIG	= $(XTREKLIBDIR)/default.config
XTREKOWNER	= dougie
XTREKGROUP	= sipb
XTREK		= xtrek
XTREKD		= xtrekd
XTREKINFO	= xtrekinfo
XTREKFONT	= xtrek

SRCS	= \
	XTextExt.c clock.c colors.c coup.c damage.c data.c \
	death.c dmessage.c enter.c getship.c help.c icon.c \
	inform.c input.c interface.c list.c main.c minisubs.c \
	newwin.c parseutil.c phaser.c planet.c redraw.c resource.c \
	rmove.c rotate.c sintab.c smessage.c statline.c stats.c \
	subdaemon.c teleport.c torp.c trigtab.c util.c war.c \
	xtparse.c

OBJS = \
	XTextExt.o clock.o colors.o coup.o damage.o data.o death.o \
	dmessage.o enter.o getship.o help.o icon.o inform.o input.o \
	interface.o list.o main.o minisubs.o newwin.o parseutil.o \
	phaser.o planet.o redraw.o resource.o rmove.o rotate.o \
	sintab.o smessage.o statline.o stats.o subdaemon.o teleport.o \
	torp.o trigtab.o util.o war.o xtparse.o

HEADERS	= \
	Xlibint.h Xlibos.h data.h decl.h defs.h paths.h planets.h \
	polar.h struct.h xdefs.h xtrekfont.h

all: $(XTREKD) $(XTREK) $(XTREKINFO) $(XTREKFONT).snf

$(XTREKD): $(OBJS)
	$(RM) $@
	$(CC) -o $@ $(OBJS)  $(LDFLAGS)

$(XTREK): xtrek.o
	$(RM) $@
	$(CC) -o $@ xtrek.o  $(LDFLAGS)

$(XTREKINFO): xtrekinfo.o
	$(RM) $@
	$(CC) -o $@ xtrekinfo.o $(LDFLAGS)
relink::
	$(RM) $(XTREKD)
	$(RM) $(XTREK)
	$(MAKE) $(MFLAGS) $(XTREKD)
	$(MAKE) $(MFLAGS) $(XTREK)

clean::
	$(RM) $(XTREKD)
	$(RM) $(XTREK)
	$(RM) *.o xtrek.snf xtparse.c xttoken.c
	$(RM) *.aux *.dvi *.log

install: $(XTREKD) $(XTREK) $(XTREKFONT).snf
	@case '${MFLAGS}' in *[i]*) set +e;; esac; \
	for i in $(XTREKD) $(XTREK); do \
	(set -x; strip $$i; cp $$i $(XTREKBINDIR)); \
	done
	cp $(XTREKFONT).snf $(XTREKBINDIR)
	$(MKFONTDIR) $(XTREKBINDIR)

$(XTREKFONT).snf: $(XTREKFONT).bdf
	$(FC) $(FCFLAGS) $? >$@

paths.h::  dummy
	@echo	"/* Machine Generated: DO NOT EDIT */" > paths.h
	@echo	\#define FONTDIR \"$(FONTDIR)\" >> paths.h
	@echo	\#define LIBDIR \"$(XTREKLIBDIR)\" >> paths.h
	@echo	\#define PROGRAM_NAME \"$(XTREK)\" >> paths.h
	@echo	\#define DIR \"$(TEMPDIR)\" >> paths.h
	@echo	\#define PLFILE \"$(PLANETFILE)\" >> paths.h
	@echo	\#define MOTD \"$(MOTDFILE)\" >> paths.h
	@echo	\#define SCOREFILE \"$(SCOREFILE)\" >> paths.h
	@echo	\#define FONTNAME \"$(XTREKFONT)\" >> paths.h
	@echo	\#define DEFAULT_CONFIG \"$(DEFCONFIG)\" >> paths.h

dummy:

decl.h:   $(SRCS)
	@grep GLOBAL *.c > decl.temp
	@echo	"/* Machine Generated: DO NOT EDIT */" > decl.h
	@sed -e "s/.*GLOBAL/extern/" -e  "s/(.*)/();/" decl.temp >> decl.h
	@$(RM) decl.temp

xtparse.o: xttoken.c xtparse.c

xttoken.c: xttoken.l
	       $(LEX) xttoken.l
	       mv lex.yy.c xttoken.c

xtparse.c: xtparse.y
	       $(YACC) xtparse.y
	       mv y.tab.c xtparse.c
