X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=blobdiff_plain;f=Nmakefile;h=065d24a757cc00a5710bf97b574b96c2e45e9b48;hp=441c7875e185c46007357c63e6371b7cd0b8183a;hb=HEAD;hpb=044f7bbe11db26fc98580d1f6a84af35b04740b4 diff --git a/Nmakefile b/Nmakefile index 441c7875e1..f87fb76d2d 100644 --- a/Nmakefile +++ b/Nmakefile @@ -1,4 +1,4 @@ -VERSION = 0.99 +VERSION = 0.100 # Crazy hack to do shell commands # We do it in Nmakefile because that way we don't have to invoke build through build.cmd @@ -8,21 +8,21 @@ VERSION = 0.99 !IF [git describe --all > git-describe.tmp] == 0 GIT_DESCRIBE = \ !INCLUDE -!IF [rm git-describe.tmp] == 0 +!IF [del git-describe.tmp] == 0 !ENDIF !ENDIF !IF [git rev-parse HEAD > git-id.tmp] == 0 GIT_ID = \ !INCLUDE -!IF [rm git-id.tmp] == 0 +!IF [del git-id.tmp] == 0 !ENDIF !ENDIF !IF [git rev-parse --abbrev-ref HEAD > git-branch.tmp] == 0 GIT_BRANCH = \ !INCLUDE -!IF [rm git-branch.tmp] == 0 +!IF [del git-branch.tmp] == 0 !ENDIF !ENDIF @@ -58,6 +58,13 @@ CL_FLAGS = $(CL_FLAGS) $(CL_FLAGS_VISTA) PLAF_DLL_OBJS = vm\os-windows-x86.64.obj vm\cpu-x86.obj SUBSYSTEM_COM_FLAGS = console SUBSYSTEM_EXE_FLAGS = windows + +!ELSE +CL_FLAGS = $(CL_FLAGS) $(CL_FLAGS_VISTA) +PLAF_DLL_OBJS = vm\os-windows-x86.64.obj vm\cpu-x86.obj +SUBSYSTEM_COM_FLAGS = console +SUBSYSTEM_EXE_FLAGS = windows + !ENDIF !IF DEFINED(DEBUG) @@ -66,7 +73,7 @@ CL_FLAGS = $(CL_FLAGS) /Zi /DFACTOR_DEBUG !ENDIF !IF DEFINED(REPRODUCIBLE) -CL_FLAGS = $(CL_FLAGS) /DFACTOR_REPRODUCIBLE=1 +CL_FLAGS = $(CL_FLAGS) /DFACTOR_REPRODUCIBLE !ENDIF ML_FLAGS = /nologo /safeseh @@ -143,6 +150,16 @@ 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 + 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 !ENDIF @@ -174,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