-$(PROGRAM): $(makefrag) $(response) $(stampfile)
- $(CSCOMPILE) /target:exe /out:$@ $(BUILT_SOURCES) @$(response)
+$(PROGRAM): $(BUILT_SOURCES) $(EXTRA_SOURCES) $(response)
+ $(PROGRAM_COMPILE) /target:exe /out:$(base_prog) $(BUILT_SOURCES) $(EXTRA_SOURCES) @$(response)
+ifneq ($(base_prog),$(PROGRAM))
+ mv $(base_prog) $(PROGRAM)
+ test ! -f $(base_prog).mdb || mv $(base_prog).mdb $(PROGRAM).mdb
+endif
+
+ifdef PROGRAM_config
+ifneq ($(base_prog_config),$(PROGRAM_config))
+executable_CLEAN_FILES += $(PROGRAM_config)
+$(PROGRAM_config): $(base_prog_config)
+ cp $(base_prog_config) $(PROGRAM_config)
+endif
+endif