]> gitweb.factorcode.org Git - factor.git/blob - Nmakefile
vm: write async signals to pipe for multiplexer
[factor.git] / Nmakefile
1 !IF !DEFINED(BOOTIMAGE_VERSION)
2 BOOTIMAGE_VERSION = latest
3 !ENDIF
4
5 !IF DEFINED(PLATFORM)
6
7 LINK_FLAGS = /nologo shell32.lib
8 CL_FLAGS = /nologo /O2 /WX /W3 /D_CRT_SECURE_NO_WARNINGS
9
10 !IF DEFINED(DEBUG)
11 LINK_FLAGS = $(LINK_FLAGS) /DEBUG
12 CL_FLAGS = $(CL_FLAGS) /Zi /DFACTOR_DEBUG
13 !ENDIF
14
15 !IF "$(PLATFORM)" == "x86-32"
16 LINK_FLAGS = $(LINK_FLAGS) /safeseh
17 PLAF_DLL_OBJS = vm\os-windows-x86.32.obj vm\safeseh.obj vm\cpu-x86.obj
18 !ELSEIF "$(PLATFORM)" == "x86-64"
19 PLAF_DLL_OBJS = vm\os-windows-x86.64.obj vm\cpu-x86.obj
20 !ENDIF
21
22 ML_FLAGS = /nologo /safeseh
23
24 EXE_OBJS = vm\main-windows.obj vm\factor.res
25
26 DLL_OBJS = $(PLAF_DLL_OBJS) \
27         vm\os-windows.obj \
28         vm\aging_collector.obj \
29         vm\alien.obj \
30         vm\arrays.obj \
31         vm\bignum.obj \
32         vm\booleans.obj \
33         vm\byte_arrays.obj \
34         vm\callbacks.obj \
35         vm\callstack.obj \
36         vm\code_blocks.obj \
37         vm\code_heap.obj \
38         vm\compaction.obj \
39         vm\contexts.obj \
40         vm\counting_profiler.obj \
41         vm\data_heap.obj \
42         vm\data_heap_checker.obj \
43         vm\debug.obj \
44         vm\dispatch.obj \
45         vm\entry_points.obj \
46         vm\errors.obj \
47         vm\factor.obj \
48         vm\free_list.obj \
49         vm\full_collector.obj \
50         vm\gc.obj \
51         vm/gc_info.obj \
52         vm\image.obj \
53         vm\inline_cache.obj \
54         vm\instruction_operands.obj \
55         vm\io.obj \
56         vm\jit.obj \
57         vm\math.obj \
58         vm\mvm.obj \
59         vm\mvm-windows.obj \
60         vm\nursery_collector.obj \
61         vm\object_start_map.obj \
62         vm\objects.obj \
63         vm\primitives.obj \
64         vm\quotations.obj \
65         vm\run.obj \
66         vm\safepoints.obj \
67         vm\sampling_profiler.obj \
68         vm\strings.obj \
69         vm\to_tenured_collector.obj \
70         vm\tuples.obj \
71         vm\utilities.obj \
72         vm\vm.obj \
73         vm\words.obj
74
75 .cpp.obj:
76         cl /EHsc $(CL_FLAGS) /Fo$@ /c $<
77
78 .c.obj:
79         cl $(CL_FLAGS) /Fo$@ /c $<
80
81 .asm.obj:
82         ml $(ML_FLAGS) /Fo$@ /c $<
83
84 .rs.res:
85         rc $<
86
87 libfactor-ffi-test.dll: vm/ffi_test.obj
88         link $(LINK_FLAGS) /out:libfactor-ffi-test.dll /dll vm/ffi_test.obj
89
90 factor.dll.lib: $(DLL_OBJS)
91         link $(LINK_FLAGS) /implib:factor.dll.lib /out:factor.dll /dll $(DLL_OBJS)
92
93 factor.com: $(EXE_OBJS) $(DLL_OBJS)
94         link $(LINK_FLAGS) /out:factor.com /SUBSYSTEM:console $(EXE_OBJS) $(DLL_OBJS)
95
96 factor.exe: $(EXE_OBJS) $(DLL_OBJS)
97         link $(LINK_FLAGS) /out:factor.exe /SUBSYSTEM:windows $(EXE_OBJS) $(DLL_OBJS)
98
99 all: factor.com factor.exe factor.dll.lib libfactor-ffi-test.dll
100
101 !ENDIF
102
103 default:
104         @echo Usage: nmake /f Nmakefile platform
105         @echo Where platform is one of:
106         @echo x86-32
107         @echo x86-64
108         @exit 1
109
110 x86-32:
111         nmake /nologo PLATFORM=x86-32 /f Nmakefile all
112
113 x86-64:
114         nmake /nologo PLATFORM=x86-64 /f Nmakefile all
115
116 clean:
117         del vm\*.obj
118         if exist factor.lib del factor.lib
119         if exist factor.res del factor.res
120         if exist factor.com del factor.com
121         if exist factor.exe del factor.exe
122         if exist factor.dll del factor.dll
123         if exist factor.dll.lib del factor.dll.lib
124
125 .PHONY: all default x86-32 x86-64 clean
126
127 .SUFFIXES: .rs