include ../../Makefile.vars

ALLINC          = -I../include ${DWMINC}
OBJFILESNP      = DwmDnsEtcHostsLexer.lo \
		  DwmDnsEtcHostsParser.lo \
		  DwmDnsLabel.lo \
		  DwmDnsLabelPositions.lo \
		  DwmDnsLabelSequence.lo \
		  DwmDnsMessage.lo \
		  DwmDnsMessageHeader.lo \
		  DwmDnsMessageQuestion.lo \
		  DwmDnsNameServer.lo \
		  DwmDnsRRDataA.lo \
		  DwmDnsRRDataAAAA.lo \
		  DwmDnsRRDataDomainName.lo \
		  DwmDnsRRDataSOA.lo \
		  DwmDnsRRDataHINFO.lo \
		  DwmDnsRRDataMINFO.lo \
		  DwmDnsRRDataMX.lo \
		  DwmDnsRRDataTXT.lo \
		  DwmDnsRRDataRP.lo \
		  DwmDnsRRDataKEY.lo \
		  DwmDnsRRDataLOC.lo \
		  DwmDnsRRDataSRV.lo \
		  DwmDnsRRDataCERT.lo \
		  DwmDnsRRDataDS.lo \
		  DwmDnsRRDataSSHFP.lo \
		  DwmDnsRRDataRRSIG.lo \
		  DwmDnsNSECBitmap.lo \
		  DwmDnsRRDataNSEC.lo \
		  DwmDnsRRDataDNSKEY.lo \
		  DwmDnsRRDataDHCID.lo \
		  DwmDnsRRDataNSEC3.lo \
		  DwmDnsRRDataNSEC3PARAM.lo \
		  DwmDnsRRDataTLSA.lo \
		  DwmDnsRRDataSMIMEA.lo \
		  DwmDnsRRDataOPENPGPKEY.lo \
		  DwmDnsRRDataURI.lo \
		  DwmDnsRRDataCAA.lo \
		  DwmDnsRRDataUnknown.lo \
		  DwmDnsResolvConfLexer.lo \
		  DwmDnsResolver.lo \
		  DwmDnsResourceRecord.lo \
		  DwmDnsUtils.lo
OBJFILES        = $(OBJFILESNP:%=../obj/%)
STATIC_OBJFILES = $(OBJFILES:%.lo=%.o)
OBJDEPS         = $(OBJFILESNP:%.lo=deps/%.d)
DWMDNSLIB       = ../lib/libDwmDns.la
shlib_version = $(shell ../../getvers.sh -s)

../lib/libDwmDns.la: ${OBJFILES}
	${LIBTOOL} --mode=link --tag=CXX ${CXX} ${CXXFLAGS} \
	 -o ../lib/libDwmDns.la ${OBJFILES} -rpath ${RPATH} \
	 -version-info ${shlib_version}

#  dependency rule
deps/%.d: %.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' or 'distclean'
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(MAKECMDGOALS),distclean)
-include ${OBJDEPS}
endif
endif

../obj/%.lo ../obj/%.o: %.cc deps/%.d
	${LIBTOOL} --mode=compile --tag=CXX ${CXX} ${CXXFLAGS} ${ALLINC} -c $< -o $@

DwmDnsResolvConfLexer.cc: DwmDnsResolvConfLexer.lex
	flex -o$@ $<

DwmDnsEtcHostsParser.hh: DwmDnsEtcHostsParser.cc

DwmDnsEtcHostsParser.cc: DwmDnsEtcHostsParser.yy
	bison -d -oDwmDnsEtcHostsParser.cc $<

DwmDnsEtcHostsLexer.cc: DwmDnsEtcHostsLexer.lex DwmDnsEtcHostsParser.hh
	flex -f -o$@ $<

tarprep: ${TARDIR}/lib/libDwmDns.la

${TARDIR}/lib/libDwmDns.la: ../lib/libDwmDns.la
	${LIBTOOL} --mode=install ../../install-sh -s -c $< ${TARDIR}/lib/libDwmDns.la

clean:: clean-tarprep
	rm -f ${OBJFILES} ${STATIC_OBJFILES} ../lib/libDwmDns.* ../lib/.libs/*
	rm -f DwmDnsResolvConfLexer.cc DwmDnsEtcHostsLexer.cc DwmDnsEtcHostsParser.cc DwmDnsEtcHostsParser.hh

clean-tarprep::
	${LIBTOOL} --mode=clean rm -f ${TARDIR}/lib/libDwmDns.la
