# uncomment next line if you installed NTL with gf2x
#LIBGF2X = -lgf2x
# uncomment next line if you installed NTL with gmp
#LIBGMP = -lgmp

LINKOPT = -lntl $(LIBGF2X) $(LIBGMP)

OPTI = -O3
CPP = g++
CC = gcc
CPPFLAGS = $(OPTI) $(DEBUG) $(LINKOPT)
CCFLAGS = $(OPTI) $(DEBUG)

TARGETS = minipoly_mt19937 minipoly_well19937 jump_mt19937 jump_well19937 \
 pm-jump-mt19937

all:$(TARGETS)

minipoly_mt19937:minipoly_mt19937.c
	${CPP} ${CPPFLAGS} -o $@ $<

minipoly_well19937:minipoly_well19937.c
	${CPP} ${CPPFLAGS} -o $@ $<

jump_mt19937:jump_mt19937.c clist_mt19937.txt
	${CC} ${CCFLAGS} -o $@ jump_mt19937.c

jump_well19937:jump_well19937.c clist_well19937.txt
	${CC} ${CCFLAGS} -o $@ jump_well19937.c

pm-jump-mt19937:pm-jump-mt19937.c clist_mt19937.txt
	${CPP} ${CPPFLAGS} -o $@ pm-jump-mt19937.c

clist_mt19937.txt:minipoly_mt19937
	./$< > $@

clist_well19937.txt:minipoly_well19937
	./$< > $@

.c.o:
	${CC} ${CCFLAGS} -c $<

clean:
	rm -rf *.o *~ $(TARGETS)
