1 !IF !DEFINED(BOOTIMAGE_VERSION)
2 BOOTIMAGE_VERSION = latest
7 LINK_FLAGS = /nologo shell32.lib
8 CL_FLAGS = /nologo /O2 /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 \
53 vm\instruction_operands.obj \
58 vm\mvm-windows-nt.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 PLATFORM=x86-32 /f Nmakefile all
112 nmake PLATFORM=x86-64 /f Nmakefile all
123 cscript /nologo build-support\http-get.vbs http://factorcode.org/images/$(BOOTIMAGE_VERSION)/boot.winnt-x86.32.image boot.winnt-x86.32.image
126 cscript /nologo build-support\http-get.vbs http://factorcode.org/images/$(BOOTIMAGE_VERSION)/boot.winnt-x86.64.image boot.winnt.x86.64.image
128 .PHONY: all bootimage-x86-32 bootimage-x86-64 default x86-32 x86-64 clean