all: dmfs

GCC_FLAGS = -Wall -Wextra -Wconversion -Wsign-conversion -O2 -m64

dmfs: dmfs.o search.o sieve.o gwnum.a
	gcc dmfs.o search.o sieve.o gwnum.a -lm -lgmp -ldl -lpthread -lstdc++ -o dmfs

dmfs.o: dmfs.c search.h sieve.h
	gcc $(GCC_FLAGS) -c dmfs.c

search.o: search.c sieve.h
	gcc $(GCC_FLAGS) -c search.c

sieve.o: sieve.c sieve.h
	gcc $(GCC_FLAGS) -c sieve.c

clean:
	rm -f *.o dmfs

