include ../../Makefile.vars

ALLINCS     = ${DWMDNSINCS} ${DWMAUTHINCS} ${DWMINCS} ${DNETINC}
ALLINCS    += ${NLOHMANNJSONINC}
ALLINCS    += -I../../include -I.
OBJFILES    = DwmDebControlParser.o \
              DwmDebControlLexer.o \
              mkdebcontrol.o
OBJDEPS     = $(OBJFILES:%.o=deps/%_deps)
TARTARGETS  = ${TARDIR}/bin/mkdebcontrol
# LDFLAGS    += -static

mkdebcontrol: ${OBJFILES} ../../lib/.libs/libDwm.la
	${LIBTOOL} --mode=link --tag=CXX ${CXX} ${PTHREADLDFLAGS} ${LDFLAGS} \
         -o $@ $^ ${ZLIB} ${BZLIB} ${BOOSTLIBS} -lpcap -lssl -lcrypto \
	 ${OSLIBS} -static

#  dependency rule
deps/%_deps: %.cc
	@echo "making dependencies for $<"
	@set -e; \
	${CXX} -MM ${CXXFLAGS} ${PTHREADCXXFLAGS} -I../../include -I. -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} ${ALLINCS} -c $< -o $@

DwmDebControlLexer.cc: DwmDebControlLexer.lex DwmDebControlParser.hh
	flex -o$@ $<

DwmDebControlParser.hh: DwmDebControlParser.cc

DwmDebControlParser.cc: DwmDebControlParser.y
	bison -d -o$@ $<

tarprep: ${TARTARGETS}

${TARDIR}/bin/mkdebcontrol: mkdebcontrol
	libtool --mode=install ../../install-sh -s -c -m 555 $< $@

clean:: clean-tarprep
	${LIBTOOL} --mode=clean rm -f mkdebcontrol ${OBJFILES} \
	  DwmDebControlParser.hh DwmDebControlParser.cc DwmDebControlLexer.cc

clean-tarprep::
	rm -f ${TARTARGETS}
