# Eukleides 0.9.0 makefile
# Copyright (c) Christian Obrecht 2000-2002

CC = gcc
CFLAGS = -c -O2
OBJECTS = lex.yy.o parser.tab.o main.o geometry.o drawing.o
LEX = flex
YACC = bison -d
BIN = /usr/local/bin/
MAN = /usr/man/man1/
INFO = /usr/info/
PAPER = --texinfo=@afourpaper
DOC = eukleides.info eukleides.dvi eukleides.ps

eukleides : $(OBJECTS)
	$(CC) -o $@ -lm $(OBJECTS)

.c.o :
	$(CC) $(CFLAGS) $<

lex.yy.c : lexer.l parser.tab.c
	$(LEX) $<

parser.tab.c : parser.y
	$(YACC) $<

man : eukleides.man
	cp -f $< $(MAN)eukleides.1 ; \
	ln -fs $(MAN)eukleides.1 $(MAN)euk2eps.1 ; \
	ln -fs $(MAN)eukleides.1 $(MAN)euk2edit.1

info : eukleides.texi
	makeinfo $<

dvi : eukleides.texi
	cp $< tmp.texi ; \
	texi2dvi $(PAPER) tmp.texi ; \
	mv tmp.dvi eukleides.dvi ; \
	rm -f tmp.*

book : dvi
	dvips -f eukleides.dvi > eukleides.ps

install : eukleides man info
	strip eukleides ; \
	cp -f eukleides $(BIN)eukleides ; \
	chmod +x euk2eps ; \
	cp -f euk2eps $(BIN)euk2eps ; \
	chmod +x euk2edit ; \
	cp -f euk2edit $(BIN)euk2edit ; \
	install-info eukleides.info $(INFO)dir ; \
	cp -f eukleides.info $(INFO)eukleides.info

uninstall :
	rm -f $(BIN)eukleides ; \
	rm -f $(BIN)euk2ps ; \
	rm -f $(BIN)euk2eps ; \
	rm -f $(MAN)eukleides.1 ; \
	rm -f $(MAN)euk2eps.1 ; \
	rm -f $(MAN)euk2edit.1 ; \
	install-info --delete eukleides.info $(INFO)dir ; \
	rm -f $(INFO)eukleides.info

clean :
	rm -f lex.yy.c parser.tab.* *.o eukleides $(DOC)
