home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Internet Business Development Kit / PRODUCT_CD.iso / sqlsvr / esqlc / esql / samples.c / makefile < prev    next >
Encoding:
Makefile  |  1995-11-21  |  5.9 KB  |  257 lines

  1. ##############################################################################
  2. #
  3. #   FILE: MAKEFILE
  4. #
  5. #       Embedded SQL for C NMAKE file for all platforms
  6. #
  7. #       APP=app                 Base application name, no extension
  8. #       UTIL=util               Base utility module name, no extension
  9. #       ENV=win16               Windows 3.1
  10. #           qwin                QuickWin
  11. #           msvcnti             Visual C++ for Intel
  12. #           win32i              Win32 SDK for Intel
  13. #       MODEL=medium            16-bit medium memory model (default)
  14. #             large             16-bit large memory model
  15. #       SUBSYS=windows          Windows NT window app (default)
  16. #              console          Windows NT console app
  17. #       DEBUG=0                 Debug off (default)
  18. #             1                 Debug on
  19. #
  20. #       SQLACCESS=0             Do not create stored procedures
  21. #                 1             Create stored procedures (default)
  22. #       BIND=0                  Connect to SQL Server (default)
  23. #            1                  Create a bind file
  24. #
  25. #       SERVER=sqlserver        SQL Server name
  26. #       LOGIN=login             Login ID
  27. #       PASSWORD=password       Password
  28. #       DATABASE=database       Database to use
  29. #
  30. #       DBLIB=0                 Do not link to DB-Library (default)
  31. #             1                 Link to DB-Library
  32. #
  33. #   COMMENTS:
  34. #
  35. #       Copyright (C) 1992 - 1994 Microsoft Corporation
  36. #
  37. ##############################################################################
  38.  
  39. !if "$(APP)" == ""
  40. !error APP not specified!
  41. !endif
  42.  
  43. !if "$(UTIL)" == ""
  44. !error UTIL not specified!
  45. !endif
  46.  
  47. !if "$(ENV)" == ""
  48. !error ENV not specified!
  49. !endif
  50.  
  51. !if "$(MODEL)" == "large"
  52. MM = L
  53. !else
  54. MM = M
  55. !endif
  56.  
  57. !if "$(ENV)" == "win16" || "$(ENV)" == "qwin"
  58. LINK = link
  59. CC = cl
  60. RC = rc
  61. !endif
  62.  
  63. !if "$(ENV)" == "win16"
  64. SQLPREP = sqlprep
  65. CC_FLAGS_ENV = /GA /A$(MM) 
  66. LINK_FLAGS_ENV =
  67. RC_FLAGS_ENV =
  68. CC_FLAGS_DEBUG_ENV =
  69. LINK_FLAGS_DEBUG_ENV = /CO
  70. SYS_LIBS = libw.lib
  71. CRT_LIBS = $(MM)libcew.lib
  72. ESQL_LIBS = sqlakw.lib caw.lib
  73. DB_LIBRARY = w3dblib.lib
  74. APP_RES = $(APP).res
  75. APP_DEF = $(APP).def
  76. !endif
  77.  
  78. !if "$(ENV)" == "qwin"
  79. SQLPREP = sqlprep
  80. CC_FLAGS_ENV = /GA /A$(MM) 
  81. LINK_FLAGS_ENV =
  82. RC_FLAGS_ENV =
  83. CC_FLAGS_DEBUG_ENV =
  84. LINK_FLAGS_DEBUG_ENV = /CO
  85. SYS_LIBS = libw.lib
  86. CRT_LIBS = $(MM)libcewq.lib
  87. ESQL_LIBS = sqlakw.lib caw.lib
  88. DB_LIBRARY = w3dblib.lib
  89. APP_RES =
  90. APP_DEF = quickwin.def
  91. !endif
  92.  
  93. !if "$(ENV)" == "msvcnti"
  94. LINK = link
  95. CC = cl
  96. RC = rc
  97. SQLPREP = nsqlprep
  98. CC_FLAGS_ENV = /D"_X86_"
  99. CC_FLAGS_ENV =
  100. LINK_FLAGS_ENV =
  101. RC_FLAGS_ENV =
  102. CC_FLAGS_DEBUG_ENV =
  103. LINK_FLAGS_DEBUG_ENV = /debug:full /debugtype:cv
  104. SYS_LIBS = kernel32.lib
  105. CRT_LIBS = libcmt.lib
  106. ESQL_LIBS = sqlakw32.lib caw32.lib
  107. DB_LIBRARY = ntwdblib.lib
  108. !endif
  109.  
  110. !if "$(ENV)" == "win32i"
  111. LINK = link32
  112. CC = cl386
  113. RC = rc
  114. SQLPREP = nsqlprep
  115. CC_FLAGS_ENV = /D"_X86_" 
  116. LINK_FLAGS_ENV =
  117. RC_FLAGS_ENV = /fores.tmp
  118. CC_FLAGS_DEBUG_ENV =
  119. LINK_FLAGS_DEBUG_ENV = /debug:full /debugtype:cv
  120. SYS_LIBS = kernel32.lib
  121. CRT_LIBS = libcmt.lib
  122. ESQL_LIBS = sqlakw32.lib caw32.lib
  123. DB_LIBRARY = ntwdblib.lib
  124. !endif
  125.  
  126. !if "$(SUBSYS)" == "console"
  127. CC_FLAGS_SUBSYS =
  128. LINK_FLAGS_SUBSYS = /subsystem:console
  129. SUBSYS_LIBS =
  130. APP_RES =
  131. !endif
  132.  
  133. !if "$(SUBSYS)" == "windows"
  134. CC_FLAGS_SUBSYS =
  135. LINK_FLAGS_SUBSYS = /subsystem:windows
  136. SUBSYS_LIBS = user32.lib gdi32.lib
  137. APP_RES = $(APP).res
  138. !endif
  139.  
  140. !if "$(DEBUG)" == "1"
  141. CC_FLAGS_DEBUG = /Zi /Od /D"_DEBUG" $(CC_FLAGS_DEBUG_ENV)
  142. LINK_FLAGS_DEBUG = $(LINK_FLAGS_DEBUG_ENV)
  143. RC_FLAGS_DEBUG = /D"_DEBUG" $(RC_FLAGS_DEBUG_ENV)
  144. !else
  145. CC_FLAGS_DEBUG = /D"NDEBUG"
  146. LINK_FLAGS_DEBUG =
  147. RC_FLAGS_DEBUG = /D"NDEBUG"
  148. !endif
  149.  
  150. CC_FLAGS = /c /W3 $(CC_FLAGS_ENV) $(CC_FLAGS_SUBSYS) $(CC_FLAGS_DEBUG)
  151. LINK_FLAGS = /NOD $(LINK_FLAGS_ENV) $(LINK_FLAGS_SUBSYS) $(LINK_FLAGS_DEBUG)
  152. RC_FLAGS = /r $(RC_FLAGS_ENV) $(RC_FLAGS_DEBUG)
  153.  
  154. !if "$(DATABASE)" == ""
  155. DB = pubs
  156. !else
  157. DB = $(DATABASE)
  158. !endif
  159.  
  160. !if "$(SERVER)" == ""
  161. PREP_DB = $(DB)
  162. !else
  163. PREP_DB = $(SERVER).$(DB)
  164. !endif
  165.  
  166. !if "$(PASSWORD)" == ""
  167. PREP_PASS = $(LOGIN)
  168. !else
  169. PREP_PASS = $(LOGIN).$(PASSWORD)
  170. !endif
  171.  
  172. !if "$(SQLACCESS)" == "0"
  173. PREP_ACCESS = /NOSQLACCESS
  174. !else
  175. PREP_ACCESS = /SQLACCESS
  176. !endif
  177.  
  178. !if "$(BIND)" == "1"
  179. SQLPREP_FLAGS = $(PREP_ACCESS) /BIND $(APP)
  180. !else
  181. SQLPREP_FLAGS = $(PREP_ACCESS) /DB $(PREP_DB) /PASS $(PREP_PASS)
  182. !endif
  183.  
  184. !if "$(DBLIB)" == "1"
  185. DBLIB_LIBS = $(DB_LIBRARY)
  186. !else
  187. DBLIB_LIBS = 
  188. !endif
  189.  
  190. LIBS = $(SYS_LIBS) $(CRT_LIBS) $(SUBSYS_LIBS) $(ESQL_LIBS) $(DBLIB_LIBS)
  191.  
  192. #
  193. # This first 'all' target displays echo messages, then builds the app
  194. #
  195. all: echo $(APP).exe
  196.  
  197. #
  198. # This builds the Windows NT for Intel app
  199. #
  200. !if "$(ENV)" == "win32i" || "$(ENV)" == "msvcnti"
  201. $(APP).exe: $(APP).obj $(UTIL).obj $(APP_RES)
  202.     $(LINK) $(LINK_FLAGS) $(APP).obj $(UTIL).obj $(APP_RES) $(LIBS)
  203. !endif
  204.  
  205. #
  206. # This builds the Windows or QuickWin app
  207. #
  208. !if "$(ENV)" == "win16" || "$(ENV)" == "qwin"
  209. $(APP).exe:: $(APP).obj $(UTIL).obj $(APP_DEF)
  210.     $(LINK) $(LINK_FLAGS) $(APP).obj $(UTIL).obj,,,$(LIBS),$(APP_DEF);
  211. !endif
  212.  
  213. #
  214. # This adds the Windows resource to the app
  215. #
  216. !if "$(ENV)" == "win16"
  217. $(APP).exe:: $(APP_RES)
  218.     $(RC) /t $(APP_RES)
  219. !endif
  220.  
  221. #
  222. # This builds the app object file
  223. #
  224. $(APP).obj: $(APP).c $(APP).h
  225.     $(CC) $(CC_FLAGS) $(APP).c
  226.  
  227. #
  228. # This builds the utililty object file
  229. #
  230. $(UTIL).obj: $(UTIL).c $(UTIL).h
  231.     $(CC) $(CC_FLAGS) $(UTIL).c
  232.  
  233. #
  234. # This builds the app resource 
  235. #
  236. $(APP).res: $(APP).rc $(APP).h $(APP).ico
  237.     $(RC) $(RC_FLAGS) $(APP).rc
  238. !if "$(ENV)" == "win32i"
  239.     cvtres /i386 res.tmp /o $(APP).res
  240. !endif
  241.  
  242. #
  243. # This builds the app C source from the Embedded SQL for C .SQC source
  244. #
  245. $(APP).c: $(APP).sqc
  246.     $(SQLPREP) $(APP) $(SQLPREP_FLAGS)
  247.  
  248. #
  249. # This handles apps without a header
  250. #
  251. $(APP).h:
  252.  
  253. echo:
  254.     @echo.
  255.     @echo NMAKE building $(APP).EXE
  256.     @echo.
  257.