INSTALL_DIR = /usr/local
INCLUDE_DIR = $(INSTALL_DIR)/include
LIB_DIR = $(INSTALL_DIR)/lib
LIBRARY_NAME = template
LIBRARY_VERSION = 1.5

DYNAMIC_LIBRARY = lib$(LIBRARY_NAME).so.$(LIBRARY_VERSION)
DYNAMIC_LIBRARY_LINK = lib$(LIBRARY_NAME).so
STATIC_LIBRARY = lib$(LIBRARY_NAME).a

DIST_DIR = lib$(LIBRARY_NAME)-$(LIBRARY_VERSION)
DIST_FILE = $(DIST_DIR).tar.gz

DOC_INTERMEDIATE = template-engine.dvi
DOC_FILE = template-engine.pdf

CFLAGS = -Wall -fpic

all: $(STATIC_LIBRARY) test 

$(STATIC_LIBRARY): template.o tree.o
	ar rc $(STATIC_LIBRARY) template.o tree.o

$(DOC_INTERMEDIATE): template-engine.tex
	latex template-engine.tex

$(DOC_FILE): $(DOC_INTERMEDIATE)
	dvipdfm template-engine

test: test.o $(STATIC_LIBRARY)
	gcc test.o -L. -ltemplate -o $@

templatetest: 
	gcc -ggdb main.o template.o tree.o -o $@

clean:
	rm -f *.o *~ templatetest $(DYNAMIC_LIBRARY) $(STATIC_LIBRARY)

install: all
	install -m 644 $(STATIC_LIBRARY) $(LIB_DIR)
	install -m 644 template.h $(INCLUDE_DIR)
	install -m 644 tree.h $(INCLUDE_DIR)

dist: $(STATIC_LIBRARY) $(DOC_FILE)
	install -d $(DIST_DIR)
	install -m 644 $(DOC_FILE) $(DIST_DIR)
	install -m 644 Makefile $(DIST_DIR)
	install -m 644 CHANGELOG $(DIST_DIR)
	install -m 644 *.c $(DIST_DIR)
	install -m 644 *.h $(DIST_DIR)
	install -m 644 *.tpl $(DIST_DIR)
	install -m 644 *.pas $(DIST_DIR)
	tar czf $(DIST_FILE) $(DIST_DIR)
	rm -rf $(DIST_DIR)
