]> gitweb.factorcode.org Git - factor.git/commitdiff
Nmakefile: support both 32-bit and 64-bit builds again
authorSlava Pestov <slava@factorcode.org>
Thu, 8 Apr 2010 23:00:00 +0000 (18:00 -0500)
committerSlava Pestov <slava@factorcode.org>
Thu, 8 Apr 2010 23:00:00 +0000 (18:00 -0500)
Nmakefile

index b85197a776dc98a1d8cb947749d162c9bbda502e..c8dd98917ddc430681e43fac9e44887765affa54 100755 (executable)
--- 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