|
|
1.1 ! root 1: #*************************************************************# ! 2: #** **# ! 3: #** Microsoft RPC Examples **# ! 4: #** Mandelbrot RPC Application **# ! 5: #** Copyright(c) Microsoft Corp. 1991 **# ! 6: #** **# ! 7: #*************************************************************# ! 8: # The same source code is used to build either a standalone ! 9: # or an RPC version of the Microsoft Windows (R) Mandelbrot ! 10: # sample application. The flag RPC determines which version ! 11: # is built. To build a standalone version, use the commands: ! 12: # >nmake cleanall ! 13: # >set RPC= ! 14: # >nmake ! 15: # To build the RPC version, use the commands: ! 16: # >nmake cleanall ! 17: # >set RPC=1 ! 18: # >nmake ! 19: !include <ntwin32.mak> ! 20: ! 21: !ifdef RPC ! 22: RPCFLAG = -DRPC ! 23: !else ! 24: RPCFLAG = ! 25: !endif ! 26: ! 27: # Establish the inference rules. ! 28: # Use lower warning levels for the RPC version on MIPS; ! 29: # remove -std switch from compiler switches ! 30: # Use different command line input for object conversion. ! 31: ! 32: !if "$(CPU)" == "i386" ! 33: CONVERTOBJECTCMD = $(cvtobj) $@ ! 34: !endif ! 35: ! 36: !if "$(CPU)" == "MIPS" ! 37: cflags = -c -G0 -O -EL -DMIPS=1 -I\nt\mstools\h ! 38: CONVERTOBJECTCMD = $(cvtobj) ! 39: !endif ! 40: ! 41: .c.obj: ! 42: $(cc) $(cflags) $(cvars) $(RPCFLAG) $< ! 43: $(CONVERTOBJECTCMD) ! 44: ! 45: # Targets ! 46: # The RPC version produces client and server executables. ! 47: # The standalone version produces a single exe file, "mandel". ! 48: ! 49: !ifdef RPC ! 50: all: client.exe server.exe ! 51: !else ! 52: all: mandel.exe ! 53: !endif ! 54: ! 55: mandel.exe: mandel.obj remote.obj mandel.def mandel.res calc.obj ! 56: $(link) $(guiflags) -out:mandel.exe -map:mandel.map \ ! 57: mandel.obj remote.obj calc.obj mandel.res $(guilibs) ! 58: ! 59: client.exe: mandel.obj remote.obj mandel.def mandel.res \ ! 60: mdlrpc_c.obj mdlrpc_x.obj ! 61: $(link) $(guiflags) -out:client.exe -map:client.map \ ! 62: mandel.obj remote.obj mdlrpc_c.obj mdlrpc_x.obj \ ! 63: mandel.res $(guilibs) $(LIB)\winrpc.lib $(LIB)\ndrlib.lib ! 64: ! 65: server.exe: server.obj calc.obj mdlrpc_s.obj mdlrpc_y.obj ! 66: $(link) $(conflags) -out:server.exe -map:server.map \ ! 67: server.obj calc.obj mdlrpc_s.obj mdlrpc_y.obj \ ! 68: $(conlibs) $(LIB)\winrpc.lib $(LIB)\ndrlib.lib ! 69: ! 70: # Update the resource if necessary ! 71: mandel.res: mandel.rc mandel.h ! 72: rc -r -fo res.tmp mandel.rc ! 73: cvtres -$(CPU) res.tmp -o mandel.res ! 74: del res.tmp ! 75: ! 76: # Object file dependencies ! 77: ! 78: # server only built for RPC version; always needs mdlrpc.h ! 79: server.obj: server.c mandel.h mdlrpc.h ! 80: ! 81: # Compile differently for RPC, standalone versions ! 82: !ifdef RPC ! 83: mandel.obj: mandel.c mandel.h mdlrpc.h ! 84: remote.obj: remote.c mandel.h mdlrpc.h ! 85: calc.obj : calc.c mandel.h mdlrpc.h ! 86: !else ! 87: mandel.obj: mandel.c mandel.h ! 88: remote.obj: remote.c mandel.h ! 89: calc.obj: calc.c mandel.h ! 90: !endif ! 91: ! 92: # client stub ! 93: mdlrpc_c.obj : mdlrpc_c.c mdlrpc.h ! 94: # use lower warning levels for the stub source code; add -W1 ! 95: !if "$(CPU)"=="i386" ! 96: $(cc) $(cflags) $(cvars) -W1 mdlrpc_c.c ! 97: $(CONVERTOBJECTCMD) ! 98: !endif ! 99: ! 100: # client auxiliary file ! 101: mdlrpc_x.obj : mdlrpc_x.c mdlrpc.h ! 102: # use lower warning levels for the stub source code; add -W1 ! 103: !if "$(CPU)"=="i386" ! 104: $(cc) $(cflags) $(cvars) -W1 mdlrpc_x.c ! 105: $(CONVERTOBJECTCMD) ! 106: !endif ! 107: ! 108: # server stub file ! 109: mdlrpc_s.obj : mdlrpc_s.c mdlrpc.h ! 110: # use lower warning levels for the stub source code; add -W1 ! 111: !if "$(CPU)"=="i386" ! 112: $(cc) $(cflags) -W1 $(cvars) mdlrpc_s.c ! 113: $(CONVERTOBJECTCMD) ! 114: !endif ! 115: ! 116: # server auxiliary file ! 117: mdlrpc_y.obj : mdlrpc_y.c mdlrpc.h ! 118: # use lower warning levels for the stub source code; add -W1 ! 119: !if "$(CPU)"=="i386" ! 120: $(cc) $(cflags) $(cvars) -W1 mdlrpc_y.c ! 121: $(CONVERTOBJECTCMD) ! 122: !endif ! 123: ! 124: # Stubs, auxiliary and header file from the IDL file ! 125: mdlrpc.h mdlrpc_c.c mdlrpc_x.c mdlrpc_s.c mdlrpc_y.c: mdlrpc.idl mdlrpc.acf ! 126: midl -cpp_cmd $(cc) -cpp_opt "-E" mdlrpc.idl ! 127: ! 128: clean: ! 129: -del client.exe ! 130: -del server.exe ! 131: -del mandel.exe ! 132: ! 133: cleanall: clean ! 134: -del *.o ! 135: -del *.oo ! 136: -del *.res ! 137: -del *.map ! 138: -del *.obj ! 139: -del mdlrpc.h ! 140: -del mdlrpc_*.obj ! 141: -del mdlrpc_*.c
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.