CC=gcc
YACC=yacc -d
DEBUG=-g
WARNS=-Wall
OPTIMISATION=-O6
SYSTEM=-DUNIX -DHAS_UNISTD -DHAS_STDLIB
INCLUDES=-I.
READLINELIB=readline/libreadline.a
CFLAGS=-c $(INCLUDES) $(OPTIMISATION) $(DEBUG) $(WARNS) $(SYSTEM)
OBJECTS=toplev.o line.o file.o describe.o objects.o lex.o parse.o custom.o noughts.o quads.o

.y.c:
	$(YACC) $<
	mv -f y.tab.c $*.c
	mv -f y.tab.h $*.h

.y.h:
	$(YACC) $<
	mv -f y.tab.c $*.c
	mv -f y.tab.h $*.h

all:	napoleon napoleon.0

clean:
	rm -f *.o *~ lang.c lang.h

backup:
	make clean
	find readline -print >../foo
	echo napoleon/napoleon >>../foo
	(cd ..;tar -cvf napoleon.tar +exclude-from foo napoleon/* napoleon/docs/*;rm -f napoleon.tar.Z;compress napoleon.tar)
	rm -f ../foo

shar:
	(make clean;cd ..;rm -f napoleon.shar;foo=napoleon/*;echo $$foo>foo;shar napoleon `sed -e 's.napoleon/readline..' foo` >napoleon.shar;rm foo)

napoleon:	$(OBJECTS) lang.o
	$(CC) -o napoleon $(OBJECTS) lang.o $(READLINELIB) -ltermcap

lang.o:	lang.c
	$(CC) -c $(INCLUDES) $(OPTIMISATION) $(DEBUG) $(SYSTEM) lang.c

$(OBJECTS):	adv.h

lang.o:		adv.h

parse.o lex.o custom.o:	lang.h

napoleon.0:	napoleon.nr
	nroff -mandoc napoleon.nr>napoleon.0
