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 vm\cpu-x86.obj
18 !ELSEIF "$(PLATFORM)" == "x86-64"
19 PLAF_DLL_OBJS = vm\os-windows-x86.64.obj vm\cpu-x86.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 \
40 vm\counting_profiler.obj \
42 vm\data_heap_checker.obj \
49 vm\full_collector.obj \
54 vm\instruction_operands.obj \
60 vm\nursery_collector.obj \
61 vm\object_start_map.obj \
67 vm\sampling_profiler.obj \
69 vm\to_tenured_collector.obj \
76 cl /EHsc $(CL_FLAGS) /Fo$@ /c $<
79 cl $(CL_FLAGS) /Fo$@ /c $<
82 ml $(ML_FLAGS) /Fo$@ /c $<
87 libfactor-ffi-test.dll: vm/ffi_test.obj
88 link $(LINK_FLAGS) /out:libfactor-ffi-test.dll /dll vm/ffi_test.obj
90 factor.dll.lib: $(DLL_OBJS)
91 link $(LINK_FLAGS) /implib:factor.dll.lib /out:factor.dll /dll $(DLL_OBJS)
93 factor.com: $(EXE_OBJS) $(DLL_OBJS)
94 link $(LINK_FLAGS) /out:factor.com /SUBSYSTEM:console $(EXE_OBJS) $(DLL_OBJS)
96 factor.exe: $(EXE_OBJS) $(DLL_OBJS)
97 link $(LINK_FLAGS) /out:factor.exe /SUBSYSTEM:windows $(EXE_OBJS) $(DLL_OBJS)
99 all: factor.com factor.exe factor.dll.lib libfactor-ffi-test.dll
104 @echo Usage: nmake /f Nmakefile platform
105 @echo Where platform is one of:
111 nmake /nologo PLATFORM=x86-32 /f Nmakefile all
114 nmake /nologo PLATFORM=x86-64 /f Nmakefile all
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
125 .PHONY: all default x86-32 x86-64 clean