From: Slava Pestov Date: Thu, 8 Apr 2010 23:00:00 +0000 (-0500) Subject: Nmakefile: support both 32-bit and 64-bit builds again X-Git-Tag: 0.97~4720^2~22^2~27 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=1019278474c767d93e3c1bdbb8b308f05b518973 Nmakefile: support both 32-bit and 64-bit builds again --- diff --git a/Nmakefile b/Nmakefile index b85197a776..c8dd98917d 100755 --- a/Nmakefile +++ b/Nmakefile @@ -1,18 +1,27 @@ -!IF DEFINED(DEBUG) -LINK_FLAGS = /nologo /safeseh /DEBUG shell32.lib -CL_FLAGS = /nologo /Zi /O2 /W3 /DFACTOR_DEBUG -!ELSE -LINK_FLAGS = /nologo /safeseh shell32.lib +!IF DEFINED(PLATFORM) + +LINK_FLAGS = /nologo shell32.lib CL_FLAGS = /nologo /O2 /W3 + +!IF DEFINED(DEBUG) +LINK_FLAGS = $(LINK_FLAGS) /DEBUG +CL_FLAGS = $(CL_FLAGS) /Zi /DFACTOR_DEBUG !ENDIF -ML_FLAGS = /nologo /safeseh +!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 EXE_OBJS = vm\main-windows-nt.obj vm\factor.res -DLL_OBJS = vm\os-windows-nt.obj \ - vm\os-windows-nt-x86.32.obj \ +DLL_OBJS = $(PLAF_DLL_OBJS) \ vm\os-windows.obj \ + vm\os-windows-nt.obj \ vm\aging_collector.obj \ vm\alien.obj \ vm\arrays.obj \ @@ -50,7 +59,6 @@ DLL_OBJS = vm\os-windows-nt.obj \ vm\profiler.obj \ vm\quotations.obj \ vm\run.obj \ - vm\safeseh.obj \ vm\strings.obj \ vm\to_tenured_collector.obj \ vm\tuples.obj \ @@ -70,8 +78,6 @@ DLL_OBJS = vm\os-windows-nt.obj \ .rs.res: rc $< -all: factor.com factor.exe factor.dll.lib libfactor-ffi-test.dll - libfactor-ffi-test.dll: vm/ffi_test.obj link $(LINK_FLAGS) /out:libfactor-ffi-test.dll /dll vm/ffi_test.obj @@ -84,6 +90,22 @@ factor.com: $(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 + +x86-32: + nmake PLATFORM=x86-32 /f Nmakefile all + +x86-64: + nmake PLATFORM=x86-64 /f Nmakefile all + clean: del vm\*.obj del factor.lib @@ -92,6 +114,6 @@ clean: del factor.dll del factor.dll.lib -.PHONY: all clean +.PHONY: all default x86-32 x86-64 clean .SUFFIXES: .rs