home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a025 / 6.ddi / SECURE.MAK < prev    next >
Encoding:
Text File  |  1992-09-15  |  4.7 KB  |  202 lines

  1. #********************************************************************#
  2. #**              Microsoft Open Data Services - LIBRARY            **#
  3. #**           Copyright(c) Microsoft Corp., 1987, 1988, 1989,        **#
  4. #**                         1990, 1991                                   **#                    
  5. #**                                                                   **#
  6. #********************************************************************#
  7.  
  8. .SUFFIXES:
  9. .SUFFIXES:    .src .dll .def .lnk .map .lib .c .asm
  10.  
  11. # Text for building copyright message in executable
  12. #
  13. COPYRIGHT = Copyright(c) Microsoft Corp., 1987,1988,1989,1990,1991
  14. PRODUCT = SECURE_SAMPLE
  15.  
  16.  
  17. # Where the components live
  18.  
  19. # drive for lanman
  20. #
  21. LANDRIVE = c:
  22.  
  23. # drive for c includes and libs
  24. #
  25. CDRIVE     = c:
  26.  
  27. # drive for build files
  28. #
  29. DRIVE     = c:
  30.  
  31. # lanman source path
  32. #
  33. LANROOT  = \lanman\netsrc
  34.  
  35. # build dir
  36. #
  37. BUILDBAS = \samples\SECURE\build
  38.  
  39. # SECURE source base
  40. #
  41. SQLbase = \sql
  42. GATEbase = $(SQLbase)\OPENDS
  43.  
  44. SRCDIR     = \samples\SECURE\src
  45. INCLBAS     = \include
  46. LANLIB     = $(LANDRIVE)$(LANROOT)\lib
  47. LANINC     = $(LANDRIVE)$(LANROOT)\h
  48. OBJDIR     = $(DRIVE)$(GATEbase)$(BUILDBAS)\OBJ
  49. SLOCATE  = $(DRIVE)$(GATEbase)$(SRCDIR)
  50. BLDDIR     = $(DRIVE)$(GATEbase)$(BUILDBAS)
  51. EXEDIR    = $(DRIVE)$(SQLbase)\BINP
  52.  
  53. # debug switches for cl, link and masm
  54. #
  55. LDEBUG     = /CO
  56. DEBUG     = i
  57. MDEBUG     =
  58.  
  59. INCDIR =  $(DRIVE)$(GATEbase)$(INCLBAS)
  60. MNLIBS    = SECRCBSp.lib OPENDSp.lib pDBLIB.lib LAN.lib
  61. CBLIBS    = LlibcDLL OS2 OPENDSp.lib pDBLIB.lib LAN.lib
  62.  
  63. # Definitions for new style linker
  64. #
  65. LINK    = link /SEGMENTS:255 $(LDEBUG)
  66. IMPLIB    = implib
  67.  
  68. # What we call the final result.
  69. #
  70. DLLNAME  = SECRCBSp
  71. GATELIB = $(DRIVE)$(GATEbase)\LIB
  72. GATEDLL = $(DRIVE)$(SQLbase)\DLL
  73.  
  74. # Definitions for C compiler
  75. #   - use Xenix style interface
  76. #   - enable language extensions
  77. #   - pack structures
  78. #   - remove default library info from object files
  79. #   - Maximum warnings
  80. #   - enable 286 code generation
  81. #   - disable stack checking
  82. #   - small code pointers, near data pointers, SS != DS w/ DS autoload
  83. #   - include debugging code
  84. #   - typecheck library calls
  85. #
  86. CC      = cl
  87. M_CFLAGS  = $(COPTION) $(CDEFINE) $(COPTIMIZE) $(CMISC)
  88. CFLAGS      = $(M_CFLAGS) $(CMODEL) $(CSEGMENT)
  89. COPTION   = -Zelp$(DEBUG) -G2
  90. CMODEL      = -Alfu -Lp
  91. CDEFINE   = -DLINT_ARGS -D_MT -D_DLL -DDBMSOS2
  92. CSEGMENT  =
  93. COPTIMIZE = -Op -Od
  94. CMISC      = -W3
  95.  
  96.  
  97. # Definitions for assembler
  98. #   - preserve case sensitivity
  99. #   - suppress messages for successful assembly
  100. #   - check for impure code
  101. #
  102. ASM    = masm
  103. AFLAGS    = -ML -Mx -t -p $(MDEBUG)
  104. AINC    =
  105.  
  106.  
  107. # Object file for main routine
  108. #
  109. OBJS = \
  110.     $(OBJDIR)\SECURE.obj
  111.  
  112. # Object files for callback DLL
  113. #
  114. OBJCBS = \
  115.     $(OBJDIR)\SECRCBS.obj
  116.     
  117.  
  118. # Header files for SECURE modules.
  119. #
  120. INCDEP = $(INCDIR)\srv.h
  121.  
  122.  
  123. # Build the Dynamic Link Library, forces full build under nmake.
  124. # This is the main dependency.
  125. #
  126. all : SECURE
  127.  
  128.  
  129. # compile/assemble command lines for each source directory.
  130. #
  131. {$(SLOCATE)}.asm{$(OBJDIR)}.obj:
  132.     $(ASM) $(AFLAGS) $(@B).asm, $(OBJDIR)\$(@B).obj;
  133.  
  134. {$(SLOCATE)}.c{$(OBJDIR)}.obj:
  135.     $(CC) $(CFLAGS) -Fo$(OBJDIR)\$(@B).obj -c $(SLOCATE)\$(@B).c
  136.  
  137.  
  138. # include dependencies
  139. #
  140. $(OBJDIR)\*.obj : $(INCDEP)
  141.  
  142.  
  143. # Build the component object files
  144. #
  145. src :    $(OBJS) $(OBJCBS)
  146.  
  147.  
  148. # Build the SECURE callback DLL
  149. #
  150. $(DLLNAME).def : 
  151.     @echo Building $@...
  152.     @echo LIBRARY $(DLLNAME) INITINSTANCE        >  $@
  153.     @echo DESCRIPTION '$(PRODUCT) $(COPYRIGHT)'    >> $@
  154.     @echo HEAPSIZE     65536                >> $@
  155.     @echo PROTMODE                    >> $@
  156.     @echo CODE LOADONCALL EXECUTEREAD NONCONFORMING >> $@
  157.     @echo DATA PRELOAD READWRITE MULTIPLE NONSHARED >> $@
  158.     @echo SEGMENTS                    >> $@
  159.     @echo    _TEXT                    >> $@
  160.     @echo    SECRCBS                 >> $@
  161.     @echo EXPORTS                    >> $@
  162.     @echo    _init_server            @1    >> $@
  163.     @echo    _set_remote_server_name        @2    >> $@
  164.     @echo    _chk_err            @3    >> $@
  165.     @echo    _set_security_options        @4    >> $@
  166.  
  167. # Additional export statements go here.
  168.  
  169.  
  170. # Build linker response file.
  171. #
  172. $(DLLNAME).lnk: 
  173.     @echo Building $@...
  174.     @echo This line makes sure $@ file exists        > $@
  175.     @del $@
  176.     @for %%i in ($(OBJDIR)\SECRCBS*.obj) do echo %%i + >> $@
  177.     @echo.                           >> $@
  178.     @echo $(GATEDLL)\$(DLLNAME).dll               >> $@
  179.     @echo.                           >> $@
  180.     @echo /NOI /NOD $(CBLIBS)               >> $@
  181.     @echo $(DLLNAME).def                   >> $@
  182.  
  183. # Build import lib
  184. #
  185. $(GATELIB)\$(DLLNAME).lib: $(DLLNAME).def
  186.     $(IMPLIB) $(GATELIB)\$(DLLNAME).lib $(DLLNAME).def
  187.     @echo $(DLLNAME).lib built
  188.  
  189. # build DLL and all componets for it
  190. #
  191. $(GATEDLL)\$(DLLNAME).dll: $(DLLNAME).lnk $(OBJCBS)
  192.     $(LINK) @$(DLLNAME).lnk
  193.     @echo $(GATEDLL)\$(DLLNAME).dll built.
  194.  
  195.  
  196. # Build the SECURE callback DLLs and executable
  197. #
  198. SECURE:  $(GATELIB)\$(DLLNAME).lib src $(GATEDLL)\$(DLLNAME).dll
  199.     $(CC) $(CFLAGS) -Fm $(OBJDIR)\$(@B).obj -Fe$(EXEDIR)\$(@B).exe $(MNLIBS)
  200.     exehdr /PMTYPE:WINDOWCOMPAT $(EXEDIR)\$(@B).exe
  201. 
  202.