ifeq "$(SHELL)" "/bin/sh"
        # because of bash-specific shell expansion used in 'clean':
	SHELL=/bin/bash
endif

clean:
ifeq "$(ALL_DIRS)$(ALL_DIRS)" ""
	@echo "Makefile-maintain clean: ALL_DIRS and/or EXTRA_CLEAN_FILES must be defined"
else
	rm -f $(EXTRA_CLEAN_FILES) $(ALL_DIRS)/*.{a,o,d}
endif

ALL_DEPS=$(ALL_OBJS:.o=.d)

ifneq "$(MAKECMDGOALS)" "clean"
-include $(ALL_DEPS)
endif

depend: $(ALL_DEPS)

%.d: %.cpp
	@set -e; rm -f $@; $(CXX) $(CXXFLAGS) -MM -MT $(<:.cpp=.o) $< > $@
#	g++ $(CXXFLAGS) -MM -MT $(<:.o=.d) $< | sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' > $@
