home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / makedce.zip / EXAMPLES.ZIP / examples / RULES.MAK < prev   
Text File  |  1994-10-17  |  5KB  |  174 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. # /Ms     use system 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  $(IDLFILE)_cstub.obj
  34. SSTUB   = $(SERVER)_gstub.obj  $(IDLFILE)_sstub.obj
  35. FMAINARG =
  36.  
  37. IDLFLAGS = -no_cpp -keep c_source
  38. IDLGENFLAGS = -stdin -ibd +v -interface $(IDLFILE)
  39. GLUEGENFLAGS = -keep c_source /I$(GLUEINC) $(FMAINARG)
  40.  
  41. #===================================================================
  42. #   CFLAGS for CC command
  43. #
  44. CARGS       = /C /Gd+ /Ms /Q+ /W3 /O- /Sd+ /Sem /U4
  45.  
  46. INCLUDES    = /I. /I$(DCEINC) /I$(GLUEINC)
  47.  
  48. #SO32FLAGS   = /DMPTN /DMT /DSO32 /DOS2 /DBSD_SELECT
  49. #THREADFLAGS = /D_CMA_PROTO_ /D_CMA_NOWRAPPERS_ /DCMA_UNIPROCESSOR
  50. DSSFLAGS    = /DINTEL80x86 /DIBMOS2 /D__STDC__ /DIDL_PROTOTYPES
  51. DEFINES     = $(DSSFLAGS) $(SO32FLAGS) $(THREADFLAGS)
  52.  
  53. CFLAGS      = $(CARGS) $(DEFINES) $(INCLUDES)
  54.  
  55. #===================================================================
  56. #   LDFLAGS for LINK  command
  57. #LDOSFLAGS = /A:16 /BASE:0x10000 /EXEPACK /STACK:64000 /PM:VIO
  58. LDFLAGS   = /PM:VIO /BATCH /E /MAP /NOI /NOL /NOD /DE /CO $(LIBFLAGS)
  59.  
  60.  
  61. #===================================================================
  62. #   LDLIBS for LINK  command
  63. MPTNLIBS = so32dll.lib
  64. DCELIBS  = dceos2.lib
  65. OS2LIBS  = dde4mbs.lib os2386.lib
  66. GLUELIB  = $(MAKEDCE)\lib\glue.lib
  67. LDLIBS   = $(GLUELIB) $(DCELIBS) $(MPTNLIBS) $(OS2LIBS)
  68.  
  69. LINK     = LINK386  $(LDFLAGS)
  70. CC       = ICC $(CFLAGS)
  71.  
  72. .c.obj:
  73.     @echo Compiling $*.c file
  74.     $(CC) -Fo$*.obj $*.c
  75.  
  76. help:
  77.    @echo Do one of the following:
  78.    @echo 1. nmake help  - to display this message
  79.    @echo 2. nmake $(PROGRAM) - to make the Non-DCE '$(PROGRAM)' program
  80.    @echo 3. nmake $(IDLFILE).idl - to make the IDL file for $(MANAGER).c
  81.    @echo 4. nmake stubs - to make all stubs (glue and idl).
  82.    @echo 5. nmake cstub - to make client GLUEGEN and DCE stubs. 
  83.    @echo 6. nmake sstub - to make server GLUEGEN and DCE stubs. 
  84.    @echo 7. nmake /C $(CLIENT) - to make the $(CLIENT) application
  85.    @echo 8. nmake /C $(SERVER) - to make the $(SERVER) application
  86.    @echo 9. nmake clean - to clean all non-source files.
  87.  
  88. $(IDLFILE).idl: $(MANAGER).c
  89.    @echo "-->Making $(IDLFILE).idl"
  90.    $(UUIDGEN) -i | $(IDLGEN) $(IDLGENFLAGS) /I$(GLUEINC) $(DEFINES) $(MANAGER).c > $(IDLFILE).idl
  91.  
  92. $(IDLFILE)_cstub.c: $(IDLFILE).idl
  93.    @echo "--> Making client DCE stub for $(IDLFILE).idl"
  94.    $(IDL) $(IDLFILE).idl $(IDLFLAGS) -server none
  95.  
  96. $(IDLFILE)_sstub.c: $(IDLFILE).idl
  97.    @echo "--> Making  server DCE stub for $(IDLFILE).idl"
  98.    $(IDL) $(IDLFILE).idl $(IDLFLAGS) -client none
  99.  
  100. $(APFFILE).apf: $(IDLFILE).idl
  101.  
  102. $(CLIENT)_gstub.c $(IDLFILE).acf: $(APFFILE).apf
  103.    @echo "--> Making glue stub for $(CLIENT) application"
  104.    $(GLUEGEN) $(APFFILE).apf $(CLIENT) $(GLUEGENFLAGS)
  105.  
  106. $(SERVER)_gstub.c $(IDLFILE).acf: $(APFFILE).apf
  107.    @echo "--> Making glue stub for $(SERVER) application"
  108.    $(GLUEGEN) $(APFFILE).apf $(SERVER) $(GLUEGENFLAGS)
  109.  
  110. client_OFILES = $(CSTUB) $(CAUX) fmain.obj $(CLIENT).obj $(OTHER_CLIENT_OFILES)
  111.  
  112. server_OFILES = $(SSTUB) $(SAUX) $(SERVER).obj $(MANAGER).obj $(OTHER_SERVER_OFILES)
  113.  
  114. stubs: $(CSTUB) $(SSTUB)
  115.    @echo "--> made all stubs"
  116.  
  117. cstub: $(CSTUB)
  118.    @echo "--> made client stubs"
  119.  
  120. sstub: $(SSTUB)
  121.    @echo "--> made server stubs"
  122.  
  123. $(CLIENT): $(client_OFILES) fmain.c client.exe
  124.  
  125. client.exe: 
  126.    @echo "-->Linking $(CLIENT) application"
  127.    $(LINK) $(client_OFILES),$(CLIENT),$(CLIENT),$(LDLIBS);
  128.    @echo Making $(CLIENT) application completed
  129.  
  130. $(SERVER): $(server_OFILES) server.exe
  131.  
  132. server.exe: 
  133.    @echo "-->Linking $(SERVER) application"
  134.    $(LINK) $(server_OFILES),$(SERVER),$(SERVER),$(LDLIBS);
  135.    @echo Making $(SERVER) application completed
  136.  
  137. $(PROGRAM): $(PROGRAM_OFILES)
  138.    @echo "-->Making $(PROGRAM) application"
  139.    @$(LINK) $(PROGRAM_OFILES),$(PROGRAM),$(PROGRAM),$(LDLIBS);
  140.  
  141. .IGNORE:
  142.  
  143. fmain.c : $(PROGRAM).c
  144.    @echo "-->Making fmain.c"
  145.    @cmd /C "$(SED) -e "s/main/fmain/" $(PROGRAM).c  > fmain.c"
  146.  
  147. .IGNORE:
  148.  
  149. RMFILES = *.obj uuidgen.idl *.map copy.lst fmain.c core \
  150.           *_gstub* *_cstub* *_sstub* *_caux* *_saux* \
  151.           $(IDLFILE).h $(CLIENT).exe $(SERVER).exe $(PROGRAM).exe \
  152.           $(CLIENT).c $(SERVER).c 
  153.  
  154. .IGNORE:
  155.  
  156. clean:
  157.    @cmd /C del $(RMFILES)  2> /dev/nul
  158.  
  159. cl:
  160.    @cmd /C del $(RMFILES)  2> /dev/nul
  161.    @rm *.idl *.acf
  162.  
  163. .IGNORE:
  164.  
  165. touch:
  166.     touch $(IDLFILE).idl $(PROGRAM).apf
  167.  
  168. fmain.obj: fmain.c
  169.  
  170.  
  171. 
  172.