-$(PROGRAM): $(BUILT_SOURCES) $(EXTRA_SOURCES) $(response) $(prog_dir:=/.stamp)
- $(PROGRAM_COMPILE) -target:exe -out:$(base_prog) $(BUILT_SOURCES) $(EXTRA_SOURCES) @$(response)
-ifneq ($(base_prog),$(PROGRAM))
- $(COPY_CMD) $(base_prog) $(PROGRAM)
- test ! -f $(base_prog).mdb || $(COPY_CMD) $(base_prog).mdb $(PROGRAM).mdb
+$(the_lib): $(the_libdir)/.stamp
+
+$(build_lib): $(BUILT_SOURCES) $(EXTRA_SOURCES) $(response) $(build_libdir:=/.stamp)
+ $(PROGRAM_COMPILE) -target:exe -out:$@ $(BUILT_SOURCES) $(EXTRA_SOURCES) @$(response)
+
+ifdef PROGRAM_USE_INTERMEDIATE_FILE
+$(the_lib): $(build_lib)
+ $(Q) cp $(build_lib) $@
+ $(Q) test ! -f $(build_lib).mdb || mv $(build_lib).mdb $@.mdb
+ $(Q) test ! -f $(build_lib:.exe=.pdb) || mv $(build_lib:.exe=.pdb) $(the_lib:.exe=.pdb)