]> gitweb.factorcode.org Git - factor.git/blobdiff - Nmakefile
vm: implement frame-based SEH for 64-bit Windows
[factor.git] / Nmakefile
index 7349deae23b27727f089c75bdd74060b565342f1..b85197a776dc98a1d8cb947749d162c9bbda502e 100755 (executable)
--- a/Nmakefile
+++ b/Nmakefile
@@ -1,14 +1,17 @@
 !IF DEFINED(DEBUG)
-LINK_FLAGS = /nologo /DEBUG shell32.lib
+LINK_FLAGS = /nologo /safeseh /DEBUG shell32.lib
 CL_FLAGS = /nologo /Zi /O2 /W3 /DFACTOR_DEBUG
 !ELSE
-LINK_FLAGS = /nologo shell32.lib
+LINK_FLAGS = /nologo /safeseh shell32.lib
 CL_FLAGS = /nologo /O2 /W3
 !ENDIF
 
-EXE_OBJS = factor.dll.lib vm\main-windows-nt.obj vm\factor.res
+ML_FLAGS = /nologo /safeseh
+
+EXE_OBJS = vm\main-windows-nt.obj vm\factor.res
 
 DLL_OBJS = vm\os-windows-nt.obj \
+       vm\os-windows-nt-x86.32.obj \
        vm\os-windows.obj \
        vm\aging_collector.obj \
        vm\alien.obj \
@@ -38,6 +41,8 @@ DLL_OBJS = vm\os-windows-nt.obj \
        vm\io.obj \
        vm\jit.obj \
        vm\math.obj \
+       vm\mvm.obj \
+       vm\mvm-windows-nt.obj \
        vm\nursery_collector.obj \
        vm\object_start_map.obj \
        vm\objects.obj \
@@ -45,6 +50,7 @@ DLL_OBJS = vm\os-windows-nt.obj \
        vm\profiler.obj \
        vm\quotations.obj \
        vm\run.obj \
+       vm\safeseh.obj \
        vm\strings.obj \
        vm\to_tenured_collector.obj \
        vm\tuples.obj \
@@ -58,10 +64,13 @@ DLL_OBJS = vm\os-windows-nt.obj \
 .c.obj:
        cl $(CL_FLAGS) /Fo$@ /c $<
 
+.asm.obj:
+       ml $(ML_FLAGS) /Fo$@ /c $<
+
 .rs.res:
        rc $<
 
-all: factor.com factor.exe libfactor-ffi-test.dll
+all: factor.com factor.exe factor.dll.lib libfactor-ffi-test.dll
 
 libfactor-ffi-test.dll: vm/ffi_test.obj
        link $(LINK_FLAGS) /out:libfactor-ffi-test.dll /dll vm/ffi_test.obj
@@ -69,11 +78,11 @@ libfactor-ffi-test.dll: vm/ffi_test.obj
 factor.dll.lib: $(DLL_OBJS)
        link $(LINK_FLAGS) /implib:factor.dll.lib /out:factor.dll /dll $(DLL_OBJS)
 
-factor.com: $(EXE_OBJS)
-       link $(LINK_FLAGS) /out:factor.com /SUBSYSTEM:console $(EXE_OBJS)
+factor.com: $(EXE_OBJS) $(DLL_OBJS)
+       link $(LINK_FLAGS) /out:factor.com /SUBSYSTEM:console $(EXE_OBJS) $(DLL_OBJS)
 
-factor.exe: $(EXE_OBJS)
-       link $(LINK_FLAGS) /out:factor.exe /SUBSYSTEM:windows $(EXE_OBJS)
+factor.exe: $(EXE_OBJS) $(DLL_OBJS)
+       link $(LINK_FLAGS) /out:factor.exe /SUBSYSTEM:windows $(EXE_OBJS) $(DLL_OBJS)
 
 clean:
        del vm\*.obj