-LINK_CLFAGS =\r
-CL_FLAGS = /O2 /W3\r
+LINK_CLFAGS = /nologo\r
+CL_FLAGS = /nologo /O2 /W3\r
\r
-OBJS = vm\main-windows-nt.obj \\r
- vm\os-windows-nt.obj \\r
+EXE_OBJS = factor.dll.lib vm\main-windows-nt.obj vm\factor.res\r
+\r
+DLL_OBJS = vm\os-windows-nt.obj \\r
vm\os-windows.obj \\r
vm\aging_collector.obj \\r
vm\alien.obj \\r
vm\words.obj\r
\r
.cpp.obj:\r
- cl /nologo /EHsc $(CL_FLAGS) /Fo$@ /c $<\r
+ cl /EHsc $(CL_FLAGS) /Fo$@ /c $<\r
+\r
+.rs.res:\r
+ rc $<\r
\r
all: factor.com factor.exe\r
\r
-factor.com: $(OBJS)\r
- link $(LINK_FLAGS) /nologo /out:factor.com /SUBSYSTEM:console $(OBJS)\r
+factor.dll.lib: $(DLL_OBJS)\r
+ link $(LINK_FLAGS) /implib:factor.dll.lib /out:factor.dll /dll $(DLL_OBJS)\r
\r
-factor.exe: $(OBJS)\r
- link $(LINK_FLAGS) /nologo /out:factor.exe /SUBSYSTEM:windows $(OBJS)\r
+factor.com: $(EXE_OBJS)\r
+ link $(LINK_FLAGS) /out:factor.com /SUBSYSTEM:console $(EXE_OBJS)\r
+\r
+factor.exe: $(EXE_OBJS)\r
+ link $(LINK_FLAGS) /out:factor.exe /SUBSYSTEM:windows $(EXE_OBJS)\r
\r
clean:\r
del vm\*.obj\r
del factor.com\r
del factor.exe\r
+ del factor.dll\r
+ del factor.dll.lib\r
\r
.PHONY: clean\r
+\r
+.SUFFIXES: .rs\r
#define FACTOR_OS_STRING "winnt"
+#define FACTOR_DLL L"factor.dll"
+
#ifdef _MSC_VER
- #define FACTOR_DLL NULL
#define FACTOR_STDCALL(return_type) return_type __stdcall
#else
- #define FACTOR_DLL L"factor.dll"
#define FACTOR_STDCALL(return_type) __attribute__((stdcall)) return_type
#endif