From 67d5e633f17cbce91545ad66036894b7f95a4cc7 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Mon, 9 Mar 2020 17:26:11 -0500 Subject: [PATCH] nmake: Fix caching on Windows when compiling without a manifest. --- Nmakefile | 14 ++++++++++++-- factor.exe.manifest => factor.exe.manifest.in | 0 2 files changed, 12 insertions(+), 2 deletions(-) rename factor.exe.manifest => factor.exe.manifest.in (100%) diff --git a/Nmakefile b/Nmakefile index f68c821101..065d24a757 100644 --- a/Nmakefile +++ b/Nmakefile @@ -150,8 +150,15 @@ factor.com: $(EXE_OBJS) $(DLL_OBJS) factor.exe: $(EXE_OBJS) $(DLL_OBJS) link $(LINK_FLAGS) /out:factor.exe /SUBSYSTEM:$(SUBSYSTEM_EXE_FLAGS) $(EXE_OBJS) $(DLL_OBJS) +# If we compile factor.exe, run mt.exe, and run factor.exe, +# then Windows caches the manifest. Even on a recompile without applying +# the mt.exe tool, if the factor.exe.manifest file is present, the manifest +# is applied. To avoid this, we delete the .manifest file on clean +# and copy it from a reference file on compilation and mt.exe. +# factor.exe.manifest: factor.exe - mt -manifest factor.exe.manifest -outputresource:factor.exe;#1 + copy factor.exe.manifest.in factor.exe.manifest + mt -manifest factor.exe.manifest -outputresource:"factor.exe;#1" all: factor.com factor.exe factor.dll.lib libfactor-ffi-test.dll @@ -184,12 +191,15 @@ clean: if exist factor.lib del factor.lib if exist factor.com del factor.com if exist factor.exe del factor.exe + if exist factor.exe.manifest del factor.exe.manifest + if exist factor.exp del factor.exp if exist factor.dll del factor.dll if exist factor.dll.lib del factor.dll.lib + if exist factor.dll.exp del factor.dll.exp if exist libfactor-ffi-test.dll del libfactor-ffi-test.dll if exist libfactor-ffi-test.exp del libfactor-ffi-test.exp if exist libfactor-ffi-test.lib del libfactor-ffi-test.lib -.PHONY: all default x86-32 x86-64 x86-32-vista x86-64-vista clean +.PHONY: all default x86-32 x86-64 x86-32-vista x86-64-vista clean factor.exe.manifest .SUFFIXES: .rs diff --git a/factor.exe.manifest b/factor.exe.manifest.in similarity index 100% rename from factor.exe.manifest rename to factor.exe.manifest.in -- 2.34.1