# Makefile for counter

##############################################
############# Configurable items #############

## for pbmplus or netpbm respectively
# these not currently used--all digits preconverted to pgm
#GIFTOPNM=giftoppm
#GIFTOPNM=giftopnm

CFLAGS=-Wall -O2 -Winline

#LIBS= -ldbm

# end of configurable options
##############################################

SOURCES=counter.c fontlist.c counter.h gifencode.c gifencode.h \
	image2c.c image2c.pl digits2c.c digits2c.pl c2raw Makefile
EXTRA=README doc images scripts

IMAGES=digital.c digital.h odometer.c odometer.h jerk.c jerk.h
SCRATCH=*.o core *~ a.out $(IMAGES) *.tar.gz digits2c image2c
EXECS=counter

counter: counter.o fontlist.o odometer.o digital.o jerk.o gifencode.o
	rm -f counter
	$(CC) -o counter $(CFLAGS) counter.o gifencode.o fontlist.o odometer.o digital.o jerk.o $(LIBS)

counter.o: odometer.h digital.h jerk.h counter.h

# the perl version was too slow...shoulda done it in C first
#  WARNING: digits2c.c takes different args than digits2c.pl
digits2c: digits2c.c
	$(CC) -o digits2c $(CFLAGS) digits2c.c
image2c: image2c.c
	$(CC) -o image2c $(CFLAGS) image2c.c

# dependancies on images left off of these rules because
#   1) too long & ugly
#   2) don't want to rebuild .c files if perl is not online
odometer.c odometer.h: digits2c
	./digits2c -n 6 images/odometer%d.pgm odometer
digital.c digital.h: digits2c
#	digits2c images/digital%d.gif digital "$(GIFTOPNM) %s | ppmtopgm"
	./digits2c images/digital%d.pgm digital

jerk.c jerk.h: image2c images/jerk.gif
	./image2c images/jerk.gif jerk
	

tar counter.tar.gz: $(SOURCES)  $(EXTRA)
	tar cf - $(EXTRA) $(SOURCES) | gzip -9 > counter.tar.gz

clean:
	rm -f $(SCRATCH)

clobber: clean
	rm -f $(EXECS)

checkin:
	ci $(OPTS) -l $(SOURCES)

checkout:
	co -l $(SOURCES)


sources: $(SOURCES)


# ------- Automatically generated dependancies -------
counter.o: counter.h gifencode.h
fontlist.o: counter.h odometer.h digital.h
gifencode.o: gifencode.h
