1 !IF !DEFINED(BOOTIMAGE_VERSION)
2 BOOTIMAGE_VERSION = latest
7 LINK_FLAGS = /nologo shell32.lib
8 CL_FLAGS = /nologo /O2 /WX /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-x86.32.obj vm\safeseh.obj
18 !ELSEIF "$(PLATFORM)" == "x86-64"
19 PLAF_DLL_OBJS = vm\os-windows-x86.64.obj
22 ML_FLAGS = /nologo /safeseh
24 EXE_OBJS = vm/main-windows.obj vm\factor.res
26 DLL_OBJS = $(PLAF_DLL_OBJS) \
28 vm\aging_collector.obj \
41 vm\data_heap_checker.obj \
48 vm\full_collector.obj \
53 vm\instruction_operands.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.res del factor.res
118 if exist factor.com del factor.com
119 if exist factor.exe del factor.exe
120 if exist factor.dll del factor.dll
121 if exist factor.dll.lib del factor.dll.lib
123 .PHONY: all default x86-32 x86-64 clean