include ../../Makefile.vars

LDFLAGS  += -g -static
OBJFILES = TestDnsEtcHosts.o \
	   TestDnsLabelSequence.o \
	   TestDnsMessage.o \
	   TestDnsMessageHeader.o \
	   TestDnsMessageQuestion.o \
	   TestDnsNameServer.o \
	   TestDnsResolvConf.o \
	   TestDnsResolver.o \
	   TestDnsResourceRecord.o
OBJDEPS  = $(OBJFILES:%.o=deps/%_deps)
TESTS    = $(OBJFILES:%.o=%)
ALLINC   = -I../include ${DWMINC}

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} ${PTHREADCXXFLAGS} ${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
	${CXX} ${CXXFLAGS} ${PTHREADCXXFLAGS} ${ALLINC} -c $<

%: %.o ../lib/libDwmDns.la
	${LIBTOOL} --mode=link --tag=CXX ${CXX} ${LDFLAGS} -o $@ $^ ${DWMLIB} ${PTHREADLDFLAGS}

../lib/libDwmDns.la::
	@${MAKE} -s -C ../src

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