+GAME_MM_DIR = game_mm
+GAME_MM = $(GAME_MM_DIR)/game_mm.a
+
+RNDLIBS = $(LIBGAME) $(GAME_EM) $(GAME_SP) $(GAME_MM)
+AUTOCONF = conf_gfx.h conf_snd.h conf_mus.h
+
+ICONBASE = windows_icon
+ICON_BASEPATH = ../Special/Icons/windows_icons
+
+ifeq ($(PLATFORM),cross-win32)
+ICON_PATH = $(ICON_BASEPATH)/default
+ICON = $(ICONBASE).o
+endif
+
+GRAPHICS_DIR = ../graphics
+
+
+# -----------------------------------------------------------------------------
+# build targets
+# -----------------------------------------------------------------------------
+
+all: $(AUTOCONF) libgame_dir game_em_dir game_sp_dir game_mm_dir $(PROGNAME) graphics_dir
+
+$(PROGNAME): $(RNDLIBS) $(TIMESTAMP_FILE) $(OBJS) $(ICON)
+ $(CC) $(PROFILING) $(OBJS) $(ICON) $(RNDLIBS) $(LDFLAGS) -o $(PROGNAME)
+ifdef BUILD_DIST
+ strip $(PROGNAME)
+endif
+
+libgame_dir:
+ @$(MAKE) -C $(LIBGAME_DIR)
+$(LIBGAME):
+ @$(MAKE) -C $(LIBGAME_DIR)
+
+game_em_dir:
+ @$(MAKE) -C $(GAME_EM_DIR)
+$(GAME_EM):
+ @$(MAKE) -C $(GAME_EM_DIR)
+
+game_sp_dir:
+ @$(MAKE) -C $(GAME_SP_DIR)
+$(GAME_SP):
+ @$(MAKE) -C $(GAME_SP_DIR)
+
+game_mm_dir:
+ @$(MAKE) -C $(GAME_MM_DIR)
+$(GAME_MM):
+ @$(MAKE) -C $(GAME_MM_DIR)
+
+auto-conf:
+ @for i in $(CNFS); do \
+ echo "$(CNFS_CMD) $$i > $$i"; \
+ $(CNFS_CMD) $$i > $$i; \
+ done
+
+auto-conf-clean:
+ @for i in $(CNFS); do \
+ echo "$(RM) $$i"; \
+ $(RM) $$i; \
+ done
+
+conf_gfx.h: conf_gfx.c $(CNFS_CMD)
+ @$(MAKE) auto-conf
+
+conf_snd.h: conf_snd.c $(CNFS_CMD)
+ @$(MAKE) auto-conf
+
+conf_mus.h: conf_mus.c $(CNFS_CMD)
+ @$(MAKE) auto-conf
+
+$(TIMESTAMP_FILE): $(SRCS) $(RNDLIBS)
+ @echo '#define SOURCE_DATE_STRING "$(SOURCE_DATE_STRING)"' \
+ > $(TIMESTAMP_FILE)
+
+$(ICON):
+# $(CONVERT) $(ICON32X32) $(CONVERT_ICON_ARGS) $(ICONBASE).ico
+ $(CONVERT) $(ICON_PATH)/*.png $(CONVERT_ICON_ARGS) $(ICONBASE).ico
+ echo "$(ICONBASE) ICON $(ICONBASE).ico" | $(WINDRES) -o $(ICON)