#####################################################
##         QSIEVE 2.94 - MAKEFILE                  ##
##     2003-10 by Thorsten Reinecke                ##
#####################################################
# please modify the Makefile in the main directory  #
# for proper configuration...                       #
#####################################################

DEPS = Makefile ../Makefile

.PHONY : all clean debug-clean distclean

all: $(PROGRAMS)

-include qsieve.d server.d net-client.d file-client.d transfer-client.d $(wildcard *.d)

qsieve: qsieve.d $(DEPS)
	$(CXX) -o qsieve qsieve.cc $(ALL_FLAGS)

qsieve.d:
	@echo -n "$@ "> $@
	@$(CXX) -M qsieve.cc $(ALL_FLAGS_NO_LD) >> $@ || rm -f $@

server: server.d $(DEPS)
	$(CXX) -o server qsieve.cc $(SERVER) $(ALL_FLAGS) $(PTHREAD)

server.d:
	@echo -n "$@ "> $@
	$(CXX) -M qsieve.cc $(SERVER) $(ALL_FLAGS_NO_LD) >> $@ || rm -f $@

net-client: net-client.d $(DEPS)
	$(CXX) -o net-client qsieve.cc -DUSE_NETWORK -D_REENTRANT $(CLIENT) $(ALL_FLAGS) $(PTHREAD)

net-client.d:
	@echo -n "$@ "> $@
	$(CXX) -M qsieve.cc -DUSE_NETWORK -D_REENTRANT $(CLIENT) $(ALL_FLAGS_NO_LD) >> $@ || rm -f $@

file-client: file-client.d $(DEPS)
	$(CXX) -o file-client qsieve.cc $(CLIENT) $(ALL_FLAGS)

file-client.d:
	@echo -n "$@ "> $@
	$(CXX) -M qsieve.cc $(CLIENT) $(ALL_FLAGS_NO_LD) >> $@ || rm -f $@

transfer-client: transfer-client.d $(DEPS)
	$(CXX) -o transfer-client transfer-client.cc $(ALL_FLAGS)

transfer-client.d:
	@echo -n "$@ "> $@
	$(CXX) -M transfer-client.cc $(ALL_FLAGS_NO_LD) >> $@ || rm -f $@

clean:
	rm -f *.o $(PROGRAMS)

debug-clean:
	rm -f *.bb *.bbg *.out *.gcov *.da core

distclean: clean debug-clean
	rm -f *.d *.o *.dat *~ factorizations.txt qsieve-fc.param*
	rm -f qsieve file-client server net-client transfer-client
	rm -f qsieve@* file-client@* server@* net-client@* transfer-client@*
