+graphics_dir:
+ @test -f $(GRAPHICS_DIR)/Makefile && $(MAKE) -C $(GRAPHICS_DIR) || true
+
+clean-obj:
+ $(MAKE) -C $(LIBGAME_DIR) clean
+ $(MAKE) -C $(GAME_BD_DIR) clean
+ $(MAKE) -C $(GAME_EM_DIR) clean
+ $(MAKE) -C $(GAME_SP_DIR) clean
+ $(MAKE) -C $(GAME_MM_DIR) clean
+ $(RM) $(OBJS)
+ $(RM) $(RNDLIBS)
+
+clean-ico:
+ $(RM) $(ICONBASE).ico
+ $(RM) $(ICONBASE).o
+
+clean-bin:
+ $(RM) $(PROGNAME)
+ $(RM) $(PROGNAME).exe
+ $(RM) $(PROGNAME).js
+ $(RM) $(PROGNAME).wasm
+ $(RM) $(PROGNAME).data
+
+clean: clean-obj clean-ico clean-bin
+
+clean-git: clean auto-conf-clean
+ @$(MAKE) -C $(GRAPHICS_DIR) clean
+
+dist-clean: clean-obj clean-ico
+
+
+# -----------------------------------------------------------------------------
+# run and test targets
+# -----------------------------------------------------------------------------
+
+run:
+ cd .. && ./$(PROGBASE) --verbose
+
+gdb:
+ cd .. && $(DEBUGGER) $(PROGBASE)
+
+valgrind:
+ cd .. && valgrind -v --leak-check=yes ./$(PROGBASE) 2> valgrind.out
+
+
+# -----------------------------------------------------------------------------
+# development only
+# -----------------------------------------------------------------------------
+
+tags:
+ $(ETAGS) *.[ch] $(LIBGAME_DIR)/*.[ch] $(GAME_BD_DIR)/*.[ch] $(GAME_EM_DIR)/*.[ch] $(GAME_SP_DIR)/*.[ch] $(GAME_MM_DIR)/*.[ch]
+
+depend:
+ $(MAKE) -C $(LIBGAME_DIR) depend
+ $(MAKE) -C $(GAME_BD_DIR) depend
+ $(MAKE) -C $(GAME_EM_DIR) depend
+ $(MAKE) -C $(GAME_SP_DIR) depend
+ $(MAKE) -C $(GAME_MM_DIR) depend
+ for i in $(SRCS); do $(CPP) $(CFLAGS) -M $$i; done > .depend
+
+depend-clean:
+ $(MAKE) -C $(LIBGAME_DIR) depend-clean
+ $(MAKE) -C $(GAME_BD_DIR) depend-clean
+ $(MAKE) -C $(GAME_EM_DIR) depend-clean
+ $(MAKE) -C $(GAME_SP_DIR) depend-clean
+ $(MAKE) -C $(GAME_MM_DIR) depend-clean
+ $(RM) .depend