include ../../Makefile.vars

LDFLAGS  += -Wl,-rpath ${DWMDIR}/lib
ALLINCS  = -I../../classes/include ${DWMDNSINCS} ${DWMINCS} ${DNETINC} ${NLOHMANNJSONINC}
ALLLIBS  = ${LIBCURSESW} ${DWMLIBS} ${LIBDNET} ${UPSCLIENTLIB}
CXXFLAGS += -D_XOPEN_SOURCE_EXTENDED
OBJFILES = mcrover.o \
	   DwmMcroverAlertsWindow.o \
	   DwmMcroverAlfred1.o \
	   DwmMcroverAsciiArt.o \
	   DwmMcroverBeastie1.o \
	   DwmMcroverCalvin1.o \
	   DwmMcroverColorPairs.o \
	   DwmMcroverCows1.o \
	   DwmMcroverDilbert1.o \
	   DwmMcroverDwm1.o \
	   DwmMcroverFelix1.o \
	   DwmMcroverKermit1.o \
	   DwmMcroverSnoopy1.o \
	   DwmMcroverSnoopy2.o \
	   DwmMcroverSnoopyLucy1.o \
	   DwmMcroverStatusWindow.o \
	   DwmMcroverTigger1.o \
	   DwmMcroverTitleWindow.o
OBJDEPS  = $(OBJFILES:%.o=deps/%_deps)
ifeq ("${OSNAME}", "freebsd")
LDFLAGS  = -static
endif

mcrover: ${OBJFILES} ../../classes/lib/libMcrover.a
	${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ $^ ${ALLLIBS}

TARTARGETS = ${TARDIR}/bin/mcrover

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

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

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

tarprep: ${TARTARGETS}

${TARDIR}/bin/mcrover: mcrover
	../../install-sh -s -c -m 555 $< $@

clean: clean-tarprep
	rm -f mcrover ${OBJFILES}

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

distclean: clean
	rm -f ${OBJDEPS}
