home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / makedce.zip / EXAMPLES.ZIP / examples / MClient / RULES.MAK < prev   
Makefile  |  1994-05-08  |  6KB  |  189 lines

  1. #===================================================================
  2. #   Makefile for MakeDCE examples 
  3. #===================================================================
  4. .SUFFIXES:
  5. .SUFFIXES: .obj .c 
  6. #===================================================================
  7. # Default compilation macros
  8. #
  9. # Compile switchs  that are enabled
  10. # /C       compile don't link
  11. # /Gd+   use dynamic link libraries at run-time
  12. # /Mp     use optlink linkage for functions
  13. # /Q+     do not display logo at compilation time
  14. # /W3    produce all message types
  15. # /O-    Do not optimize code
  16. # /Ss+    allow  "//" for comment lines
  17. # /Sem     allow cset and migration extensions
  18. #
  19. #DCELOCAL = D:\OPT\DCELOCAL
  20. #MAKEDCE  = D:\MAKEDCE
  21. #
  22. DCEINC    = $(DCELOCAL)\include
  23. IDL       = $(DCELOCAL)\bin\idl
  24. UUIDGEN   = $(DCELOCAL)\bin\uuidgen
  25. GLUEINC   = $(MAKEDCE)\include
  26. IDLGEN    = $(MAKEDCE)\bin\idlgen
  27. GLUEGEN   = $(MAKEDCE)\bin\gluegen
  28. SED       = $(MAKEDCE)\bin\sed.exe
  29.  
  30. COPY    = copy
  31. REM     = REM
  32. ECHO    = ECHO
  33. CSTUB   = $(CLIENT)_gstub.obj  $(IDLFILE1)_cstub.obj $(IDLFILE2)_cstub.obj
  34. SSTUB1  = $(SERVER1)_gstub.obj  $(IDLFILE1)_sstub.obj
  35. SSTUB2  = $(SERVER2)_gstub.obj  $(IDLFILE2)_sstub.obj
  36. FMAINARG =
  37.  
  38. IDLFLAGS = -no_cpp  -keep c_source
  39. IDLGENFLAGS = -ibd +v 
  40. GLUEGENFLAGS = -keep c_source /I$(GLUEINC) $(FMAINARG)
  41.  
  42. #===================================================================
  43. #   CFLAGS for CC command
  44. #
  45. CARGS       = /C /Gd+ /Ms /Q+ /W3 /O- /Ss+ /Sem
  46.  
  47. INCLUDES    = /I. /I$(DCEINC) /I$(GLUEINC)
  48.  
  49. #SO32FLAGS   = /DMPTN /DMT /DSO32 /DOS2 /DBSD_SELECT
  50. #THREADFLAGS = /D_CMA_PROTO_ /D_CMA_NOWRAPPERS_ /DCMA_UNIPROCESSOR
  51. DSSFLAGS    = /DINTEL80x86 /DIBMOS2 /D__STDC__ /D_IDL_PROTOTYPES
  52. DEFINES     = $(DSSFLAGS) $(SO32FLAGS) $(THREADFLAGS)
  53.  
  54. CFLAGS      = $(CARGS) $(DEFINES) $(INCLUDES)
  55.  
  56. #===================================================================
  57. #   LDFLAGS for LINK  command
  58. #LDOSFLAGS = /A:16 /BASE:0x10000 /EXEPACK /STACK:64000 /PM:VIO
  59. LDFLAGS   = /PM:VIO /BATCH /E /MAP /NOI /NOL /NOD /DE /CO $(LIBFLAGS)
  60.  
  61.  
  62. #===================================================================
  63. #   LDLIBS for LINK  command
  64. MPTNLIBS = so32dll.lib
  65. DCELIBS  = dceos2.lib
  66. OS2LIBS  = dde4mbs.lib os2386.lib 
  67. GLUELIB  = $(MAKEDCE)\lib\glue.lib
  68. LDLIBS   = $(GLUELIB) $(DCELIBS) $(MPTNLIBS) $(OS2LIBS)
  69.  
  70. LINK     = LINK386  $(LDFLAGS)
  71. CC       = ICC $(CFLAGS)
  72.  
  73. .c.obj:
  74.     @echo Compiling $*.c file
  75.     @$(CC) -Fo$*.obj $*.c
  76.  
  77. help:
  78.    @echo Do one of the following:
  79.    @echo 1. nmake help  - to display this message
  80.    @echo 2. nmake $(PROGRAM) - to make the Non-DCE '$(PROGRAM)' program
  81.    @echo 3. nmake $(IDLFILE1).idl - to make the IDL file for $(MANAGER1).c
  82.    @echo 4. nmake $(IDLFILE2).idl - to make the IDL file for $(MANAGER2).c
  83.    @echo 5. nmake /C $(CLIENT) - to make the $(CLIENT) application
  84.    @echo 6. nmake /C $(SERVER1) - to make the $(SERVER1) application
  85.    @echo 7. nmake /C $(SERVER2) - to make the $(SERVER2) application
  86.    @echo 8. nmake clean - to clean all non-source files.
  87.  
  88. $(IDLFILE1).idl: $(MANAGER1).c
  89.    @echo "-->Making $(IDLFILE1).idl"
  90.    @$(UUIDGEN) -i > uuidgen.idl
  91.    $(IDLGEN) $(IDLGENFLAGS) -interface $(IDLFILE1) /I$(GLUEINC) $(DEFINES) uuidgen.idl $(MANAGER1).c > $(IDLFILE1).idl
  92.  
  93. $(IDLFILE2).idl: $(MANAGER2).c
  94.    @echo "-->Making $(IDLFILE2).idl"
  95.    @$(UUIDGEN) -i > uuidgen.idl
  96.    $(IDLGEN) $(IDLGENFLAGS) -interface $(IDLFILE2) /I$(GLUEINC) $(DEFINES) uuidgen.idl $(MANAGER2).c > $(IDLFILE2).idl
  97.  
  98. $(IDLFILE1)_cstub.c: $(IDLFILE1).idl
  99.    @echo "--> Making client DCE stub for $(IDLFILE1).idl"
  100.    $(IDL) $(IDLFILE1).idl $(IDLFLAGS) -server none
  101.  
  102. $(IDLFILE2)_cstub.c: $(IDLFILE2).idl
  103.    @echo "--> Making client DCE stub for $(IDLFILE2).idl"
  104.    $(IDL) $(IDLFILE2).idl $(IDLFLAGS) -server none
  105.  
  106. $(IDLFILE1)_sstub.c: $(IDLFILE1).idl
  107.    @echo "--> Making  server DCE stub for $(IDLFILE1).idl"
  108.    $(IDL) $(IDLFILE1).idl $(IDLFLAGS) -client none
  109.  
  110. $(IDLFILE2)_sstub.c: $(IDLFILE2).idl
  111.    @echo "--> Making  server DCE stub for $(IDLFILE2).idl"
  112.    $(IDL) $(IDLFILE2).idl $(IDLFLAGS) -client none
  113.  
  114. $(APFFILE).apf: $(IDLFILE1).idl $(IDLFILE2).idl
  115.  
  116. $(CLIENT)_gstub.c $(IDLFILE1).acf $(IDLFILE2).acf: $(APFFILE).apf
  117.    @echo "--> Making glue stub for $(CLIENT) application"
  118.    $(GLUEGEN) $(APFFILE).apf $(CLIENT) $(GLUEGENFLAGS)
  119.  
  120. $(SERVER1)_gstub.c $(IDLFILE1).acf: $(APFFILE).apf
  121.    @echo "--> Making glue stub for $(SERVER1) application"
  122.    $(GLUEGEN) $(APFFILE).apf $(SERVER1) $(GLUEGENFLAGS)
  123.  
  124. $(SERVER2)_gstub.c $(IDLFILE2).acf: $(APFFILE).apf
  125.    @echo "--> Making glue stub for $(SERVER2) application"
  126.    $(GLUEGEN) $(APFFILE).apf $(SERVER2) $(GLUEGENFLAGS)
  127.  
  128. client_OFILES = $(CSTUB) $(CAUX) fmain.obj $(CLIENT).obj $(OTHER_CLIENT_OFILES)
  129.  
  130. server1_OFILES = $(SSTUB1) $(SAUX) $(SERVER1).obj $(MANAGER1).obj $(OTHER_SERVER_OFILES)
  131.  
  132. server2_OFILES = $(SSTUB2) $(SAUX) $(SERVER2).obj $(MANAGER2).obj $(OTHER_SERVER_OFILES)
  133.  
  134. $(CLIENT): $(client_OFILES) fmain.c client.exe
  135.  
  136. client.exe: 
  137.    @echo "-->Linking $(CLIENT) application"
  138.    @$(LINK) $(client_OFILES),$(CLIENT),$(CLIENT),$(LDLIBS);
  139.    @echo Making $(CLIENT) application completed
  140.  
  141. $(SERVER1): $(server1_OFILES) server1.exe
  142.  
  143. $(SERVER2): $(server2_OFILES) server2.exe
  144.  
  145. server1.exe:
  146.    @echo "-->Linking $(SERVER1) application"
  147.    @$(LINK) $(server1_OFILES),$(SERVER1),$(SERVER1),$(LDLIBS);
  148.    @echo Making $(SERVER1) application completed
  149.  
  150. server2.exe:
  151.    @echo "-->Linking $(SERVER2) application"
  152.    @$(LINK) $(server2_OFILES),$(SERVER2),$(SERVER2),$(LDLIBS);
  153.    @echo Making $(SERVER2) application completed
  154.  
  155. $(PROGRAM): $(PROGRAM_OFILES)
  156.    @echo "-->Making $(PROGRAM) application"
  157.    @$(LINK) $(PROGRAM_OFILES),$(PROGRAM),$(PROGRAM),$(LDLIBS);
  158.  
  159. .IGNORE:
  160.  
  161. fmain.c : $(PROGRAM).c
  162.    @echo "-->Making fmain.c"
  163.    @cmd /C "$(SED) -e "s/main/fmain/" $(PROGRAM).c  > fmain.c"
  164.  
  165. .IGNORE:
  166.  
  167. RMFILES = *.obj *.acf uuidgen.idl *.map copy.lst fmain.c core \
  168.           *_gstub* *_cstub* *_sstub* *_caux* *_saux* \
  169.           $(IDLFILE1).h $(IDLFILE2).h $(CLIENT).exe $(SERVER1).exe $(SERVER2).exe \
  170.           $(PROGRAM).exe $(CLIENT).c $(SERVER1).c $(SERVER2).c
  171.  
  172. .IGNORE:
  173.  
  174. clean:
  175.    @cmd /C del $(RMFILES)  2> /dev/nul
  176.  
  177. cl:
  178.    @cmd /C del $(RMFILES)  2> /dev/nul
  179.    @rm *.idl *.acf
  180.  
  181. .IGNORE:
  182.  
  183. touch:
  184.     touch $(IDLFILE1).idl $(IDLFILE2).idl $(PROGRAM).apf
  185.  
  186. fmain.obj: fmain.c
  187.