From: Doug Coleman Date: Mon, 9 Mar 2020 22:26:11 +0000 (-0500) Subject: nmake: Fix caching on Windows when compiling without a manifest. X-Git-Tag: 0.99~3379 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=67d5e633f17cbce91545ad66036894b7f95a4cc7 nmake: Fix caching on Windows when compiling without a manifest. --- 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 deleted file mode 100644 index 42ade3e48d..0000000000 --- a/factor.exe.manifest +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - True/PM - - - diff --git a/factor.exe.manifest.in b/factor.exe.manifest.in new file mode 100644 index 0000000000..42ade3e48d --- /dev/null +++ b/factor.exe.manifest.in @@ -0,0 +1,12 @@ + + + + + + True/PM + + +