include ../../Makefile.vars

OBJFILES = TestAlertBowl.o \
	   TestAlertOrigin.o \
	   TestConfig.o \
	   TestDiskAlert.o \
	   TestRPCAlert.o \
	   TestRPCProgramId.o \
	   TestSMTPAlert.o \
	   TestTcp4ConnAlert.o \
	   TestUPSAlert.o \
	   TestUtils.o \
	   TestWebAlert.o
OBJDEPS	 = $(OBJFILES:%.o=deps/%_deps)
TESTS	 = $(OBJFILES:%.o=%)
CXXFLAGS += -g
LDFLAGS  += -g
ALLINC   = ${DWMDNSINCS} ${DWMAUTHINCS} ${DWMINCS} ${DNETINC}
ALLINC   += ${NLOHMANNJSONINC} -I../include -I.
ALLLIBS  = ../../classes/lib/libMcrover.a ${DWMDNSLIBS} ${DWMAUTHLIBS}
ALLLIBS   += ${DWMLIBS} ${LIBDNET} ${UPSCLIENTLIB}

all: ${TESTS}

runtests: all
	@ for tp in ${TESTS} ; do \
		printf "%-36s " $$tp ; \
		out=`./$$tp` ; \
		if [ $$? -eq 0 ]; then \
		  printf "%25s\n" "$$out" ; \
		else \
		  printf "\n%s" "$$out" ; \
		fi ; \
	done

#  dependency rule
deps/%_deps: %.cc 
	@echo "making dependencies for $<"
	@set -e; \
	${CXX} -MM ${CXXFLAGS} ${ALLINC} -c $< | \
	 sed 's/\($*\)\.o[ :]*/\1.o $(@D)\/$(@F) : /g' > $@ ; [ -s $@ ] || \
	 rm -f $@

#  only include dependency makefiles if target is not 'clean'
ifneq ($(MAKECMDGOALS),clean)
-include ${OBJDEPS}
endif

%.o: %.cc deps/%_deps
	${CXX} ${CXXFLAGS} ${PTHREADCXXFLAGS} ${ALLINC} -c $<

%: %.o ../lib/libMcrover.a
	${CXX} ${LDFLAGS} -o $@ $< ${ALLLIBS}

../lib/libMcrover.a::
	${MAKE} -C ../src

clean:
	${LIBTOOL} --mode=clean rm -f ${TESTS} ${OBJFILES}
