
# Unix makefile for hexcalc

BINDIR = $$HOME/bin
MANDIR = $$HOME/man

# macros

OBJS=hexcalc.o init.o bltins.o ulpow.o symbol.o yylex.o
CFLAGS=-O
CFLAGS =  -Wall -ggdb -O $(OPTIONS)
YFLAGS=-d

# browser utility used to verify test results
# more(1) or pg(1) are alternatives
BROWSER=more

# implicit rules

.y.o:				# modify default to keep y.tab.c lying around
	$(YACC) $(YFLAGS) $<
	$(CC) $(CFLAGS) -c y.tab.c
	mv y.tab.o $@

# dependencies

hexcalc : $(OBJS)
	$(CC) $(CFLAGS) -o hexcalc $(OBJS)

init.o : hexcalc.h y.tab.h

yylex.o : hexcalc.h y.tab.h

y.tab.h : hexcalc.y

symbol.o : hexcalc.h

bltins.o : hexcalc.h

ulpow.o : hexcalc.h

hexcalc.o : hexcalc.h

test :
	hexcalc <hctest01.txt | $(BROWSER)
	hexcalc <hctest02.txt | $(BROWSER)

lint :
	lint y.tab.c init.c bltins.c ulpow.c symbol.c yylex.c

clean :
	rm -f $(OBJS) y.tab.[ch]

deep-clean:	clean
	rm -f hexcalc

install: hexcalc
#	strip hexcalc
	cp -p hexcalc $(BINDIR)
	cp -p hexcalc.1 $(MANDIR)/man1
