NTL_DIR = 
GMP_DIR = 

CC = g++
CFLAGS = -O2 -pipe

HEADERS = pp.h
EXES = pptest
SOURCES = $(patsubst %.h,%.cc,$(HEADERS)) $(patsubst %,%.cc,$(EXES))
OBJECTS = $(patsubst %.cc,%.o,$(SOURCES))

inclpre = $(if $(NTL_DIR),-I$(NTL_DIR)/include) \
$(if $(GMP_DIR),-I$(GMP_DIR)/include)
libpre = $(if $(NTL_DIR),-L$(NTL_DIR)/lib) $(if $(GMP_DIR),-L$(GMP_DIR)/lib)
libpost = -lntl -lgmp -lm

test: pptest
	./pptest

pptest: pp.o

$(patsubst %.h,%.o,$(HEADERS)): %.o: %.h

$(EXES): %: %.o
	$(CC) $(libpre) $^ $(libpost) -o $@ $(CFLAGS)

$(OBJECTS): %.o: %.cc
	$(CC) -c $(inclpre) $< -o $@ $(CFLAGS)

.PHONY: clean test

clean:
	-rm -f $(OBJECTS) $(EXES)
