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