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-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 \
54 vm\instruction_operands.obj \
59 vm\mvm-windows-nt.obj \
60 vm\nursery_collector.obj \
61 vm\object_start_map.obj \
68 vm\to_tenured_collector.obj \
75 cl /EHsc $(CL_FLAGS) /Fo$@ /c $<
78 cl $(CL_FLAGS) /Fo$@ /c $<
81 ml $(ML_FLAGS) /Fo$@ /c $<
86 libfactor-ffi-test.dll: vm/ffi_test.obj
87 link $(LINK_FLAGS) /out:libfactor-ffi-test.dll /dll vm/ffi_test.obj
89 factor.dll.lib: $(DLL_OBJS)
90 link $(LINK_FLAGS) /implib:factor.dll.lib /out:factor.dll /dll $(DLL_OBJS)
92 factor.com: $(EXE_OBJS) $(DLL_OBJS)
93 link $(LINK_FLAGS) /out:factor.com /SUBSYSTEM:console $(EXE_OBJS) $(DLL_OBJS)
95 factor.exe: $(EXE_OBJS) $(DLL_OBJS)
96 link $(LINK_FLAGS) /out:factor.exe /SUBSYSTEM:windows $(EXE_OBJS) $(DLL_OBJS)
98 all: factor.com factor.exe factor.dll.lib libfactor-ffi-test.dll
103 @echo Usage: nmake /f Nmakefile platform
104 @echo Where platform is one of:
110 nmake /nologo PLATFORM=x86-32 /f Nmakefile all
113 nmake /nologo PLATFORM=x86-64 /f Nmakefile all
117 if exist factor.lib del factor.lib
118 if exist factor.res del factor.res
119 if exist factor.com del factor.com
120 if exist factor.exe del factor.exe
121 if exist factor.dll del factor.dll
122 if exist factor.dll.lib del factor.dll.lib
124 .PHONY: all default x86-32 x86-64 clean