+CNFS_CMD = ../Scripts/create_element_defs.pl
+
+TIMESTAMP_FILE = conftime.h
+
+LIBGAME_DIR = libgame
+LIBGAME = $(LIBGAME_DIR)/libgame.a
+
+GAME_EM_DIR = game_em
+GAME_EM = $(GAME_EM_DIR)/game_em.a
+
+RNDLIBS = $(LIBGAME) $(GAME_EM)
+
+ICONBASE = windows_icon
+ifeq ($(PLATFORM),cross-win32)
+ICON32X32 = ../graphics/$(ICONBASE)_32x32.bmp
+ICON = $(ICONBASE).o
+endif
+
+
+# -----------------------------------------------------------------------------
+# build targets
+# -----------------------------------------------------------------------------
+
+all: libgame_dir game_em_dir $(PROGNAME)
+
+$(PROGNAME): $(RNDLIBS) $(TIMESTAMP_FILE) $(OBJS) $(ICON)
+ $(CC) $(PROFILING) $(OBJS) $(ICON) $(RNDLIBS) $(LDFLAGS) -o $(PROGNAME)
+
+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)
+
+auto-conf:
+ @for i in $(CNFS); do \
+ echo "$(CNFS_CMD) $$i > $$i"; \
+ $(CNFS_CMD) $$i > $$i; \
+ done
+
+conf_gfx.h: conf_gfx.c
+ @$(MAKE) auto-conf
+
+conf_snd.h: conf_snd.c
+ @$(MAKE) auto-conf
+
+conf_mus.h: conf_mus.c
+ @$(MAKE) auto-conf
+
+$(TIMESTAMP_FILE): $(SRCS) $(LIBGAME) $(GAME_EM)
+ @date '+"[%Y-%m-%d %H:%M]"' \
+ | sed -e 's/^/#define COMPILE_DATE_STRING /' \
+ > $(TIMESTAMP_FILE)
+
+$(ICON):
+ $(BMP2ICO) -transparent $(ICONBASE).ico $(ICON32X32)
+ echo "$(ICONBASE) ICON $(ICONBASE).ico" | $(WINDRES) -o $(ICON)