]> gitweb.factorcode.org Git - factor.git/blob - Nmakefile
Store stack bounds in TIB on win64 to make C++ exceptions work
[factor.git] / Nmakefile
1 !IF DEFINED(DEBUG)
2 LINK_FLAGS = /nologo /safeseh /DEBUG shell32.lib
3 CL_FLAGS = /nologo /Zi /O2 /W3 /DFACTOR_DEBUG
4 !ELSE
5 LINK_FLAGS = /nologo /safeseh shell32.lib
6 CL_FLAGS = /nologo /O2 /W3
7 !ENDIF
8
9 ML_FLAGS = /nologo /safeseh
10
11 EXE_OBJS = vm\main-windows-nt.obj vm\factor.res
12
13 DLL_OBJS = vm\os-windows-nt.obj \
14         vm\os-windows.obj \
15         vm\aging_collector.obj \
16         vm\alien.obj \
17         vm\arrays.obj \
18         vm\bignum.obj \
19         vm\booleans.obj \
20         vm\byte_arrays.obj \
21         vm\callbacks.obj \
22         vm\callstack.obj \
23         vm\code_blocks.obj \
24         vm\code_heap.obj \
25         vm\compaction.obj \
26         vm\contexts.obj \
27         vm\data_heap.obj \
28         vm\data_heap_checker.obj \
29         vm\debug.obj \
30         vm\dispatch.obj \
31         vm\entry_points.obj \
32         vm\errors.obj \
33         vm\factor.obj \
34         vm\free_list.obj \
35         vm\full_collector.obj \
36         vm\gc.obj \
37         vm\image.obj \
38         vm\inline_cache.obj \
39         vm\instruction_operands.obj \
40         vm\io.obj \
41         vm\jit.obj \
42         vm\math.obj \
43         vm\mvm.obj \
44         vm\mvm-windows-nt.obj \
45         vm\nursery_collector.obj \
46         vm\object_start_map.obj \
47         vm\objects.obj \
48         vm\primitives.obj \
49         vm\profiler.obj \
50         vm\quotations.obj \
51         vm\run.obj \
52         vm\safeseh.obj \
53         vm\strings.obj \
54         vm\to_tenured_collector.obj \
55         vm\tuples.obj \
56         vm\utilities.obj \
57         vm\vm.obj \
58         vm\words.obj
59
60 .cpp.obj:
61         cl /EHsc $(CL_FLAGS) /Fo$@ /c $<
62
63 .c.obj:
64         cl $(CL_FLAGS) /Fo$@ /c $<
65
66 .asm.obj:
67         ml $(ML_FLAGS) /Fo$@ /c $<
68
69 .rs.res:
70         rc $<
71
72 all: factor.com factor.exe factor.dll.lib libfactor-ffi-test.dll
73
74 libfactor-ffi-test.dll: vm/ffi_test.obj
75         link $(LINK_FLAGS) /out:libfactor-ffi-test.dll /dll vm/ffi_test.obj
76
77 factor.dll.lib: $(DLL_OBJS)
78         link $(LINK_FLAGS) /implib:factor.dll.lib /out:factor.dll /dll $(DLL_OBJS)
79
80 factor.com: $(EXE_OBJS) $(DLL_OBJS)
81         link $(LINK_FLAGS) /out:factor.com /SUBSYSTEM:console $(EXE_OBJS) $(DLL_OBJS)
82
83 factor.exe: $(EXE_OBJS) $(DLL_OBJS)
84         link $(LINK_FLAGS) /out:factor.exe /SUBSYSTEM:windows $(EXE_OBJS) $(DLL_OBJS)
85
86 clean:
87         del vm\*.obj
88         del factor.lib
89         del factor.com
90         del factor.exe
91         del factor.dll
92         del factor.dll.lib
93
94 .PHONY: all clean
95
96 .SUFFIXES: .rs