1 !IF !DEFINED(BOOTIMAGE_VERSION)
2 BOOTIMAGE_VERSION = latest
7 LINK_FLAGS = /nologo shell32.lib
8 CL_FLAGS = /nologo /O2 /W3 /D_CRT_SECURE_NO_WARNINGS
11 LINK_FLAGS = $(LINK_FLAGS) /DEBUG
12 CL_FLAGS = $(CL_FLAGS) /Zi /DFACTOR_DEBUG
15 !IF "$(PLATFORM)" == "x86-32"
16 LINK_FLAGS = $(LINK_FLAGS) /safeseh
17 PLAF_DLL_OBJS = vm\os-windows-nt-x86.32.obj vm\safeseh.obj
18 !ELSEIF "$(PLATFORM)" == "x86-64"
19 PLAF_DLL_OBJS = vm\os-windows-nt-x86.64.obj
22 ML_FLAGS = /nologo /safeseh
24 EXE_OBJS = vm\main-windows-nt.obj vm\factor.res
26 DLL_OBJS = $(PLAF_DLL_OBJS) \
28 vm\os-windows-nt.obj \
29 vm\aging_collector.obj \
42 vm\data_heap_checker.obj \
49 vm\full_collector.obj \
53 vm\instruction_operands.obj \
58 vm\mvm-windows-nt.obj \
59 vm\nursery_collector.obj \
60 vm\object_start_map.obj \
67 vm\to_tenured_collector.obj \
74 cl /EHsc $(CL_FLAGS) /Fo$@ /c $<
77 cl $(CL_FLAGS) /Fo$@ /c $<
80 ml $(ML_FLAGS) /Fo$@ /c $<
85 libfactor-ffi-test.dll: vm/ffi_test.obj
86 link $(LINK_FLAGS) /out:libfactor-ffi-test.dll /dll vm/ffi_test.obj
88 factor.dll.lib: $(DLL_OBJS)
89 link $(LINK_FLAGS) /implib:factor.dll.lib /out:factor.dll /dll $(DLL_OBJS)
91 factor.com: $(EXE_OBJS) $(DLL_OBJS)
92 link $(LINK_FLAGS) /out:factor.com /SUBSYSTEM:console $(EXE_OBJS) $(DLL_OBJS)
94 factor.exe: $(EXE_OBJS) $(DLL_OBJS)
95 link $(LINK_FLAGS) /out:factor.exe /SUBSYSTEM:windows $(EXE_OBJS) $(DLL_OBJS)
97 all: factor.com factor.exe factor.dll.lib libfactor-ffi-test.dll
102 @echo Usage: nmake /f Nmakefile platform
103 @echo Where platform is one of:
109 nmake /nologo PLATFORM=x86-32 /f Nmakefile all
112 nmake /nologo PLATFORM=x86-64 /f Nmakefile all
116 if exist factor.lib del factor.lib
117 if exist factor.com del factor.com
118 if exist factor.exe del factor.exe
119 if exist factor.dll del factor.dll
120 if exist factor.dll.lib del factor.dll.lib
122 .PHONY: all default x86-32 x86-64 clean