makefile.msc 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510
  1. # $LynxId: makefile.msc,v 1.29 2013/12/17 23:01:31 tom Exp $
  2. #
  3. # Makefile for `Lynx' browser for Microsoft Visual C++ 4.2 or later
  4. #
  5. ###############################################################################
  6. # These are the symbols that you may wish to set on the command line:
  7. # DEBUG - nonempty for debugging
  8. # ETC_LIB - the directory containing PDCurses and ZLib (libraries and headers)
  9. # OPT_CS - nonempty to use color-style
  10. # OPT_SOCK - nonempty to build with winsock2
  11. # OPT_SSL - nonempty to build with OpenSSL
  12. # SSL_DIR - directory containing OpenSSL
  13. # SCREEN - name of screen-library (pdcurses)
  14. # PROGNAME - name of executable (lynx.exe)
  15. ###############################################################################
  16. CC = cl
  17. LD = link
  18. SRC_DIR = src
  19. WWW_DIR = WWW\Library\Implementation
  20. # pdcurses.lib panel.lib dirent.obj curses.h panel.h dirent.h
  21. !if "$(ETC_LIB)" == ""
  22. ETC_LIB = lib
  23. !endif
  24. # Select a screen-library
  25. !if "$(SCREEN)" == ""
  26. SCREEN = pdcurses
  27. !endif
  28. # Enable the CS_DEFS and CS_OBJS lines if you wish to build the color-style
  29. # configuration.
  30. !if "$(OPT_CS)" != ""
  31. CS_DEFS = /D "CHAR_BIT=8" /D "USE_COLOR_STYLE"
  32. CS_OBJS = "LYHash.obj" "LYStyle.obj"
  33. !endif
  34. # Enable SOCK_DEFS if you wish to build with winsock2.
  35. !if "$(OPT_SOCK)" != ""
  36. SOCK_DEFS = /D "USE_WINSOCK2_H" /D "_WIN32_WINNT=0x0400"
  37. !endif
  38. # Enable these to build with OpenSSL, adjusting SSL_DIR as needed.
  39. !if "$(OPT_SSL)" != ""
  40. !if "$(SSL_DIR)" == ""
  41. SSL_DIR = C:\OpenSSL
  42. !endif
  43. SSL_DEFS = /D "USE_SSL" -I "$(SSL_DIR)\include" -I"$(SSL_DIR)\include\openssl"
  44. SSL_LIBS = "$(SSL_DIR)\lib\ssleay32.lib" "$(SSL_DIR)\lib\libeay32.lib"
  45. !endif
  46. !if "$(SCREEN)" == "pdcurses"
  47. SCREEN_DEFS = /D "PDCURSES" /D "COLOR_CURSES" /D "FANCY_CURSES" /D "WIDE_CURSES"
  48. SCREEN_LIB = pdcurses
  49. !else
  50. SCREEN_DEFS = /D "USE_SLANG" /D "SLANG_DLL"
  51. SCREEN_LIB = wslang32
  52. !endif
  53. INCLUDES = \
  54. /I "." \
  55. /I "$(SRC_DIR)" \
  56. /I "$(SRC_DIR)\chrtrans" \
  57. /I "$(WWW_DIR)" \
  58. /I "$(ETC_LIB)"
  59. DEFS = /D "WIN32_LEAN_AND_MEAN" $(CS_DEFS) $(SOCK_DEFS) $(SSL_DEFS) $(SCREEN_DEFS) \
  60. /D "ACCESS_AUTH" \
  61. /D "CJK_EX" \
  62. /D "DIRED_SUPPORT" \
  63. /D "DISP_PARTIAL" \
  64. /D "DONT_HAVE_TM_GMTOFF" \
  65. /D "DOSPATH" \
  66. /D "USE_ALT_BINDINGS" \
  67. /D "EXP_NESTED_TABLES" \
  68. /D "HAVE_KEYPAD" \
  69. /D "LONG_LIST" \
  70. /D "NDEBUG" \
  71. /D "NOSIGHUP" \
  72. /D "NOUSERS" \
  73. /D "NO_CONFIG_INFO" \
  74. /D "NO_CUSERID" \
  75. /D "NO_FILIO_H" \
  76. /D "NO_TTYTYPE" \
  77. /D "NO_UNISTD_H" \
  78. /D "NO_UTMP" \
  79. /D "OK_OVERRIDE" \
  80. /D "SH_EX" \
  81. /D "USE_CMD_LOGGING" \
  82. /D "USE_EXTERNALS" \
  83. /D "USE_FILE_UPLOAD" \
  84. /D "USE_JUSTIFY_ELTS" \
  85. /D "USE_MULTIBYTE_CURSES" \
  86. /D "USE_PERSISTENT_COOKIES" \
  87. /D "USE_PRETTYSRC" \
  88. /D "USE_READPROGRESS" \
  89. /D "USE_SCROLLBAR" \
  90. /D "USE_SOURCE_CACHE" \
  91. /D "USE_BZLIB" \
  92. /D "USE_ZLIB" \
  93. /D "WIN32" \
  94. /D "WIN_EX" \
  95. /D "_CONSOLE" \
  96. /D "_MBCS" \
  97. /D "_WINDOWS" \
  98. /D "__WIN32__" \
  99. /D LY_MAXPATH="1024" \
  100. /D _WIN_CC="1" \
  101. /D VC="2.14FM"
  102. # /GX == /EHsc ==
  103. # /EHs enable C++ EH (no SEH exceptions) /EHa enable C++ EH (w/ SEH exceptions)
  104. # /EHc extern "C" defaults to nothrow
  105. !if "$(DEBUG)" == ""
  106. CFLAGS = /nologo /MT /W3 /EHsc /O2 /c
  107. LDFLAGS = /nologo /subsystem:console /incremental:no /machine:I386
  108. !else
  109. CFLAGS = /nologo /MT /W3 /EHsc /Zi /c
  110. LDFLAGS = /debug /nologo /subsystem:console /incremental:no /machine:I386
  111. !endif
  112. LIBS = kernel32.lib user32.lib wsock32.lib advapi32.lib /NODEFAULTLIB:libc\
  113. $(ETC_LIB)\$(SCREEN_LIB).lib $(ETC_LIB)\libbz2.lib $(ETC_LIB)\zlib.lib dirent.obj $(SSL_LIBS)
  114. COMPILE = $(CC) $(CFLAGS) $(INCLUDES) $(DEFS)
  115. LINK = $(LD) $(LDFLAGS) /map:lynx.map /out:$@
  116. OBJS = $(CS_OBJS) \
  117. "DefaultStyle.obj" \
  118. "GridText.obj" \
  119. "HTAABrow.obj" \
  120. "HTAAProt.obj" \
  121. "HTAAUtil.obj" \
  122. "HTAccess.obj" \
  123. "HTAlert.obj" \
  124. "HTAnchor.obj" \
  125. "HTAssoc.obj" \
  126. "HTAtom.obj" \
  127. "HTBTree.obj" \
  128. "HTChunk.obj" \
  129. "HTDOS.obj" \
  130. "HTFTP.obj" \
  131. "HTFWriter.obj" \
  132. "HTFile.obj" \
  133. "HTFinger.obj" \
  134. "HTFormat.obj" \
  135. "HTGopher.obj" \
  136. "HTGroup.obj" \
  137. "HTInit.obj" \
  138. "HTLex.obj" \
  139. "HTList.obj" \
  140. "HTMIME.obj" \
  141. "HTML.obj" \
  142. "HTMLDTD.obj" \
  143. "HTMLGen.obj" \
  144. "HTNews.obj" \
  145. "HTParse.obj" \
  146. "HTPlain.obj" \
  147. "HTRules.obj" \
  148. "HTString.obj" \
  149. "HTStyle.obj" \
  150. "HTTCP.obj" \
  151. "HTTP.obj" \
  152. "HTTelnet.obj" \
  153. "HTUU.obj" \
  154. "HTWSRC.obj" \
  155. "LYBookmark.obj" \
  156. "LYCgi.obj" \
  157. "LYCharSets.obj" \
  158. "LYCharUtils.obj" \
  159. "LYClean.obj" \
  160. "LYCookie.obj" \
  161. "LYCurses.obj" \
  162. "LYDownload.obj" \
  163. "LYEdit.obj" \
  164. "LYEditmap.obj" \
  165. "LYExtern.obj" \
  166. "LYForms.obj" \
  167. "LYGetFile.obj" \
  168. "LYHistory.obj" \
  169. "LYJump.obj" \
  170. "LYKeymap.obj" \
  171. "LYLeaks.obj" \
  172. "LYList.obj" \
  173. "LYLocal.obj" \
  174. "LYMail.obj" \
  175. "LYMain.obj" \
  176. "LYMainLoop.obj" \
  177. "LYMap.obj" \
  178. "LYNews.obj" \
  179. "LYOptions.obj" \
  180. "LYPrettySrc.obj" \
  181. "LYPrint.obj" \
  182. "LYReadCFG.obj" \
  183. "LYSearch.obj" \
  184. "LYSession.obj" \
  185. "LYShowInfo.obj" \
  186. "LYStrings.obj" \
  187. "LYTraversal.obj" \
  188. "LYUpload.obj" \
  189. "LYUtils.obj" \
  190. "parsdate.obj" \
  191. "LYexit.obj" \
  192. "LYmktime.obj" \
  193. "LYrcFile.obj" \
  194. "SGML.obj" \
  195. "TRSTable.obj" \
  196. "UCAuto.obj" \
  197. "UCAux.obj" \
  198. "UCdomap.obj" \
  199. "Xsystem.obj" \
  200. "LYIcon.obj"
  201. # Dependencies for building
  202. .SUFFIXES : .i
  203. .c.i :
  204. $(CC) $(INCLUDES) $(DEFS) /P $<
  205. !if "$(PROGNAME)" == ""
  206. PROGNAME = lynx.exe
  207. !endif
  208. all : $(PROGNAME)
  209. clean :
  210. -del *.map
  211. -del *.obj
  212. -del *.res
  213. -del/f/s/q *.i
  214. $(PROGNAME) : $(OBJS) dirent.obj
  215. $(LINK) $(OBJS) $(LIBS)
  216. DefaultStyle.obj : $(SRC_DIR)\DefaultStyle.c
  217. $(COMPILE) $(SRC_DIR)\DefaultStyle.c
  218. GridText.obj : $(SRC_DIR)\GridText.c
  219. $(COMPILE) $(SRC_DIR)\GridText.c
  220. HTAlert.obj : $(SRC_DIR)\HTAlert.c
  221. $(COMPILE) $(SRC_DIR)\HTAlert.c
  222. HTFWriter.obj : $(SRC_DIR)\HTFWriter.c
  223. $(COMPILE) $(SRC_DIR)\HTFWriter.c
  224. HTInit.obj : $(SRC_DIR)\HTInit.c
  225. $(COMPILE) $(SRC_DIR)\HTInit.c
  226. HTML.obj : $(SRC_DIR)\HTML.c
  227. $(COMPILE) $(SRC_DIR)\HTML.c
  228. LYBookmark.obj : $(SRC_DIR)\LYBookmark.c
  229. $(COMPILE) $(SRC_DIR)\LYBookmark.c
  230. LYCgi.obj : $(SRC_DIR)\LYCgi.c
  231. $(COMPILE) $(SRC_DIR)\LYCgi.c
  232. LYCharSets.obj : $(SRC_DIR)\LYCharSets.c
  233. $(COMPILE) $(SRC_DIR)\LYCharSets.c
  234. LYCharUtils.obj : $(SRC_DIR)\LYCharUtils.c
  235. $(COMPILE) $(SRC_DIR)\LYCharUtils.c
  236. LYClean.obj : $(SRC_DIR)\LYClean.c
  237. $(COMPILE) $(SRC_DIR)\LYClean.c
  238. LYCookie.obj : $(SRC_DIR)\LYCookie.c
  239. $(COMPILE) $(SRC_DIR)\LYCookie.c
  240. LYCurses.obj : $(SRC_DIR)\LYCurses.c
  241. $(COMPILE) $(SRC_DIR)\LYCurses.c
  242. LYDownload.obj : $(SRC_DIR)\LYDownload.c
  243. $(COMPILE) $(SRC_DIR)\LYDownload.c
  244. LYEdit.obj : $(SRC_DIR)\LYEdit.c
  245. $(COMPILE) $(SRC_DIR)\LYEdit.c
  246. LYEditmap.obj : $(SRC_DIR)\LYEditmap.c
  247. $(COMPILE) $(SRC_DIR)\LYEditmap.c
  248. LYexit.obj : $(SRC_DIR)\LYexit.c
  249. $(COMPILE) $(SRC_DIR)\LYexit.c
  250. LYExtern.obj : $(SRC_DIR)\LYExtern.c
  251. $(COMPILE) $(SRC_DIR)\LYExtern.c
  252. LYForms.obj : $(SRC_DIR)\LYForms.c
  253. $(COMPILE) $(SRC_DIR)\LYForms.c
  254. LYGetFile.obj : $(SRC_DIR)\LYGetFile.c
  255. $(COMPILE) $(SRC_DIR)\LYGetFile.c
  256. LYHash.obj : $(SRC_DIR)\LYHash.c
  257. $(COMPILE) $(SRC_DIR)\LYHash.c
  258. LYHistory.obj : $(SRC_DIR)\LYHistory.c
  259. $(COMPILE) $(SRC_DIR)\LYHistory.c
  260. LYJump.obj : $(SRC_DIR)\LYJump.c
  261. $(COMPILE) $(SRC_DIR)\LYJump.c
  262. LYKeymap.obj : $(SRC_DIR)\LYKeymap.c
  263. $(COMPILE) $(SRC_DIR)\LYKeymap.c
  264. LYLeaks.obj : $(SRC_DIR)\LYLeaks.c
  265. $(COMPILE) $(SRC_DIR)\LYLeaks.c
  266. LYList.obj : $(SRC_DIR)\LYList.c
  267. $(COMPILE) $(SRC_DIR)\LYList.c
  268. LYLocal.obj : $(SRC_DIR)\LYLocal.c
  269. $(COMPILE) $(SRC_DIR)\LYLocal.c
  270. LYMail.obj : $(SRC_DIR)\LYMail.c
  271. $(COMPILE) $(SRC_DIR)\LYMail.c
  272. LYMain.obj : $(SRC_DIR)\LYMain.c
  273. $(COMPILE) $(SRC_DIR)\LYMain.c
  274. LYMainLoop.obj : $(SRC_DIR)\LYMainLoop.c
  275. $(COMPILE) $(SRC_DIR)\LYMainLoop.c
  276. LYMap.obj : $(SRC_DIR)\LYMap.c
  277. $(COMPILE) $(SRC_DIR)\LYMap.c
  278. LYNews.obj : $(SRC_DIR)\LYNews.c
  279. $(COMPILE) $(SRC_DIR)\LYNews.c
  280. LYOptions.obj : $(SRC_DIR)\LYOptions.c
  281. $(COMPILE) $(SRC_DIR)\LYOptions.c
  282. LYPrettySrc.obj : $(SRC_DIR)\LYPrettySrc.c
  283. $(COMPILE) $(SRC_DIR)\LYPrettySrc.c
  284. LYPrint.obj : $(SRC_DIR)\LYPrint.c
  285. $(COMPILE) $(SRC_DIR)\LYPrint.c
  286. LYmktime.obj : $(SRC_DIR)\LYmktime.c
  287. $(COMPILE) $(SRC_DIR)\LYmktime.c
  288. LYrcFile.obj : $(SRC_DIR)\LYrcFile.c
  289. $(COMPILE) $(SRC_DIR)\LYrcFile.c
  290. LYReadCFG.obj : $(SRC_DIR)\LYReadCFG.c
  291. $(COMPILE) $(SRC_DIR)\LYReadCFG.c
  292. LYSearch.obj : $(SRC_DIR)\LYSearch.c
  293. $(COMPILE) $(SRC_DIR)\LYSearch.c
  294. LYSession.obj : $(SRC_DIR)\LYSession.c
  295. $(COMPILE) $(SRC_DIR)\LYSession.c
  296. LYShowInfo.obj : $(SRC_DIR)\LYShowInfo.c
  297. $(COMPILE) $(SRC_DIR)\LYShowInfo.c
  298. LYStrings.obj : $(SRC_DIR)\LYStrings.c
  299. $(COMPILE) $(SRC_DIR)\LYStrings.c
  300. LYStyle.obj : $(SRC_DIR)\LYStyle.c
  301. $(COMPILE) $(SRC_DIR)\LYStyle.c
  302. LYTraversal.obj : $(SRC_DIR)\LYTraversal.c
  303. $(COMPILE) $(SRC_DIR)\LYTraversal.c
  304. LYUpload.obj : $(SRC_DIR)\LYUpload.c
  305. $(COMPILE) $(SRC_DIR)\LYUpload.c
  306. LYUtils.obj : $(SRC_DIR)\LYUtils.c
  307. $(COMPILE) $(SRC_DIR)\LYUtils.c
  308. parsdate.obj : $(SRC_DIR)\parsdate.c
  309. $(COMPILE) $(SRC_DIR)\parsdate.c
  310. TRSTable.obj : $(SRC_DIR)\TRSTable.c
  311. $(COMPILE) $(SRC_DIR)\TRSTable.c
  312. mktime.obj : $(SRC_DIR)\mktime.c
  313. $(COMPILE) $(SRC_DIR)\mktime.c
  314. strstr.obj : $(SRC_DIR)\strstr.c
  315. $(COMPILE) $(SRC_DIR)\strstr.c
  316. UCAuto.obj : $(SRC_DIR)\UCAuto.c
  317. $(COMPILE) $(SRC_DIR)\UCAuto.c
  318. UCAux.obj : $(SRC_DIR)\UCAux.c
  319. $(COMPILE) $(SRC_DIR)\UCAux.c
  320. UCdomap.obj : $(SRC_DIR)\UCdomap.c
  321. $(COMPILE) $(SRC_DIR)\UCdomap.c
  322. Xsystem.obj : $(SRC_DIR)\Xsystem.c
  323. $(COMPILE) $(SRC_DIR)\Xsystem.c
  324. LYIcon.obj : $(SRC_DIR)\LYIcon.rc
  325. cd $(SRC_DIR)
  326. $(RC) /r /fo ..\LYIcon.res LYIcon.rc
  327. cd ..
  328. cvtres /verbose /machine:ix86 LYIcon.res
  329. dirent.obj : $(ETC_LIB)\dirent.c
  330. $(COMPILE) $(ETC_LIB)\dirent.c
  331. HTAABrow.obj : $(WWW_DIR)\HTAABrow.c
  332. $(COMPILE) $(WWW_DIR)\HTAABrow.c
  333. HTAAFile.obj : $(WWW_DIR)\HTAAFile.c
  334. $(COMPILE) $(WWW_DIR)\HTAAFile.c
  335. HTAAProt.obj : $(WWW_DIR)\HTAAProt.c
  336. $(COMPILE) $(WWW_DIR)\HTAAProt.c
  337. HTAAUtil.obj : $(WWW_DIR)\HTAAUtil.c
  338. $(COMPILE) $(WWW_DIR)\HTAAUtil.c
  339. HTAccess.obj : $(WWW_DIR)\HTAccess.c
  340. $(COMPILE) $(WWW_DIR)\HTAccess.c
  341. HTAnchor.obj : $(WWW_DIR)\HTAnchor.c
  342. $(COMPILE) $(WWW_DIR)\HTAnchor.c
  343. HTAssoc.obj : $(WWW_DIR)\HTAssoc.c
  344. $(COMPILE) $(WWW_DIR)\HTAssoc.c
  345. HTAtom.obj : $(WWW_DIR)\HTAtom.c
  346. $(COMPILE) $(WWW_DIR)\HTAtom.c
  347. HTBTree.obj : $(WWW_DIR)\HTBTree.c
  348. $(COMPILE) $(WWW_DIR)\HTBTree.c
  349. HTChunk.obj : $(WWW_DIR)\HTChunk.c
  350. $(COMPILE) $(WWW_DIR)\HTChunk.c
  351. HTDOS.obj : $(WWW_DIR)\HTDOS.c
  352. $(COMPILE) $(WWW_DIR)\HTDOS.c
  353. HTFile.obj : $(WWW_DIR)\HTFile.c
  354. $(COMPILE) $(WWW_DIR)\HTFile.c
  355. HTFinger.obj : $(WWW_DIR)\HTFinger.c
  356. $(COMPILE) $(WWW_DIR)\HTFinger.c
  357. HTFormat.obj : $(WWW_DIR)\HTFormat.c
  358. $(COMPILE) $(WWW_DIR)\HTFormat.c
  359. HTFTP.obj : $(WWW_DIR)\HTFTP.c
  360. $(COMPILE) $(WWW_DIR)\HTFTP.c
  361. HTGopher.obj : $(WWW_DIR)\HTGopher.c
  362. $(COMPILE) $(WWW_DIR)\HTGopher.c
  363. HTGroup.obj : $(WWW_DIR)\HTGroup.c
  364. $(COMPILE) $(WWW_DIR)\HTGroup.c
  365. HTLex.obj : $(WWW_DIR)\HTLex.c
  366. $(COMPILE) $(WWW_DIR)\HTLex.c
  367. HTList.obj : $(WWW_DIR)\HTList.c
  368. $(COMPILE) $(WWW_DIR)\HTList.c
  369. HTMIME.obj : $(WWW_DIR)\HTMIME.c
  370. $(COMPILE) $(WWW_DIR)\HTMIME.c
  371. HTMLDTD.obj : $(WWW_DIR)\HTMLDTD.c
  372. $(COMPILE) $(WWW_DIR)\HTMLDTD.c
  373. HTMLGen.obj : $(WWW_DIR)\HTMLGen.c
  374. $(COMPILE) $(WWW_DIR)\HTMLGen.c
  375. HTNews.obj : $(WWW_DIR)\HTNews.c
  376. $(COMPILE) $(WWW_DIR)\HTNews.c
  377. HTParse.obj : $(WWW_DIR)\HTParse.c
  378. $(COMPILE) $(WWW_DIR)\HTParse.c
  379. HTPlain.obj : $(WWW_DIR)\HTPlain.c
  380. $(COMPILE) $(WWW_DIR)\HTPlain.c
  381. HTRules.obj : $(WWW_DIR)\HTRules.c
  382. $(COMPILE) $(WWW_DIR)\HTRules.c
  383. HTString.obj : $(WWW_DIR)\HTString.c
  384. $(COMPILE) $(WWW_DIR)\HTString.c
  385. HTStyle.obj : $(WWW_DIR)\HTStyle.c
  386. $(COMPILE) $(WWW_DIR)\HTStyle.c
  387. HTTCP.obj : $(WWW_DIR)\HTTCP.c
  388. $(COMPILE) $(WWW_DIR)\HTTCP.c
  389. HTTelnet.obj : $(WWW_DIR)\HTTelnet.c
  390. $(COMPILE) $(WWW_DIR)\HTTelnet.c
  391. HTTP.obj : $(WWW_DIR)\HTTP.c
  392. $(COMPILE) $(WWW_DIR)\HTTP.c
  393. HTUU.obj : $(WWW_DIR)\HTUU.c
  394. $(COMPILE) $(WWW_DIR)\HTUU.c
  395. HTWSRC.obj : $(WWW_DIR)\HTWSRC.c
  396. $(COMPILE) $(WWW_DIR)\HTWSRC.c
  397. SGML.obj : $(WWW_DIR)\SGML.c
  398. $(COMPILE) $(WWW_DIR)\SGML.c