
CC=gcc
CFLAGS= -Wall
AR=ar

all: driver.c iterator.o
	$(CC) $(CFLAGS) -o iterate driver.c iterator.o

iterator.o: iterator.c iterator.h
	$(CC) $(CFLAGS) -c iterator.c -o iterator.o

libiterator.a: iterator.o
	$(AR) -q libiterator.a iterator.o

libiterator.so: iterator.o
	$(CC) -shared -Wl,-soname,libiterator.so.1 \
                               -o libiterator.so.1.0.1 iterator.o -lc

html: driver.c iterator.c iterator.h
	touch code.html
	rm code.html
	echo '<html><head><title>Iteration</title></head><body>' >> code.html
	echo '<h1>iterator.c</h1><pre>'                          >> code.html
	cat iterator.c >> code.html
	echo '</pre><h1>iterator.h</h1><pre>'                    >> code.html
	cat iterator.h >> code.html
	echo '</pre><h1>driver.c</h1><pre>'                      >> code.html
	cat driver.c >> code.html
	echo '</pre><h1>Makefile</h1><pre>'                      >> code.html
	cat Makefile | \
              sed -e 's/\&/\&amp;/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g' \
              >> code.html
	echo '</pre></body></html>'                              >> code.html

clean:
	rm iterate iterator.o code.html
