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
9 CL_FLAGS_VISTA = /D_WIN32_WINNT=0x0600
11 !IF "$(PLATFORM)" == "x86-32"
12 LINK_FLAGS = $(LINK_FLAGS) /safeseh
13 PLAF_DLL_OBJS = vm\os-windows-x86.32.obj vm\safeseh.obj vm\cpu-x86.obj
15 !ELSEIF "$(PLATFORM)" == "x86-32-vista"
16 LINK_FLAGS = $(LINK_FLAGS) /safeseh
17 CL_FLAGS = $(CL_FLAGS) $(CL_FLAGS_VISTA)
18 PLAF_DLL_OBJS = vm\os-windows-x86.32.obj vm\safeseh.obj vm\cpu-x86.obj
20 !ELSEIF "$(PLATFORM)" == "x86-64"
21 PLAF_DLL_OBJS = vm\os-windows-x86.64.obj vm\cpu-x86.obj
23 !ELSEIF "$(PLATFORM)" == "x86-64-vista"
24 CL_FLAGS = $(CL_FLAGS) $(CL_FLAGS_VISTA)
25 PLAF_DLL_OBJS = vm\os-windows-x86.64.obj vm\cpu-x86.obj
29 LINK_FLAGS = $(LINK_FLAGS) /DEBUG
30 CL_FLAGS = $(CL_FLAGS) /Zi /DFACTOR_DEBUG
33 ML_FLAGS = /nologo /safeseh
35 EXE_OBJS = vm\main-windows.obj vm\factor.res
37 DLL_OBJS = $(PLAF_DLL_OBJS) \
39 vm\aging_collector.obj \
51 vm\data_heap_checker.obj \
58 vm\full_collector.obj \
63 vm\instruction_operands.obj \
69 vm\nursery_collector.obj \
70 vm\object_start_map.obj \
76 vm\sampling_profiler.obj \
78 vm\to_tenured_collector.obj \
85 cl /EHsc $(CL_FLAGS) /Fo$@ /c $<
88 cl $(CL_FLAGS) /Fo$@ /c $<
91 ml $(ML_FLAGS) /Fo$@ /c $<
96 libfactor-ffi-test.dll: vm/ffi_test.obj
97 link $(LINK_FLAGS) /out:libfactor-ffi-test.dll /dll vm/ffi_test.obj
99 factor.dll.lib: $(DLL_OBJS)
100 link $(LINK_FLAGS) /implib:factor.dll.lib /out:factor.dll /dll $(DLL_OBJS)
102 factor.com: $(EXE_OBJS) $(DLL_OBJS)
103 link $(LINK_FLAGS) /out:factor.com /SUBSYSTEM:console $(EXE_OBJS) $(DLL_OBJS)
105 factor.exe: $(EXE_OBJS) $(DLL_OBJS)
106 link $(LINK_FLAGS) /out:factor.exe /SUBSYSTEM:windows $(EXE_OBJS) $(DLL_OBJS)
108 all: factor.com factor.exe factor.dll.lib libfactor-ffi-test.dll
113 @echo Usage: nmake /f Nmakefile platform
114 @echo Where platform is one of:
122 nmake /nologo PLATFORM=x86-32 /f Nmakefile all
125 nmake /nologo PLATFORM=x86-64 /f Nmakefile all
128 nmake /nologo PLATFORM=x86-32-vista /f Nmakefile all
131 nmake /nologo PLATFORM=x86-64-vista /f Nmakefile all
135 if exist factor.lib del factor.lib
136 if exist factor.res del factor.res
137 if exist factor.com del factor.com
138 if exist factor.exe del factor.exe
139 if exist factor.dll del factor.dll
140 if exist factor.dll.lib del factor.dll.lib
142 .PHONY: all default x86-32 x86-64 x86-32-vista x86-64-vista clean