3 LINK_FLAGS = /nologo shell32.lib
4 CL_FLAGS = /nologo /O2 /W3
7 LINK_FLAGS = $(LINK_FLAGS) /DEBUG
8 CL_FLAGS = $(CL_FLAGS) /Zi /DFACTOR_DEBUG
11 !IF "$(PLATFORM)" == "x86-32"
12 LINK_FLAGS = $(LINK_FLAGS) /safeseh
13 PLAF_DLL_OBJS = vm\os-windows-nt-x86.32.obj vm\safeseh.obj
14 !ELSEIF "$(PLATFORM)" == "x86-64"
15 PLAF_DLL_OBJS = vm\os-windows-nt-x86.64.obj
18 ML_FLAGS = /nologo /safeseh
20 EXE_OBJS = vm\main-windows-nt.obj vm\factor.res
22 DLL_OBJS = $(PLAF_DLL_OBJS) \
24 vm\os-windows-nt.obj \
25 vm\aging_collector.obj \
38 vm\data_heap_checker.obj \
45 vm\full_collector.obj \
49 vm\instruction_operands.obj \
54 vm\mvm-windows-nt.obj \
55 vm\nursery_collector.obj \
56 vm\object_start_map.obj \
63 vm\to_tenured_collector.obj \
70 cl /EHsc $(CL_FLAGS) /Fo$@ /c $<
73 cl $(CL_FLAGS) /Fo$@ /c $<
76 ml $(ML_FLAGS) /Fo$@ /c $<
81 libfactor-ffi-test.dll: vm/ffi_test.obj
82 link $(LINK_FLAGS) /out:libfactor-ffi-test.dll /dll vm/ffi_test.obj
84 factor.dll.lib: $(DLL_OBJS)
85 link $(LINK_FLAGS) /implib:factor.dll.lib /out:factor.dll /dll $(DLL_OBJS)
87 factor.com: $(EXE_OBJS) $(DLL_OBJS)
88 link $(LINK_FLAGS) /out:factor.com /SUBSYSTEM:console $(EXE_OBJS) $(DLL_OBJS)
90 factor.exe: $(EXE_OBJS) $(DLL_OBJS)
91 link $(LINK_FLAGS) /out:factor.exe /SUBSYSTEM:windows $(EXE_OBJS) $(DLL_OBJS)
93 all: factor.com factor.exe factor.dll.lib libfactor-ffi-test.dll
98 @echo Usage: nmake /f Nmakefile platform
99 @echo Where platform is one of:
105 nmake PLATFORM=x86-32 /f Nmakefile all
108 nmake PLATFORM=x86-64 /f Nmakefile all
118 .PHONY: all default x86-32 x86-64 clean