Listing 7: makefile Project makefile
CPPFLAGS= /D_WINDOWS /W3 /GX /GD /MT /DWIN32 /D_WIN32_DCOM /DSTRICT DLLCPPFLAGS=/D_WINDOWS /W3 /GX /GD /DWIN32 /D_WINDLL LINKFLAGS = -subsystem:windows -incremental:yes CONSOLEFLAGS=/subsystem:console GUIFLAGS=/subsystem:windows4.0 GUILIBS=user32.lib gdi32.lib DLLLIBS=msvcrt.lib rpcrt4.lib advapi32.lib ole32.lib oldnames.lib DLLFLAGS=-dll !if "$(DEBUG)" != "0" CPPFLAGS=$(CPPFLAGS) /D_DEBUG /Od /Zi LINKFLAGS=$(LINKFLAGS) -debug:full LIBS=ole32.lib uuid.lib user32.lib advapi32.lib !else CPPFLAGS=$(CPPFLAGS) /DNDEBUG /O2 LINKFLAGS=$(LINKFLAGS) -debug:none LIBS=ole32.lib uuid.lib user32.lib advapi32.lib !endif all: client.exe server.exe sobj.dll dlldata.c: midl sobj.idl .cpp.obj: $(CPP) $(CPPFLAGS) /c $< .c.obj: $(CPP) $(CPPFLAGS) /c $< # How to build the client client.exe: client.obj link $(LINKFLAGS) $(CONSOLEFLAGS) -out:client.exe @<< client.obj $(LIBS) << # How to build the server server.exe: server.obj register.obj link $(LINKFLAGS) $(CONSOLEFLAGS) -out:server.exe @<< server.obj register.obj $(LIBS) << # How to build the proxy/stub DLL sobj.dll: dlldata.obj sobj_i.obj sobj_p.obj marshal.obj link /DEF:sobj.def $(LINKFLAGS) $(DLLFLAGS) -out:sobj.dll @<< marshal.obj dlldata.obj sobj_i.obj sobj_p.obj $(DLLLIBS) << # Dependencies client.obj: marsamp.h client.cpp server.obj: marsamp.h server.cpp register.obj: marsamp.h register.c dlldata.obj: dlldata.c sobj_p.obj: sobj_p.c sobj_i.obj: sobj_i.c marshal.obj: marshal.c