include ../Makefile.vars

ALLINC   = -I../include ${DWMINC} ${CRYPTOPPINC}
SRCFILES = DwmAESGCMInBuffer.cc \
	   DwmAESGCMOutBuffer.cc \
	   DwmAuthCountedString.cc \
	   DwmAuthECDHAgreement.cc \
	   DwmAuthEd25519Keys.cc \
	   DwmAuthPeerAuthenticator.cc \
	   DwmAuthPublicKeysFile.cc \
	   DwmAuthSymCrypto.cc \
	   DwmAuthSymCryptoMessage.cc \
	   DwmAuth.cc \
	   DwmAuthUtils.cc \
	   DwmXChaCha20Poly1305InBuffer.cc \
	   DwmXChaCha20Poly1305OutBuffer.cc
#	   DwmAuthPKCrypto.cc
shlib_version = $(shell ../getvers.sh -s)
OBJFILES = $(SRCFILES:%.cc=../obj/%.o)
SHARED_OBJFILES = $(OBJFILES:%.o=%.lo)
OBJDEPS  = $(SRCFILES:%.cc=deps/%_deps)

all:: ../lib/libDwmAuth.la

../lib/libDwmAuth.la: ${SHARED_OBJFILES}
	${LIBTOOL} --tag=CXX --mode=link ${CXX} -o $@ $^ -rpath ${INSTALLPREFIX}/lib ${ZLIB} ${BZLIB} ${PCAPLIB} ${KVMLIB} -version-info ${shlib_version}

../lib/libDwmAuth${SHARED_LIB_EXT}: ${OBJFILES}
	${CXX} ${LD_SHARED_FLAGS} -o $@ $^

#  dependency rule
deps/%_deps: %.cc
	@echo "making dependencies for $<"
	@set -e; \
	${CXX} -MM ${CXXFLAGS} ${PTHREADCXXFLAGS} ${ALLINC} -c $< | \
	 sed 's/\($*\)\.o[ :]*/\.\.\/obj\/\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/%_deps
	${LIBTOOL} --mode=compile --tag=CXX ${CXX} ${CXXFLAGS} ${PTHREADCXXFLAGS} ${ALLINC} -c $< -o $@

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

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

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

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

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

distclean:: clean
	rm -f ${OBJDEPS}

