126 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			126 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
| !IF !DEFINED(BOOTIMAGE_VERSION)
 | |
| BOOTIMAGE_VERSION = latest
 | |
| !ENDIF
 | |
| 
 | |
| !IF DEFINED(PLATFORM)
 | |
| 
 | |
| LINK_FLAGS = /nologo shell32.lib
 | |
| CL_FLAGS = /nologo /O2 /WX /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-x86.32.obj vm\safeseh.obj
 | |
| !ELSEIF "$(PLATFORM)" == "x86-64"
 | |
| PLAF_DLL_OBJS = vm\os-windows-x86.64.obj
 | |
| !ENDIF
 | |
| 
 | |
| ML_FLAGS = /nologo /safeseh
 | |
| 
 | |
| EXE_OBJS = vm/main-windows.obj vm\factor.res
 | |
| 
 | |
| DLL_OBJS = $(PLAF_DLL_OBJS) \
 | |
| 	vm\os-windows.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/gc_info.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.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.res del factor.res
 | |
| 	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
 |