neon.mak 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. #**** neon Win32 -*- Makefile -*- ********************************************
  2. #
  3. # Define DEBUG_BUILD to create a debug version of the library.
  4. !IF "$(OS)" == "Windows_NT"
  5. NULL=
  6. !ELSE
  7. NULL=nul
  8. !ENDIF
  9. ########
  10. # Debug vs. Release build
  11. !IF "$(DEBUG_BUILD)" == ""
  12. INTDIR = Release
  13. CFLAGS = /MD /W3 /GX /O2 /D "NDEBUG"
  14. TARGET = .\libneon.lib
  15. !ELSE
  16. INTDIR = Debug
  17. CFLAGS = /MDd /W3 /Gm /GX /Zi /Od /D "_DEBUG"
  18. TARGET = .\libneonD.lib
  19. !ENDIF
  20. ########
  21. # Whether to build SSPI
  22. !IF "$(SSPI_BUILD)" != ""
  23. CFLAGS = $(CFLAGS) /D HAVE_SSPI
  24. !ENDIF
  25. ########
  26. # Support for Expat integration
  27. #
  28. # If EXPAT_SRC or EXPAT_INC are set, then assume compiling against a
  29. # pre-built binary Expat 1.95.X. You can use either EXPAT_SRC
  30. # to specify the top-level Expat directory, or EXPAT_INC to directly
  31. # specify the Expat include directory. (If both are set, EXPAT_SRC
  32. # is ignored).
  33. #
  34. # If EXPAT_SRC and EXPAT_INC are not set, then the user can
  35. # still set EXPAT_FLAGS to specify very specific compile behavior.
  36. #
  37. # If none of EXPAT_SRC, EXPAT_INC and EXPAT_FLAGS are set, disable
  38. # WebDAV support.
  39. !IF "$(EXPAT_INC)" == ""
  40. !IF "$(EXPAT_SRC)" != ""
  41. EXPAT_INC = $(EXPAT_SRC)\Source\Lib
  42. !ENDIF
  43. !ENDIF
  44. BUILD_EXPAT = 1
  45. !IF "$(EXPAT_INC)" == ""
  46. !IFNDEF EXPAT_FLAGS
  47. EXPAT_FLAGS =
  48. BUILD_EXPAT =
  49. !ENDIF
  50. !ELSE
  51. EXPAT_FLAGS = /I "$(EXPAT_INC)" /D HAVE_EXPAT /D HAVE_EXPAT_H /D NE_HAVE_DAV
  52. !ENDIF
  53. ########
  54. # Support for OpenSSL integration
  55. !IF "$(OPENSSL_SRC)" == ""
  56. OPENSSL_FLAGS =
  57. !ELSE
  58. OPENSSL_FLAGS = /I "$(OPENSSL_SRC)\inc32" /D NE_HAVE_SSL /D HAVE_OPENSSL
  59. !ENDIF
  60. ########
  61. # Support for zlib integration
  62. !IF "$(ZLIB_SRC)" == ""
  63. ZLIB_FLAGS =
  64. ZLIB_LIBS =
  65. ZLIB_CLEAN =
  66. !ELSE
  67. ZLIB_CLEAN = ZLIB_CLEAN
  68. !IF "$(DEBUG_BUILD)" == ""
  69. ZLIB_STATICLIB = zlib.lib
  70. ZLIB_SHAREDLIB = zlib1.dll
  71. ZLIB_IMPLIB = zdll.lib
  72. ZLIB_LDFLAGS = /nologo /release
  73. !ELSE
  74. ZLIB_STATICLIB = zlib_d.lib
  75. ZLIB_SHAREDLIB = zlib1_d.dll
  76. ZLIB_IMPLIB = zdll_d.lib
  77. ZLIB_LDFLAGS = /nologo /debug
  78. !ENDIF
  79. ZLIB_FLAGS = /I "$(ZLIB_SRC)" /D NE_HAVE_ZLIB
  80. !IF "$(ZLIB_DLL)" == ""
  81. ZLIB_LIBS = "$(ZLIB_SRC)\$(ZLIB_STATICLIB)"
  82. !ELSE
  83. ZLIB_FLAGS = $(ZLIB_FLAGS) /D ZLIB_DLL
  84. ZLIB_LIBS = "$(ZLIB_SRC)\$(ZLIB_IMPLIB)"
  85. !ENDIF
  86. !ENDIF
  87. ########
  88. # Support for IPv6
  89. !IF "$(ENABLE_IPV6)" == "yes"
  90. IPV6_FLAGS = /D USE_GETADDRINFO
  91. !ENDIF
  92. # Exclude stuff we don't need from the Win32 headers
  93. WIN32_DEFS = /D WIN32_LEAN_AND_MEAN /D NOUSER /D NOGDI /D NONLS /D NOCRYPT
  94. CPP=cl.exe
  95. CPP_PROJ = /c /nologo $(CFLAGS) $(WIN32_DEFS) $(EXPAT_FLAGS) $(OPENSSL_FLAGS) $(ZLIB_FLAGS) $(IPV6_FLAGS) /D "HAVE_CONFIG_H" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\"
  96. LIB32=link.exe -lib
  97. LIB32_FLAGS=/nologo /out:"$(TARGET)"
  98. LIB32_OBJS= \
  99. "$(INTDIR)\ne_alloc.obj" \
  100. "$(INTDIR)\ne_auth.obj" \
  101. "$(INTDIR)\ne_basic.obj" \
  102. "$(INTDIR)\ne_compress.obj" \
  103. "$(INTDIR)\ne_dates.obj" \
  104. "$(INTDIR)\ne_i18n.obj" \
  105. "$(INTDIR)\ne_md5.obj" \
  106. "$(INTDIR)\ne_pkcs11.obj" \
  107. "$(INTDIR)\ne_redirect.obj" \
  108. "$(INTDIR)\ne_request.obj" \
  109. "$(INTDIR)\ne_session.obj" \
  110. "$(INTDIR)\ne_socket.obj" \
  111. "$(INTDIR)\ne_socks.obj" \
  112. "$(INTDIR)\ne_sspi.obj" \
  113. "$(INTDIR)\ne_string.obj" \
  114. "$(INTDIR)\ne_uri.obj" \
  115. "$(INTDIR)\ne_utils.obj"
  116. !IF "$(BUILD_EXPAT)" != ""
  117. LIB32_OBJS= \
  118. $(LIB32_OBJS) \
  119. "$(INTDIR)\ne_207.obj" \
  120. "$(INTDIR)\ne_xml.obj" \
  121. "$(INTDIR)\ne_xmlreq.obj" \
  122. "$(INTDIR)\ne_oldacl.obj" \
  123. "$(INTDIR)\ne_acl3744.obj" \
  124. "$(INTDIR)\ne_props.obj" \
  125. "$(INTDIR)\ne_locks.obj"
  126. !ENDIF
  127. !IF "$(OPENSSL_SRC)" != ""
  128. LIB32_OBJS = $(LIB32_OBJS) "$(INTDIR)\ne_openssl.obj"
  129. !IFDEF OPENSSL_STATIC
  130. LIB32_OBJS = $(LIB32_OBJS) "$(OPENSSL_SRC)\out32\libeay32.lib" \
  131. "$(OPENSSL_SRC)\out32\ssleay32.lib"
  132. !ELSE
  133. LIB32_OBJS = $(LIB32_OBJS) "$(OPENSSL_SRC)\out32dll\libeay32.lib" \
  134. "$(OPENSSL_SRC)\out32dll\ssleay32.lib"
  135. !ENDIF
  136. !ELSE
  137. # Provide ABI-compatibility stubs for SSL interface
  138. LIB32_OBJS = $(LIB32_OBJS) "$(INTDIR)\ne_stubssl.obj"
  139. !ENDIF
  140. !IF "$(ZLIB_SRC)" != ""
  141. LIB32_OBJS = $(LIB32_OBJS) $(ZLIB_LIBS)
  142. !ENDIF
  143. ALL: ".\src\config.h" "$(TARGET)"
  144. CLEAN: $(ZLIB_CLEAN)
  145. -@erase "$(INTDIR)\ne_207.obj"
  146. -@erase "$(INTDIR)\ne_alloc.obj"
  147. -@erase "$(INTDIR)\ne_oldacl.obj"
  148. -@erase "$(INTDIR)\ne_acl3744.obj"
  149. -@erase "$(INTDIR)\ne_auth.obj"
  150. -@erase "$(INTDIR)\ne_basic.obj"
  151. -@erase "$(INTDIR)\ne_compress.obj"
  152. -@erase "$(INTDIR)\ne_dates.obj"
  153. -@erase "$(INTDIR)\ne_i18n.obj"
  154. -@erase "$(INTDIR)\ne_locks.obj"
  155. -@erase "$(INTDIR)\ne_md5.obj"
  156. -@erase "$(INTDIR)\ne_props.obj"
  157. -@erase "$(INTDIR)\ne_redirect.obj"
  158. -@erase "$(INTDIR)\ne_request.obj"
  159. -@erase "$(INTDIR)\ne_session.obj"
  160. -@erase "$(INTDIR)\ne_openssl.obj"
  161. -@erase "$(INTDIR)\ne_stubssl.obj"
  162. -@erase "$(INTDIR)\ne_pkcs11.obj"
  163. -@erase "$(INTDIR)\ne_socket.obj"
  164. -@erase "$(INTDIR)\ne_socks.obj"
  165. -@erase "$(INTDIR)\ne_sspi.obj"
  166. -@erase "$(INTDIR)\ne_string.obj"
  167. -@erase "$(INTDIR)\ne_uri.obj"
  168. -@erase "$(INTDIR)\ne_utils.obj"
  169. -@erase "$(INTDIR)\ne_xml.obj"
  170. -@erase "$(INTDIR)\ne_xmlreq.obj"
  171. -@erase "$(TARGET)"
  172. -@erase ".\src\config.h"
  173. "$(TARGET)": $(DEF_FILE) $(LIB32_OBJS)
  174. -@if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
  175. $(LIB32) @<<
  176. $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
  177. <<
  178. {src}.c{$(INTDIR)}.obj::
  179. -@if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
  180. $(CPP) @<<
  181. $(CPP_PROJ) $<
  182. <<
  183. ".\src\config.h": config.hw
  184. -@if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
  185. <<tempfile.bat
  186. @echo off
  187. copy .\config.hw .\src\config.h > nul
  188. echo Created config.h from config.hw
  189. <<
  190. "$(INTDIR)\ne_207.obj": .\src\ne_207.c
  191. "$(INTDIR)\ne_alloc.obj": .\src\ne_alloc.c
  192. "$(INTDIR)\ne_acl3744.obj": .\src\ne_acl3744.c
  193. "$(INTDIR)\ne_oldacl.obj": .\src\ne_oldacl.c
  194. "$(INTDIR)\ne_auth.obj": .\src\ne_auth.c
  195. "$(INTDIR)\ne_basic.obj": .\src\ne_basic.c
  196. "$(INTDIR)\ne_compress.obj": .\src\ne_compress.c
  197. "$(INTDIR)\ne_dates.obj": .\src\ne_dates.c
  198. "$(INTDIR)\ne_i18n.obj": .\src\ne_i18n.c
  199. "$(INTDIR)\ne_locks.obj": .\src\ne_locks.c
  200. "$(INTDIR)\ne_md5.obj": .\src\ne_md5.c
  201. "$(INTDIR)\ne_props.obj": .\src\ne_props.c
  202. "$(INTDIR)\ne_redirect.obj": .\src\ne_redirect.c
  203. "$(INTDIR)\ne_request.obj": .\src\ne_request.c
  204. "$(INTDIR)\ne_session.obj": .\src\ne_session.c
  205. "$(INTDIR)\ne_openssl.obj": .\src\ne_openssl.c
  206. "$(INTDIR)\ne_stubssl.obj": .\src\ne_stubssl.c
  207. "$(INTDIR)\ne_pkcs11.obj": .\src\ne_pkcs11.c
  208. "$(INTDIR)\ne_socket.obj": .\src\ne_socket.c
  209. "$(INTDIR)\ne_socks.obj": .\src\ne_socks.c
  210. "$(INTDIR)\ne_sspi.obj": .\src\ne_sspi.c
  211. "$(INTDIR)\ne_string.obj": .\src\ne_string.c
  212. "$(INTDIR)\ne_uri.obj": .\src\ne_uri.c
  213. "$(INTDIR)\ne_utils.obj": .\src\ne_utils.c
  214. "$(INTDIR)\ne_xml.obj": .\src\ne_xml.c
  215. "$(INTDIR)\ne_xmlreq.obj": .\src\ne_xmlreq.c
  216. "$(ZLIB_SRC)\$(ZLIB_STATICLIB)":
  217. <<tempfile.bat
  218. @echo off
  219. cd /d "$(ZLIB_SRC)"
  220. $(MAKE) /nologo /f win32\Makefile.msc CFLAGS="/nologo $(CFLAGS)" LDFLAGS="$(ZLIB_LDFLAGS)" STATICLIB=$(ZLIB_STATICLIB) $(ZLIB_STATICLIB)
  221. <<
  222. "$(ZLIB_SRC)\$(ZLIB_IMPLIB)":
  223. <<tempfile.bat
  224. @echo off
  225. cd /d "$(ZLIB_SRC)"
  226. $(MAKE) /nologo /f win32\Makefile.msc CFLAGS="/nologo $(CFLAGS)" LDFLAGS="$(ZLIB_LDFLAGS)" SHAREDLIB=$(ZLIB_SHAREDLIB) IMPLIB=$(ZLIB_IMPLIB) $(ZLIB_SHAREDLIB) $(ZLIB_IMPLIB)
  227. <<
  228. ZLIB_CLEAN:
  229. <<tempfile.bat
  230. @echo off
  231. cd /d "$(ZLIB_SRC)"
  232. $(MAKE) /nologo /f win32\Makefile.msc STATICLIB=$(ZLIB_STATICLIB) SHAREDLIB=$(ZLIB_SHAREDLIB) IMPLIB=$(ZLIB_IMPLIB) clean
  233. <<