#
# makefile for pstokenize
#

FP_IS_IEEE = -DFP_IS_IEEE=1		# Non-zero if CPU uses IEEE math
HIGH_BYTE_FIRST = -DHIGH_BYTE_FIRST=1	# Non-zero if CPU is "big-endian"
#DEBUG = -g -DDEBUG=1
DEBUG = -O
SOURCES = ./sources/

CFLAGS = -c $(FP_IS_IEEE) $(HIGH_BYTE_FIRST) $(DEBUG)

OBJECTS = \
	pstokenize.o \
	parser.o \
	encoding.o \
	mapname.o

SOURCEFILES = \
	$(SOURCES)pstokenize.c \
	$(SOURCES)parser.l \
	$(SOURCES)encoding.c \
	$(SOURCES)mapname.c \
	$(SOURCES)systemnames.h \
	$(SOURCES)encoding.h \
	$(SOURCES)tokens.h

LIBRARIES = \
	-ll

pstokenize : $(OBJECTS)
	cc -o $@ $(OBJECTS) $(LIBRARIES)
	@echo Done.

pstokenize.o : $(SOURCES)pstokenize.c $(SOURCES)encoding.h
	cc $(CFLAGS) $(SOURCES)pstokenize.c

parser.o : $(SOURCES)parser.l $(SOURCES)encoding.h $(SOURCES)tokens.h
	lex $(SOURCES)parser.l
	cc $(CFLAGS) -o $@ -I$(SOURCES) lex.yy.c

encoding.o : $(SOURCES)encoding.c $(SOURCES)encoding.h $(SOURCES)tokens.h
	cc $(CFLAGS) $(SOURCES)encoding.c

mapname.o : $(SOURCES)systemnames.h
	cc $(CFLAGS) $(SOURCES)mapname.c

pstokenize.1.ps : man1/pstokenize.1
	psroff -t -man $? > $@

clean :
	rm -f ./*.o pstokenize lex.yy.c make.log pstokenize.1.ps

listing : $(SOURCEFILES)
	yapp -. c $?
	@touch listing

install : pstokenize pstokenize.1
	/bin/cp -p pstokenize $(HOME)/bin
	/bin/cp -p pstokenize.1 $(HOME)/man/man1
