!IF !DEFINED(BOOTIMAGE_VERSION) BOOTIMAGE_VERSION = latest !ENDIF !IF DEFINED(PLATFORM) LINK_FLAGS = /nologo shell32.lib CL_FLAGS = /nologo /O2 /W3 /D_CRT_SECURE_NO_WARNINGS !IF DEFINED(DEBUG) LINK_FLAGS = $(LINK_FLAGS) /DEBUG CL_FLAGS = $(CL_FLAGS) /Zi /DFACTOR_DEBUG !ENDIF !IF "$(PLATFORM)" == "x86-32" LINK_FLAGS = $(LINK_FLAGS) /safeseh PLAF_DLL_OBJS = vm\os-windows-nt-x86.32.obj vm\safeseh.obj !ELSEIF "$(PLATFORM)" == "x86-64" PLAF_DLL_OBJS = vm\os-windows-nt-x86.64.obj !ENDIF ML_FLAGS = /nologo /safeseh EXE_OBJS = vm\main-windows-nt.obj vm\factor.res DLL_OBJS = $(PLAF_DLL_OBJS) \ vm\os-windows.obj \ vm\os-windows-nt.obj \ vm\aging_collector.obj \ vm\alien.obj \ vm\arrays.obj \ vm\bignum.obj \ vm\booleans.obj \ vm\byte_arrays.obj \ vm\callbacks.obj \ vm\callstack.obj \ vm\code_blocks.obj \ vm\code_heap.obj \ vm\compaction.obj \ vm\contexts.obj \ vm\data_heap.obj \ vm\data_heap_checker.obj \ vm\debug.obj \ vm\dispatch.obj \ vm\entry_points.obj \ vm\errors.obj \ vm\factor.obj \ vm\free_list.obj \ vm\full_collector.obj \ vm\gc.obj \ vm\image.obj \ vm\inline_cache.obj \ vm\instruction_operands.obj \ vm\io.obj \ vm\jit.obj \ vm\math.obj \ vm\mvm.obj \ vm\mvm-windows-nt.obj \ vm\nursery_collector.obj \ vm\object_start_map.obj \ vm\objects.obj \ vm\primitives.obj \ vm\profiler.obj \ vm\quotations.obj \ vm\run.obj \ vm\strings.obj \ vm\to_tenured_collector.obj \ vm\tuples.obj \ vm\utilities.obj \ vm\vm.obj \ vm\words.obj .cpp.obj: cl /EHsc $(CL_FLAGS) /Fo$@ /c $< .c.obj: cl $(CL_FLAGS) /Fo$@ /c $< .asm.obj: ml $(ML_FLAGS) /Fo$@ /c $< .rs.res: rc $< libfactor-ffi-test.dll: vm/ffi_test.obj link $(LINK_FLAGS) /out:libfactor-ffi-test.dll /dll vm/ffi_test.obj factor.dll.lib: $(DLL_OBJS) link $(LINK_FLAGS) /implib:factor.dll.lib /out:factor.dll /dll $(DLL_OBJS) factor.com: $(EXE_OBJS) $(DLL_OBJS) link $(LINK_FLAGS) /out:factor.com /SUBSYSTEM:console $(EXE_OBJS) $(DLL_OBJS) factor.exe: $(EXE_OBJS) $(DLL_OBJS) link $(LINK_FLAGS) /out:factor.exe /SUBSYSTEM:windows $(EXE_OBJS) $(DLL_OBJS) all: factor.com factor.exe factor.dll.lib libfactor-ffi-test.dll !ENDIF default: @echo Usage: nmake /f Nmakefile platform @echo Where platform is one of: @echo x86-32 @echo x86-64 @exit 1 x86-32: nmake /nologo PLATFORM=x86-32 /f Nmakefile all x86-64: nmake /nologo PLATFORM=x86-64 /f Nmakefile all clean: del vm\*.obj if exist factor.lib del factor.lib if exist factor.com del factor.com if exist factor.exe del factor.exe if exist factor.dll del factor.dll if exist factor.dll.lib del factor.dll.lib .PHONY: all default x86-32 x86-64 clean .SUFFIXES: .rs