home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Internet Business Development Kit / PRODUCT_CD.iso / sqlsvr / odbcsdk / samples / quiktest / makefile < prev    next >
Encoding:
Makefile  |  1994-12-07  |  7.7 KB  |  264 lines

  1. #---------------------------------------------------------------------------------
  2. #    File:        MAKEFILE
  3. #        Copyright (c) 1993 Microsoft Corp., All rights reserved
  4. #
  5. #    Purpose:
  6. #        This makefile will compile both 16 and 32-bit auto test DLL's.  See
  7. #        the documentation for the BUILD.EXE utility program for more details.
  8. #---------------------------------------------------------------------------------
  9.  
  10.  
  11.  
  12. #-------------------------------------------------------------------------
  13. #  When user specifies -o, this section is set
  14. #-------------------------------------------------------------------------
  15. #setenv:
  16.  
  17.  
  18. #-------------------------------------------------------------------------
  19. #       Set platform compiler and linker flags
  20. #-------------------------------------------------------------------------
  21. !IF "$(ALPHA)" == "Y"
  22. CPLATFORM = _ALPHA_
  23. LPLATFORM = ALPHA
  24. !ELSEIF "$(MIPS)" == "Y"
  25. CPLATFORM = _MIPS_
  26. LPLATFORM = MIPS
  27. !ELSE
  28. CPLATFORM = _X86_
  29. LPLATFORM = i386
  30. !ENDIF
  31.  
  32.  
  33. #-------------------------------------------------------------------------
  34. #    Set flags for 16-bit version
  35. #-------------------------------------------------------------------------
  36. !IF "$(WIN32)" == "N"
  37. cc     = cl
  38. LINK = link $(LDEBUG)
  39. LIBDIR =  ..\..\LIB\LIB16
  40. !IF "$(DEBUG)" == "Y"
  41. CDBG = -nologo -AL -G2sw -W2 -Zi -Od -NT$(@B) -D_DEBUG -DWINDOWS -DDLL_INVOKED 
  42. LDEBUG = /NOD /NOE /align:32 /SEGMENTS:511 /CO
  43. RDEBUG = /dDEBUG
  44. OBJDIR = .\DEBUG
  45. OBJDIR = $(OBJDIRDBGY)
  46. EXEDIR = $(OBJDIRDBGY)
  47. !ELSE
  48. CDBG = -nologo -AL -Gsw -W2 -Ox -NT$(@B) -DWINDOWS -DDLL_INVOKED
  49. LDEBUG = /NOD /NOE /align:32
  50. OBJDIR = $(OBJDIRDBGN)
  51. EXEDIR = $(OBJDIRDBGN)
  52. !ENDIF
  53. !ELSE
  54. #-------------------------------------------------------------------------
  55. #    Set flags for 32-bit version
  56. #-------------------------------------------------------------------------
  57. cc     = cl
  58. LINK = link -entry:TstLibMain$(DLLENTRY) -machine:$(LPLATFORM) /PDB:NONE $(LDEBUG)
  59. LIBS  = user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib ole32.lib shell32.lib odbc32.lib gtrtst32.lib
  60. LIBDIR  =  ..\..\LIB32
  61. !IF "$(DEBUG)" == "Y"
  62. CDBG = /nologo /W3 /Zi /D "$(CPLATFORM)" /D "_DEBUG" /D "WIN32" /DDLL_INVOKED /MT
  63. LDEBUG = -debug:full -debugtype:cv
  64. RDEBUG = -d_DEBUG
  65. OBJDIR = $(OBJDIRDBGY)
  66. EXEDIR = $(OBJDIRDBGY)
  67. !ELSE
  68. CDBG = /nologo /W3 /D "$(CPLATFORM)" /D "WIN32" -DDLL_INVOKED /MT
  69. LDEBUG = 
  70. OBJDIR = $(OBJDIRDBGN)
  71. EXEDIR = $(OBJDIRDBGN)
  72. !ENDIF
  73. !ENDIF
  74.  
  75.  
  76. #-------------------------------------------------------------------------
  77. #    List common dependencies
  78. #-------------------------------------------------------------------------
  79. SQLINC  =  ..\..\INCLUDE
  80. TSTINC  =  .
  81. INCTEST =    $(SQLINC)\sql.h \
  82.         $(SQLINC)\sqlext.h \
  83.         $(TSTINC)\autotest.h
  84.  
  85.  
  86. #-------------------------------------------------------------------------
  87. #    Entire makefile is dependent on the test DLL and the correct environment
  88. #-------------------------------------------------------------------------
  89. all:            $(EXEDIR)\$(TSTNM).dll 
  90.  
  91.  
  92. #-------------------------------------------------------------------------
  93. #    Create the TEST.DEF file based on our values
  94. #-------------------------------------------------------------------------
  95. $(EXEDIR)\TEST.DEF:  
  96.     @echo LIBRARY            $(TSTNM)                                                >     $@
  97.     @echo DESCRIPTION        '$(TSTNM) Test DLL'                                >>    $@
  98.     @echo CODE                PRELOAD MOVEABLE LOADONCALL DISCARDABLE    >>    $@
  99.     @echo    DATA                PRELOAD MOVEABLE                                    >>    $@
  100.     @echo HEAPSIZE            5120                                                    >> $@
  101.     @echo    PROTMODE                                                                    >> $@
  102.     @echo    SEGMENTS                                                                    >> $@
  103. !IF "$(WIN32)" == "N"
  104.     @echo EXETYPE            WINDOWS                                                >> $@
  105.     @echo STUB                'WINSTUB.EXE'                                        >> $@
  106. !ENDIF
  107.     @echo EXPORTS                                                                    >> $@
  108. !IF "$(WIN32)" == "Y"
  109.     @echo            TstLibMain                                                        >> $@
  110. !ELSE 
  111.     @echo            LibMain                                                            >> $@
  112. !ENDIF
  113.     @echo            AutoTestName                                                    >> $@
  114.     @echo            AutoTestDesc                                                    >> $@
  115.     @echo            AutoTestFunc                                                    >> $@
  116.  
  117.  
  118. #-------------------------------------------------------------------------
  119. #    List the .OBJ dependencies
  120. #-------------------------------------------------------------------------
  121.  
  122. #
  123. #  The following will always be used
  124. #
  125. $(OBJDIR)\$(TSTNM).obj:    $(SRCDIR)\$(TSTNM).C \
  126.                                 .\DLLSTUB.C \
  127.                                 .\MAKEFILE \
  128. !IF "$(HFILE)" == "Y"
  129.                                 $(INCDIR)\$(TSTNM).H \
  130. !ENDIF
  131.                                 $(INCTEST)
  132.     $(cc) $(CDBG) -I$(INCDIR) -Fo$(OBJDIR)\$(@B).obj -c $(SRCDIR)\$(@B).c
  133.  
  134. #
  135. #  This dependency is for auto tests with more than one .C file.
  136. #
  137. !IF "$(ADDL1)" == "Y"
  138. $(OBJDIR)\$(TSTNM)1.obj:    $(SRCDIR)\$(TSTNM)1.C \
  139.                                 .\DLLSTUB.C \
  140.                                 .\MAKEFILE \
  141. !IF "$(HFILE)" == "Y"
  142.                                 $(INCDIR)\$(TSTNM).H \
  143. !ENDIF
  144.                                 $(INCTEST)
  145.     $(cc) $(CDBG) -DADDL_AUTO_TEST -I$(INCDIR) -Fo$(OBJDIR)\$(@B).obj -c $(SRCDIR)\$(@B).c
  146. !ENDIF
  147.  
  148. !IF "$(ADDL2)" == "Y"
  149. $(OBJDIR)\$(TSTNM)2.obj:    $(SRCDIR)\$(TSTNM)2.C \
  150.                                 .\DLLSTUB.C \
  151.                                 .\MAKEFILE \
  152. !IF "$(HFILE)" == "Y"
  153.                                 $(INCDIR)\$(TSTNM).H \
  154. !ENDIF
  155.                                 $(INCTEST)
  156.     $(cc) $(CDBG) -DADDL_AUTO_TEST -I$(INCDIR) -Fo$(OBJDIR)\$(@B).obj -c $(SRCDIR)\$(@B).c
  157. !ENDIF
  158.  
  159.  
  160.  
  161. #
  162. #  The stub is required to make a full DLL
  163. #
  164. $(OBJDIR)\DLLSTUB.obj:    .\DLLSTUB.C 
  165.     $(cc) $(CDBG) -Fo$(OBJDIR)\$(@B).obj -c .\$(@B).c
  166.  
  167.  
  168.  
  169.  
  170. #-------------------------------------------------------------------------
  171. #    Build .res file
  172. #-------------------------------------------------------------------------
  173. !IF "$(RCFILE)" == "Y"
  174. $(OBJDIR)\$(TSTNM).res:     $(INCDIR)\$(TSTNM).H \
  175.                                 $(RCDIR)\$(TSTNM).rc 
  176.     rc $(RDEBUG) -r -i $(INCDIR) -FO$(OBJDIR)\$(TSTNM).res $(RCDIR)\$(TSTNM).rc
  177. !ENDIF
  178.  
  179.               
  180. #-------------------------------------------------------------------------
  181. #    Do the .lib which is required for NT
  182. #-------------------------------------------------------------------------
  183. #!IF "$(WIN32)" == "Y"
  184. #$(OBJDIR)\$(TSTNM).LIB:    $(EXEDIR)\TEST.DEF 
  185. #    $(LIB) -machine:$(CPU)                        \
  186. #    -def:$(EXEDIR)\TEST.DEF                        \
  187. #    -out:$(OBJDIR)\$(TSTNM).LIB                \
  188. #        $(OBJDIR)\$(TSTNM).OBJ                    \
  189. #        $(OBJDIR)\DLLSTUB.OBJ
  190. #!ENDIF
  191.  
  192.               
  193. #-------------------------------------------------------------------------
  194. #    Now do the executable
  195. #-------------------------------------------------------------------------
  196.  
  197. #  First do 16-bit
  198. !IF "$(WIN32)" == "N"
  199. $(EXEDIR)\$(TSTNM).dll:    $(OBJDIR)\$(TSTNM).OBJ \
  200.                                 $(OBJDIR)\DLLSTUB.OBJ \
  201. !IF "$(ADDL1)" == "Y" 
  202.                                 $(OBJDIR)\$(TSTNM)1.OBJ \
  203. !ENDIF
  204. !IF "$(ADDL2)" == "Y" 
  205.                                 $(OBJDIR)\$(TSTNM)2.OBJ \
  206. !ENDIF
  207.                                 $(LIBDIR)\GATORTST.LIB \
  208. !IF "$(RCFILE)" == "Y"
  209.                                 $(OBJDIR)\$(TSTNM).RES \
  210. !ENDIF
  211.                                 $(EXEDIR)\TEST.DEF \
  212.                                 .\MAKEFILE
  213.     $(LINK) @<<
  214. /MAP +
  215. $(OBJDIR)\DLLSTUB.OBJ +
  216. !IF "$(ADDL1)" == "Y"
  217. $(OBJDIR)\$(TSTNM)1.OBJ +
  218. !ENDIF
  219. !IF "$(ADDL2)" == "Y"
  220. $(OBJDIR)\$(TSTNM)2.OBJ +
  221. !ENDIF
  222. $(OBJDIR)\$(TSTNM).OBJ,
  223. $(EXEDIR)\$(TSTNM).DLL,
  224. NUL,
  225.   libw ldllcew commdlg odbc gatortst,
  226.     $(EXEDIR)\TEST.DEF
  227. <<
  228. !IF "$(RCFILE)" == "Y"
  229.   rc -K -31 -t $(OBJDIR)\$(TSTNM).RES $(EXEDIR)\$(TSTNM).DLL
  230. !ENDIF
  231. !ELSE
  232. # Now do 32-bit
  233. $(EXEDIR)\$(TSTNM).dll:    $(OBJDIR)\$(TSTNM).OBJ $(OBJDIR)\DLLSTUB.OBJ $(LIBDIR)\GTRTST32.LIB $(EXEDIR)\TEST.DEF \
  234. !IF "$(ADDL1)" == "Y"
  235.                                 $(OBJDIR)\$(TSTNM)1.OBJ \
  236. !ENDIF
  237. !IF "$(ADDL2)" == "Y"
  238.                                 $(OBJDIR)\$(TSTNM)2.OBJ \
  239. !ENDIF
  240. !IF "$(RCFILE)" == "Y"
  241.                                 $(OBJDIR)\$(TSTNM).res \
  242. !ENDIF
  243.                                 .\MAKEFILE
  244.     echo >NUL @<<$(TSTNM).CRF
  245. $(OBJDIR)\$(TSTNM).OBJ
  246. $(OBJDIR)\DLLSTUB.OBJ
  247. !IF "$(ADDL1)" == "Y"
  248. $(OBJDIR)\$(TSTNM)1.OBJ
  249. !ENDIF
  250. !IF "$(ADDL2)" == "Y"
  251. $(OBJDIR)\$(TSTNM)2.OBJ
  252. !ENDIF
  253. -DLL -OUT:$(EXEDIR)\$(TSTNM).dll
  254. !IF "$(RCFILE)" == "Y"
  255. $(OBJDIR)\$(TSTNM).res
  256. !ENDIF
  257. -def:$(OBJDIR)\TEST.DEF -implib:$(OBJDIR)\$(TSTNM).LIB
  258. <<
  259.    $(LINK) $(LIBS) @$(TSTNM).CRF
  260. !ENDIF
  261.  
  262.  -@del $(OBJDIR)\TEST.DEF
  263. 
  264.