|
|
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.