1 2 Lynx Installation Guide 3 4This file describes how to compile and install Lynx. A description of Lynx 5can be found in the README file. Lynx has been ported to UN*X, VMS, Win32 6and 386DOS. The procedures for compiling these ports are quite divergent 7and are detailed respectively in Sections II, III, IV and V. General 8installation, problem solving and environment variables are covered in 9Sections VI and VII. There is also a PROBLEMS file in the same directory 10as INSTALLATION which contains advice for special problems people have 11encountered, especially for particular machines and operating systems. 12 13If you still have difficulties, send an e-mail message to the Lynx-Dev mailing 14list (see the README file). Try to include information about your system, 15the name and version of your compiler, which curses library you are using 16and the compile-time errors. Be sure to say what version and image-number 17of Lynx you are trying to build (alternately the top date of the CHANGES file). 18 19If you don't understand what one of the defines means, try the README.defines 20and *.announce files in the docs subdirectory. The docs/CHANGES* files record 21the entire development history of Lynx and are an invaluable resource for 22understanding how Lynx should perform. 23 24First, you must configure Lynx for your system regardless of the port you use. 25Follow the instructions given immediately below to configure for your system, 26and then go to the respective section concerning the port you wish to compile. 27 28------------------------------------------------------------------------------- 29 30I. General configuration instructions (all ports). 31 32Step 1. Compile-time Variables. 33 34 There are a few variables that MUST be defined if Lynx is to build 35 and there are others you may want to change. 36 37 Lynx MUST be able to find lynx.cfg at start-up: using configure 38 (e.g. with UNIX or Cygwin), its location is best set with --sysconfdir ; 39 you can check in lynx_cfg.h after configure has run, if you wish. 40 otherwise, you can use LYNX_CFG_FILE in userdefs.h , 41 environment variable LYNX_CFG or the -cfg command-line option. 42 43 If you are using configure, you need not make any changes in userdefs.h . 44 There are a few variables you can't define with configure --options 45 but can define in userdefs.h , e.g. numbering fields as well as links. 46 Many variables which can be defined with configure or userdefs.h 47 can also be defined in lynx.cfg or via the Options Menu. 48 49 Lynx implements Native Language Support. Read "ABOUT-NLS", if you want 50 to build an international version of Lynx or tailor status-line prompts, 51 messages and warnings to the requirements of your site. 52 53Step 2. Run-time Variables. 54 55 Read lynx.cfg thoroughly, as many Lynx features and how to use them 56 are explained there, in some cases ONLY there. Set up local printers, 57 downloaders, assumed character set, key mapping and colors in lynx.cfg . 58 Also see the sample mime.types, mailcap and jumps files 59 in the samples subdirectory. 60 61Step 3. Alternative Character Sets. 62 63 You may skip this, if you are not interested in special characters 64 and all local files or WWW pages you will view will use the ISO-8859-1 65 "ISO Latin 1" Western European character set. 66 67 If you will be running Lynx in an environment with different incompatible 68 character sets, configure CHARACTER_SET (the Display character set) 69 and ASSUME_LOCAL_CHARSET to work correctly before creating bookmark files 70 and other such items: read lynx.cfg for detailed instructions. 71 Additional character sets and their properties may be defined with tables 72 in the src/chrtrans directory: see the README.* files therein. 73 74Step 4. News. 75 76 Set NNTPSERVER in lynx.cfg to your site's NNTP server 77 or set the environment variable externally. For posting to be enabled, 78 NEWS_POSTING must be TRUE in userdefs.h or lynx.cfg. 79 Also define LYNX_SIG_FILE in userdefs.h or lynx.cfg , 80 so that it points to users' signature files for appending to messages. 81 82Step 5. Anonymous Accounts *** VERY IMPORTANT!!!!! *** 83 84 If you are building Lynx for personal use only, you can skip this. 85 86 If you are setting up anonymous accounts to use Lynx captively, 87 i.e. making Web access publicly available to users who should not 88 be allowed any other type of access to your system, 89 you are STRONGLY advised to use the -anonymous command-line option: 90 if you do not use this option, users may be able to gain access 91 to all readable files on your machine! 92 93 Many implementations of telnetd allow passing of environment variables, 94 which might be used to modify the environment in anonymous accounts, 95 allowing mischief or damage by malicious users, so make sure the wrapper 96 uses the -cfg and -homepage switches to specify lynx.cfg and start-file, 97 rather than relying on variables LYNX_CFG, LYNX_CFG_FILE and WWW_HOME. 98 99------------------------------------------------------------------------------- 100 101II. Compile instructions -- UNIX 102 1031a. Auto-configure. The auto-configure script uses autoconf2.13 to generate a 104 Bourne shell script, configure, which creates "makefile" and "lynx_cfg.h". 105 106 If you are on a UNIX platform, the easiest way to build Lynx is to type: 107 108 ./configure 109 and 110 make 111 112 NOTE: Configure has a number of useful options. Please see below. 113 114 NOTE: The 'configure' script generates auxiliary files "config.status" 115 "config.cache" and "config.log". Normally you will not notice these; 116 they are created automatically and removed by a "make distclean". 117 118 + If you wish to rebuild Lynx with a new host, or change ANY of the 119 parameters which are stored in config.cache, you MUST first remove 120 the config.cache file before running configure; its options do NOT 121 override the settings in that file. 122 123 + The config.status file is a script which creates (or regenerates) 124 the files created by the configure script. 125 126 Please report problems in the configure/make process by including a copy 127 of config.status, config.cache and config.log, as well as the pertinent 128 compiler diagnostics. 129 130 See the note in aclocal.m4 for special instructions if you must modify the 131 configure script. 132 133 NOTE: Lynx is a curses-based application, so you must have a curses 134 library available to link to. Native curses (on the system when it was 135 installed) are often broken, so you may get superior performance if you 136 have either "ncurses" ("ftp://invisible-island.net/ncurses") or "slang" 137 ("ftp://space.mit.edu/pub/davis/slang"). If you install these libraries 138 in your home directory or a non-default location, you may need to set the 139 CPPFLAGS (full path to include files) and LIBS (full path to library files) 140 environment variables BEFORE running configure. See "1d. Environment". 141 Use the "--with-screen=ncurses" or "--with-screen=slang" option. 142 143 Note that while lynx will build with a variety of versions of curses and 144 ncurses, some will be less satisfactory. Versions of ncurses before 145 1.9.9g will not render color properly. Some other versions of curses do 146 not display color at all. Likewise, lynx may not build with old versions 147 of slang, e.g., before 0.99-38, because slang's interfaces change 148 periodically. 149 150 Note compiler/system specific problems below. See also: 151 http://invisible-island.net/ncurses/ncurses.faq.html 152 1531b. Platforms. Configure should work properly on any Unix-style system. 154 It has been tested on the following platforms. 155 156 AIX 3.2.5 (cc w/ curses) BeOS 4.5 (gcc w/ ncurses) 157 CLIX (cc w/ curses & ncurses) DGUX 158 Digital Unix 3.2C and 4.0 (gcc & cc w/ curses, ncurses & slang) 159 FreeBSD 2.1.5, 3.1 (gcc 2.6.3 w/ curses & ncurses) 160 HP-UX (K&R and ANSI cc, gcc w/ curses, ncurses & slang) 161 IRIX 5.2 and 6.2 (cc & gcc w/ curses, ncurses & slang) 162 Linux 2.0.0 (gcc 2.7.2 w/ curses, ncurses & slang) 163 MkLinux 2.1.5 (gcc 2.7.2.1) NetBSD 164 NEXTSTEP 3.3 (gcc 2.7.2.3 w/ curses) 165 OS/2 EMX 0.9c (ncurses) SCO OpenServer (cc w/ curses) 166 Solaris 2.5, 2.6 & 2.7 (cc & gcc w/ curses, ncurses & slang) 167 SunOS 4.1 (cc w/ curses, gcc w/ ncurses & slang) 168 OS390 and BS2000. 169 170 NOTE: SunOS and HP-UX come with a bundled K&R compiler, which is only 171 useful for compiling with the bundled curses. Both ncurses and slang 172 require a compiler that recognizes prototypes. 173 1741c. Options 175 To get a list of the configure script's options, type "./configure --help". 176 Below is an alphabetical listing of the Lynx-specific options. The actual 177 order shown by the -help option is different. See "docs/README.defines" 178 for information on defines for which there are no option switches. 179 180 --datadir 181 Defines the location where you want the documentation files installed. 182 The configure script constructs makefile actions to install lynx.cfg 183 modified to reflect this in the HELPFILE setting. (For platforms which 184 do not support a configure script, such as MS-DOS, Win32 and VMS, you 185 must edit lynx.cfg). 186 187 --disable-addrlist-page (prevent defining USE_ADDRLIST_PAGE) 188 Turn off code that displays an alternative list-page, bound to 'A' 189 rather than 'l', which always lists URLs rather than titles. 190 191 --disable-alt-bindings (prevent defining USE_ALT_BINDINGS) 192 Compiles-in an alternative set of line-edit bindings, in addition 193 to the default bindings. 194 195 --disable-bibp-urls (define DISABLE_BIBP) 196 Disable (do not compile code) support for bibp: URLs. 197 198 --disable-color-style (define USE_COLOR_STYLE) 199 Use this option to disable optional color style. This is implemented 200 for modern curses implementations, e.g., those that support color. 201 202 Before lynx 2.8.6dev.18, this option was disabled by default. 203 You can achieve a similar color effect to match the non-color-style 204 (but still allowing users to use color-style) by using the 205 --without-lss-file option. 206 207 --disable-config-info (define NO_CONFIG_INFO) 208 Use this option to disable extended browsable configuration information 209 (a screen that shows the result of the configuration script, as well 210 as extended lynx.cfg viewing with a pointer to the lynx.cfg file and 211 additional functionality). 212 213 --disable-dired (prevent defining DIRED_SUPPORT) 214 Use this option to disable the optional directory-editor. 215 216 Lynx supports directory editing (DirEd) for local directories. 217 This allows users to do things like view, copy and remove files 218 using a tabular display of the directory and single-keystroke 219 commands instead of using the command line. From inside Lynx, the 220 keystroke sequence "g.<enter>" switches Lynx to DirEd mode on the 221 current directory. If you're building a Lynx that is to be used as 222 a kind of restricted shell for users who do not have access to the 223 command line and should not have access to equivalent capabilities, 224 you probably want to disable DirEd with this option. You can also 225 disable some DirEd functions while allowing others. If you have 226 disabled DirEd completely, you can ignore all the more specific 227 DirEd options. 228 229 All DirEd menu functions that were enabled on compilation can be 230 disabled or modified at run time via DIRED_MENU symbols in lynx.cfg. 231 232 --disable-dired-dearchive (define ARCHIVE_ONLY) 233 Use this option to prevent DirEd from extracting files from an 234 archive file. 235 236 --disable-dired-gzip (prevent defining OK_GZIP) 237 Use this option to prevent DirEd from using gzip and gunzip. 238 239 --disable-dired-override (prevent defining OK_OVERRIDE) 240 Normally, in DirEd directory viewing mode some key mappings are 241 overridden. Use this option to disable DirEd keymap overriding. 242 243 --disable-dired-permit (prevent defining OK_PERMIT) 244 Use this option to prevent DirEd from changing the permissions 245 on directories or files (i.e., from doing what the Unix chmod 246 command or the DOS attrib command does). 247 248 --disable-dired-tar (prevent defining OK_TAR) 249 Use this option to prevent DirEd from using the tar program. 250 251 --disable-dired-uudecode (prevent defining OK_UUDECODE) 252 Use this option to prevent DirEd from using uudecode. 253 254 --disable-dired-xpermit (define NO_CHANGE_EXECUTE_PERMS) 255 Use this option if you do not disable out the dired-permit 256 option, but want to restrict changes of the eXecute permission 257 to directories (i.e., not allow it to be changed for files). If 258 you don't do this, you can still block changes of the eXecute 259 permission for files but not directories via the 260 "change_exec_perms" command line restriction. 261 262 --disable-dired-zip (prevent defining OK_ZIP) 263 Use this option to prevent DirEd from using zip and unzip. 264 265 --disable-echo 266 Use this option to suppress the "compiling" commands during a build. 267 Doing this makes it easier to find and read warning messages. 268 269 --disable-extended-dtd (define NO_EXTENDED_HTMLDTD) 270 disable extended HTML DTD logic. This should revert to old-style 271 (2.7.1/2.7.2) behavior, but is not well-tested. 272 273 --disable-file-upload (define USE_FILE_UPLOAD) 274 Compile-in support for form-based file-upload. 275 276 --disable-finger (define DISABLE_FINGER) 277 Do not compile-in code used to connect to "finger" URLs. 278 279 --disable-forms-options (define NO_OPTION_FORMS) 280 Disable the Form-based Options Menu (see --disable-menu-options). 281 The default is to compile key-based & form-based Options Menu code, 282 allowing users the final choice via FORMS_OPTIONS in lynx.cfg 283 or the -forms_options command-line switch. 284 285 --disable-ftp (define DISABLE_FTP) 286 Do not compile-in code used to connect to FTP servers. 287 288 --disable-full-paths 289 Use this option to control whether full pathnames are compiled in for 290 various utilities invoked by lynx as external commands. By default, 291 full pathnames are compiled in for the the locations where configure 292 finds these commands at configure time. Affected commands are chmod, 293 compress, cp, gzip, install, mkdir, mv, rm, tar, touch, gunzip, unzip, 294 bzip2, uudecode, zcat, zip, telnet, tn3270, rlogin. (Not all of them 295 are used on all systems or in all configurations.) 296 297 This option makes Lynx simpler to install, but potentially less secure, 298 since the commands are then set in the user's $PATH. All of these 299 commands may also be overridden individually by setting environment 300 variables before configuring. For example, you can disable the telnet 301 command by doing this: 302 303 setenv TELNET /bin/false 304 305 --disable-gopher (define DISABLE_GOPHER) 306 Do not compile-in code used to connect to GOPHER servers. 307 308 --disable-idna 309 By default, the configure script searches for the GNU idn library, 310 which lets lynx translated URLs which are in UTF-8 to ASCII. The 311 latter is needed for most network accesses. Use this option to 312 suppress the feature, e.g., to reduce size. 313 314 --disable-included-msgs 315 Do not use included messages, for i18n support. If NLS support is 316 requested, the configure script will otherwise use the messages in the 317 ./po subdirectory. 318 319 --disable-justify-elts (define USE_JUSTIFY_ELTS) 320 Do not use element-justification logic. 321 322 --disable-largefile (prevent defining LONG_LIST) 323 324 Use this option to disable the compiler and linker options that 325 provide largefile interfaces. 326 327 --disable-long-list (prevent defining LONG_LIST) 328 Use this option to disable long "ls -l" directory listings (when 329 enabled, the actual directory style is configurable from lynx.cfg). 330 331 --disable-menu-options (define NO_OPTION_MENU) 332 Disable the Key-based Options Menu. 333 See --disable-forms-options (above) for further details. 334 335 --disable-news (define DISABLE_NEWS) 336 Do not compile-in code used to connect to NNTP (netnews) servers. 337 338 --disable-parent-dir-refs (define NO_PARENT_DIR_REFERENCE) 339 Use this option to disable "Up-to" parent-links in directory listings. 340 341 --disable-partial (prevent defining DISP_PARTIAL) 342 Turn off code that lets Lynx display parts of a long page while loading 343 it. 344 345 --disable-persistent-cookies (prevent defining USE_PERSISTENT_COOKIES) 346 Turn off support for saving cookies to a file, for subsequent reuse. 347 Persistent cookie support will use (or create) the file specified by 348 the 'COOKIE_FILE' option, or default to ".lynx_cookies" in the home 349 directory. (Currently there is no protection against conflict if 350 several lynx sessions are active from the same account). 351 352 --disable-prettysrc (define USE_PRETTYSRC) 353 Turn off support for colorizing the source view of HTML pages. If 354 compiled-in, new source view mode is available with -prettysrc command 355 line option. 356 357 --disable-progressbar (define USE_PROGRESSBAR) 358 Turn off support for a "progress bar" which displays at the bottom 359 of the screen when doing downloads and other time-consuming (but 360 interruptible) processes. This feature can be selected in the 361 options menu. 362 363 --disable-read-eta (define USE_READPROGRESS) 364 Turn off enhanced read-progress message showing ETA (estimated time to 365 completion), as well as the amount of time stalled without any data 366 transferred. 367 368 --disable-rpath-hack 369 The rpath-hack makes it simpler to build programs, particularly with 370 the *BSD ports which may have essential libraries in unusual places. 371 But it can interfere with building an executable for the base system. 372 Use this option in that case. 373 374 --disable-scrollbar (define USE_SCROLLBAR) 375 Turn off support for scrollbar on the right-margin of the screen. 376 If you configure with ncurses, this works with the mouse on xterm, 377 etc. 378 379 --disable-session-cache (define USE_CACHE_JAR) 380 Turn off support for saving/restoring session information in files. 381 Configurable from lynx.cfg 382 383 --disable-sessions (define USE_SESSIONS) 384 Turn off support for sessions, which allows the user to automatically 385 save and restore history information. 386 387 --disable-source-cache (define USE_SOURCE_CACHE) 388 Turn off support for caching HTML pages locally, 389 in files or in memory. Configurable from lynx.cfg 390 391 --disable-trace (define NO_LYNX_TRACE) 392 Turn off code that lets you trace internal details of Lynx' operation. 393 We recommend that you leave this enabled, since we need this 394 information to diagnose problems with either Lynx or the sites to which 395 you connect. 396 397 --enable-ascii-ctypes (define USE_ASCII_CTYPES) 398 Compiles-in alternative case-conversion functions which ensure that 399 configuration names, etc., are compared in POSIX locale. This is 400 important for operating in some locale such as Turkish. 401 402 --enable-cgi-links (define LYNXCGI_LINKS) 403 Allows lynx to access a cgi script directly without the need for 404 a http daemon. 405 406 --enable-change-exec (define ENABLE_OPTS_CHANGE_EXEC) 407 Allow users to change the execution status within the options screen. 408 See EXEC_LINKS and EXEC_SCRIPTS. 409 410 --enable-charset-choice (define USE_CHARSET_CHOICE) 411 Add logic for ASSUMED_DOC_CHARSET_CHOICE and DISPLAY_CHARSET_CHOICE in 412 lynx.cfg, allowing user to configure a subset of the compiled-in 413 charsets for normal use. 414 415 --enable-cjk (define CJK_EX) 416 Add experimental logic for supporting CJK documents. (This is not 417 necessary for CJK support and may go away in a future release.) 418 419 --enable-debug (The symbol DEBUG is always defined.) 420 Use this option to compile-in support for debugging. 421 Note that this flag is ignored if the CFLAGS environment 422 variable is set, in that case "-g" (or whatever) has to 423 be included in the CFLAGS value to get debugging. 424 Autoconf normally adds -g and -O options to CFLAGS if CFLAGS 425 was not set, and if the compiler supports those options. 426 427 --enable-default-colors (define USE_DEFAULT_COLORS) 428 Enable use of default-color background (ncurses/slang). Either 429 configuration supports the use of 'default' for colors even without 430 this option. That is, 'default' is interpreted as white (foreground) 431 or black (background) according to the context. When the default 432 colors configuration is built, the actual values for foreground and 433 background colors are determined by the terminal. 434 435 --enable-exec-links (define EXEC_LINKS) 436 Allows lynx to execute programs by accessing a link. 437 438 --enable-exec-scripts (define EXEC_SCRIPTS) 439 Allows lynx to execute programs inferred from a link. 440 441 --enable-externs (define USE_EXTERNALS) 442 Use this option to enable external application support. (See lynx.cfg.) 443 444 --enable-find-leaks (define LY_FIND_LEAKS) 445 Use this option to compile-in logic for testing memory leaks. 446 447 --enable-font-switch (define EXP_CHARTRANS_AUTOSWITCH) 448 Allow Lynx to automatically change the Linux console state (switch 449 fonts) according to the current Display Character Set. (Linux console 450 only. *Use with discretion.* See docs/README.chartrans.) 451 452 --enable-gnutls-compat (define USE_GNUTLS_FUNCS) 453 When --with-gnutls is used, tell whether to use GNUTLS' OpenSSL 454 compatibility library or use GNUTLS' low-level API directly. 455 456 --enable-gzip-help 457 Install the lynx help files in gzip'd format [*.gz] to save space. 458 459 --enable-htmlized-cfg 460 generate an HTMLized copy of lynx.cfg which will be installed with 461 the other help files. 462 463 --enable-internal-links (define TRACK_INTERNAL_LINKS) 464 With `internal links' (links within a document to a location within 465 the same document) enabled, Lynx will distinguish between, for example, 466 `<A HREF="foo#frag">' and `<A HREF="#frag">' within a document whose 467 URL is `foo'. It may handle such links differently, although practical 468 differences would appear only if the document containing them resulted 469 from a POST request or had a no-cache flag set. This feature attempts 470 to interpret URL-references as suggested by RFC 2396, and to prevent 471 mistaken resubmissions of form content with the POST method. An 472 alternate opinion asserts that the feature could actually result in 473 inappropriate resubmission of form content. 474 475 --enable-ipv6 (define ENABLE_IPV6) 476 use IPV6 (with IPV4) logic. 477 478 --enable-japanese-utf8 (define EXP_JAPANESEUTF8_SUPPORT) 479 use experimental Japanese UTF-8 logic. 480 481 --enable-kbd-layout (define EXP_KEYBOARD_LAYOUT) 482 Disabled by default, this option allows you to use translation 483 tables on the input keystrokes. Current tables include 484 ROT13'd keyboard layout 485 JCUKEN Cyrillic, for AT 101-key kbd 486 YAWERTY Cyrillic, for DEC LK201 kbd 487 488 --enable-local-docs 489 On install, modify link from help-page to point to the local 490 doc-directory, e.g., with README files. Normally this points 491 to the current release directory. 492 493 --enable-locale-charset (define USE_LOCALE_CHARSET) 494 Use nl_langinfo(CODESET) to determine initial value for display 495 charset, overrides character_set value in .lynxrc file. 496 497 --enable-nested-tables (define EXP_NESTED_TABLES) 498 Extends TRST to format nested tables, as well as be smarter about 499 <BR> and <P> tags in table cells. 500 501 --enable-nls (several definitions) 502 use Native Language Support (i.e., gettext). 503 504 --enable-nsl-fork (define NSL_FORK) 505 Disabled by default, this allows interruption of NSL requests, 506 so that `z' will stop the `look-up' phase of a connection. 507 508 --enable-syslog (define SYSLOG_REQUESTED_URLS) 509 Use this option to log NSL requests via syslog(). 510 511 --enable-underlines (define UNDERLINE_LINKS) 512 Use this option to underline links rather than using boldface. 513 514 --enable-vertrace (define LY_TRACELINE) 515 Turn on code that prefixes trace output lines with source filename 516 and line number. 517 518 --enable-warnings 519 Use this option to turn on GCC compiler warnings. 520 521 --enable-wais 522 Use this option to turn on configure check for freeWAIS library. 523 524 --enable-widec 525 Use this option to allow the configure script to look for wide-curses 526 features. If you do not specify the option, the configure script 527 will look for these features if --with-screen=ncursesw is given. 528 For this release of Lynx, we recommend the ncursew library built from 529 ncurses 5.5. 530 531 --sysconfdir (affect LYNX_CFG_FILE) 532 Defines the location where you want the lynx.cfg file installed. 533 The configure script defines the symbol LYNX_CFG_FILE to correspond 534 with the $sysconfdir environment variable. (For platforms which do not 535 support a configure script, such as MS-DOS, Win32 and VMS, you must 536 edit userdefs.h if you wish to specify the location of lynx.cfg). 537 538 --with-Xaw3d 539 This option allows you to specify the X libraries used if you 540 are configuring lynx to use PDCurses on a Unix platform. 541 542 --with-XawPlus 543 This option allows you to specify the X libraries used if you 544 are configuring lynx to use PDCurses on a Unix platform. 545 546 --with-build-cc=XXX 547 If cross-compiling, specify a host C compiler, which is needed to 548 compile a utility which generates tables for lynx. 549 If you do not give this option, the configure script checks if the 550 $BUILD_CC variable is set, and otherwise defaults to gcc or cc. 551 552 --with-build-cpp=XXX 553 This is unused by lynx. 554 555 --with-build-cflags=XXX 556 If cross-compiling, specify the host C compiler-flags. You might need 557 to do this if the target compiler has unusual flags which confuse the 558 host compiler. 559 560 --with-build-cppflags=XXX 561 If cross-compiling, specify the host C preprocessor-flags. You might 562 need to do this if the target compiler has unusual flags which confuse 563 the host compiler. 564 565 --with-build-ldflags=XXX 566 If cross-compiling, specify the host linker-flags. You might need to 567 do this if the target linker has unusual flags which confuse the host 568 compiler. 569 570 --with-build-libs=XXX 571 If cross-compiling, the host libraries. You might need to do this if 572 the target environment requires unusual libraries. 573 574 --with-bzlib[=XXX] (define USE_BZLIB) 575 Use libbz2 for decompression of some bzip2 files. 576 577 The optional value XXX specifies the directory in which the library 578 can be found, and may be either the path of the "lib" directory, 579 or one level above. In either case, the corresponding header files 580 are assumed to be in the parallel "include" directory. 581 582 --with-charsets=list (define ALL_CHARSETS) 583 Limit the number of charsets that are compiled-in to the specified 584 list of comma-separated MIME names. 585 586 --with-cfg-file (define LYNX_CFG_FILE) 587 Specify the default configuration file's name. Use --without-cfg-file 588 to force the user to specify the configuration file on the command 589 line. 590 591 --with-curses-dir 592 Specify directory under which curses/ncurses is installed. This 593 assumes a standard install, e.g., with an include and lib subdirectory. 594 595 --with-dbmalloc 596 use Conor Cahill's dbmalloc library 597 598 --with-destdir=XXX 599 set DESTDIR variable in makefiles. This is prefixed to all directories 600 in the actual install, but is not really part of the compiled-in or 601 configured directory names. It is convenient for packaging the 602 installed files. If you do not provide the option, the configure 603 script uses your $DESTDIR environment variable. 604 605 --with-dmalloc 606 use Gray Watson's dmalloc library 607 608 --with-gnutls[=XXX] (define USE_SSL, USE_GNUTLS_INCL) 609 Use this option to configure with the GNU TLS library. 610 See docs/README.ssl for additional information. 611 612 The optional value XXX specifies the directory in which the library 613 can be found, and may be either the path of the "lib" directory, 614 or one level above. In either case, the corresponding header files 615 are assumed to be in the parallel "include" directory. The default 616 is /usr/local/gnutls. 617 618 See the "--enable-gnutls-compat" option. 619 620 --with-included-gettext 621 not supported in this package. The configure script uses macros which 622 are bundled together with more useful features. 623 624 See the "--enable-nls" option. 625 626 --with-libiconv-prefix=DIR 627 search for libiconv in DIR/include and DIR/lib 628 629 --with-lss-file{=path} (define LYNX_LSS_FILE) 630 Specify the default style-sheet file's name. Use --without-lss-file 631 to make the default behavior match the non-color-style (if no --lss 632 option is given, and no COLOR_STYLE setting is in lynx.cfg). 633 634 --with-mime-libdir=list (define MIME_LIBDIR) 635 Use this option to specify the system directory containing the 636 mime.types and mailcap files. 637 638 --with-neXtaw 639 This option allows you to specify the X libraries used if you 640 are configuring lynx to use PDCurses on a Unix platform. 641 642 --with-nls-datadir=DIR 643 Use this option to override the configure script's NLS data directory, 644 under which the locale (i.e., language) files are installed. The 645 default value is derived at configure time, and depends on whether GNU 646 or native gettext is used. 647 648 --with-nss-compat[=XXX] (define USE_NSS_COMPAT_INCL) 649 Use this option to configure with the NSS library's OpenSSL-compatible 650 interface. 651 See docs/README.ssl for additional information. 652 653 The optional value XXX specifies the directory in which the library 654 can be found, and may be either the path of the "lib" directory, 655 or one level above. In either case, the corresponding header files 656 are assumed to be in the parallel "include" directory. 657 658 --with-pkg-config[=XXX] 659 Use pkg-config, if available, to tell how to build with certain 660 libraries, e.g., openssl and gnutls. If pkg-config is not used, 661 or if those libraries are not known to pkg-config, then the configure 662 script will search for the libraries as described in the --with-ssl 663 and --with-gnutls options. 664 665 The optional value XXX specifies the pathname for pkg-config, e.g., 666 "/usr/local/bin/pkg-config". 667 668 Note: The pkg-config program is used only if no explicit directory 669 parameter is provided for the --with-ssl or --with-gnutls options. 670 671 --with-screen=XXX 672 Use this option to select the screen type. The option value, XXX 673 must be one of curses (the default), ncurses, ncursesw, pdcurses or 674 slang. Specifying a screen type causes the configure script to 675 look in standard locations for the associated header and library 676 files, unless you have preset the $CFLAGS and $LIBS variables. 677 678 --with-screen=ncursesw (define NCURSES, WIDEC_CURSES) 679 --with-screen=ncurses (define NCURSES) 680 --with-screen=pdcurses (define PDCURSES) 681 --with-screen=slang (define USE_SLANG) 682 683 Note that some systems may have a default curses library which 684 does not support color, while on others, ncurses is installed as 685 the curses library. The variant ncursesw is the wide-character 686 version of ncurses. See also the --enable-widec option. 687 688 The pdcurses selection supported by the configure script is a UNIX-only 689 library which uses X11. If you are configuring with DJGPP, the likely 690 choice is "curses", since that is how PDCurses is normally installed. 691 692 --with-socks[=XXX] (define SOCKS) 693 Use this option to configure with the socks library. 694 695 The optional value XXX specifies the directory in which the library 696 can be found, and may be either the path of the "lib" directory, 697 or one level above. In either case, the corresponding header files 698 are assumed to be in the parallel "include" directory. 699 700 --with-socks5[=XXX] (define USE_SOCKS5, SOCKS) 701 Use this option to configure with the socks5 library. 702 703 The optional value XXX specifies the directory in which the library 704 can be found, and may be either the path of the "lib" directory, 705 or one level above. In either case, the corresponding header files 706 are assumed to be in the parallel "include" directory. 707 708 If you make a SOCKSified lynx, you may have trouble accessing FTP 709 servers. Also, instead of SOCKSifying lynx for use behind a firewall, 710 you are better off if you make it normally, and set it up to use a 711 proxy server. You can SOCKSify the proxy server, and it will handle 712 all clients, not just Lynx. If your SOCKS server was compiled to use 713 the short version of Rbind, also include -DSHORTENED_RBIND in your 714 SITE_LYDEFS and SITE_DEFS. If you do SOCKSify lynx, you can turn off 715 SOCKS proxy usage via a -nosocks command line switch. 716 717 --with-ssl[=XXX] (define USE_SSL) 718 Use this option to configure with the OpenSSL library, or SSLeay. 719 See docs/README.ssl for additional information. 720 721 The optional value XXX specifies the directory in which the library 722 can be found, and may be either the path of the "lib" directory, 723 or one level above. In either case, the corresponding header files 724 are assumed to be in the parallel "include" directory. 725 726 --with-system-type=XXX 727 For testing, override the derived host system-type which is used to 728 decide things such as special compiler options. This is normally 729 chosen automatically based on the type of system which you are 730 building on. We use it for testing the configure script. 731 732 --with-textdomain[=XXX] (define NLS_TEXTDOMAIN) 733 Set the NLS textdomain to the given value. This is normally "lynx". 734 735 --with-zlib[=XXX] (define USE_ZLIB) 736 Use zlib for decompression of some gzip files. 737 738 The optional value XXX specifies the directory in which the library 739 can be found, and may be either the path of the "lib" directory, 740 or one level above. In either case, the corresponding header files 741 are assumed to be in the parallel "include" directory. 742 7431d. Environment variables 744 The configure script looks for programs and libraries in known/standard 745 locations. You can override the behavior of the script by presetting 746 environment variables. If they are set, the script will try to use these 747 values rather than computing new ones. Useful variables include: 748 749 CC - the C compiler. If you do not override this, configure 750 will try to use gcc. For instance, setting CC=cc and 751 exporting this value will cause configure to use cc instead. 752 753 CFLAGS - the C compiler options. These also include C 754 preprocessor options (such as -I), since the $CFLAGS and 755 $CPPFLAGS variables are maintained separately. 756 757 CPPFLAGS - the C preprocessor options. For some configuration 758 tests, you may need to set both $CFLAGS and $CPPFLAGS if 759 you are compiling against header files in nonstandard 760 locations. 761 762 LDFLAGS - linker/loader options. 763 764 LIBS - the libraries to be linked, with -L and -l options. If 765 you are linking against libraries in nonstandard locations 766 unrelated to the install prefix (that you can specify in 767 the configure script) you may have to specify these via 768 the $LIBS variable. 769 770 Lynx has compiled-in the pathnames of various programs which it executes. 771 Normally the full pathnames are given, rather than the program name 772 alone. These may be preset in the environment by the capitalized version, 773 e.g., INSTALL for "install". The corresponding internal definitions 774 are suffixed "_PATH", e.g., "INSTALL_PATH". 775 776 777-- 1997/7/27 - T. Dickey <dickey@clark.net> 778 7791e. Examples 780 If you are compiling Lynx for your personal use and are restricted to your 781 home directory, a simple method for building would be to choose some 782 directory, say ".lynx", and then type: 783 784 ./configure --prefix=~/.lynx --exec-prefix=~/.lynx 785 and 786 make install 787 788 Now you only need to add "~/.lynx/bin" to your PATH and edit "~/.lynx/lib/ 789 lynx.cfg" as described above. 790 791 I personally use the following csh shell script to set environment 792 variables and configure options rather than type them each time. 793 #!/bin/csh -f 794 setenv CPPFLAGS "-I$HOME/slang -I$HOME/.usr/include" 795 setenv LIBS "-L$HOME/.slang/lib -L$HOME/.usr/lib" 796 ./configure --exec-prefix=$HOME --bindir=$HOME/.lynx \ 797 --mandir=$HOME/.usr/man --sysconfdir=$HOME/.usr/lib \ 798 --with-screen=slang --with-zlib 799 800 CPPFLAGS in this example defines the full path to the slang and zlib 801 header files, which are not kept in standard directories. Likewise, LIBS 802 defines the nonstandard locations of libslang.a and libz.a. Setting the 803 option --bindir tells the configure script where I want to install the 804 lynx binary; setting --mandir tells it where to put the lynx.1 man page, 805 and setting --sysconfdir tells it (while at the same time defining 806 LYNX_CFG_FILE) where to put the configuration file "lynx.cfg", when I type 807 "make install". The --with-screen=slang and --with-zlib options are 808 explained above. 809 8102. Wais support (optional) 811 To add direct WAIS support, get the freeWAIS distribution from 812 "ftp://ftp.cnidr.org/pub/NIDR.tools/freewais", and compile it. The 813 compile process will create the libraries you will need, wais.a and 814 client.a. Edit the Makefile in the top level directory and add the 815 library locations under the DIRECT WAIS ACCESS heading. Edit the Makefile 816 for the WWW Library in "WWW/Library/Implementation/makefile" to point to 817 the include directory for the freewais distribution. Precompiled 818 libraries are available for many platforms if you don't wish to compile 819 one yourself. 820 821------------------------------------------------------------------------------- 822 823III. Compile instructions -- VMS 824 825Step 1. Downloading binary files. 826 Lynx must handle all IO as streams, and on VMS, output files are always 827 created with Stream_LF format via the C RTL's fopen(). The file headers 828 indicate Implied Carriage Control, even when the transfer was in binary 829 mode, which can confuse downloading software and cause corruption of 830 the file contents. To deal with this, you should define the symbol 831 USE_FIXED_RECORDS as TRUE in userdefs.h and/or lynx.cfg. This will 832 instruct Lynx to correct the header information to indicate FIXED 512 833 records, with No Implied Carriage Control. If Lynx fails to do the 834 conversion (because the file wasn't mapped to a binary MIME type) you can 835 execute FIXED512.COM externally to correct the header information. The 836 command file uses Joe Meadow's FILE utility, or the SET FILE/ATTRIBUTES 837 command on current versions of VMS, to modify the headers. See the 838 comments in FIXED512.COM, userdefs.h and lynx.cfg for more information. 839 840Step 2. Passive FTP 841 If your system requires the PASV FTP code instead of the standard PORT FTP 842 code (e.g., to deal with a firewall) then set the FTP_PASSIVE option in 843 lynx.cfg 844 845Step 3a. 846 Lynx uses the VMS port of gzip for uncompressing streams which have 847 Content-Encoding headers indicated compression with gzip or the 848 Unix compress. If you do not have gzip installed on your system 849 you can get it from "ftp://ftp.wku.edu/" in the fileserv directory. 850 The command Lynx uses to uncompress on VMS is "gzip -d". 851 852 If you are using the SOCKETSHR library, read SOCKETSHR.announce and 853 make sure you have defined SOCKETSHR and SOCKETSHR_LIBRARY as explained 854 therein. 855 856 A "build.com" and "build-slang.com" script for building Lynx with curses 857 or slang is in the top level directory. All you have to do is type 858 "@build" or "@build-slang" and answer its prompt for your system's TCP-IP 859 software. Current choices are: 860 MULTINET (default) 861 UCX 862 WIN_TCP 863 CMU_TCP 864 SOCKETSHR_TCP 865 TCPWARE 866 It will autosense whether you have VAXC, DECC or GNUC on VAX or AXP and 867 build appropriately. If a WWWLib already exists for that TCP-IP software, 868 it will prompt you for whether you want to rebuild it. If you want to 869 build a WWWLib separately, you can type "@libmake.com" with your default 870 directory set to [.WWW.Library.vms] instead doing it via "build.com" in 871 the top directory. You may need to modify "build-slang.com", as described 872 in its header, so that it can find slang.olb on your system. If you have 873 both DECC and VAXC, it will use DECC to benefit from the newer and more 874 efficient memory management functions. 875 876Step 3b. (optional compilation method) 877 If you have and want to use MMS, read the header of descrip.mms in the 878 top directory and be sure you include the appropriate macro definitions 879 when you invoke it: 880 881 $ MMS /Macro = (MULTINET=1) for VAXC - MultiNet 882 $ MMS /Macro = (WIN_TCP=1) for VAXC - Wollongong TCP/IP 883 $ MMS /Macro = (UCX=1) for VAXC - UCX 884 $ MMS /Macro = (CMU_TCP=1) for VAXC - OpenCMU TCP/IP 885 $ MMS /Macro = (SOCKETSHR_TCP=1) for VAXC - SOCKETSHR/NETLIB 886 $ MMS /Macro = (TCPWARE=1) for VAXC - TCPWare TCP/IP 887 888 $ MMS /Macro = (MULTINET=1, DEC_C=1) for DECC - MultiNet 889 $ MMS /Macro = (WIN_TCP=1, DEC_C=1) for DECC - Wollongong TCP/IP 890 $ MMS /Macro = (UCX=1, DEC_C=1) for DECC - UCX 891 $ MMS /Macro = (CMU_TCP=1, DEC_C=1) for DECC - OpenCMU TCP/IP 892 $ MMS /Macro = (SOCKETSHR_TCP=1,DEC_C=1) for DECC - SOCKETSHR/NETLIB 893 $ MMS /Macro = (TCPWARE=1, DEC_C=1) for DECC - TCPWare TCP/IP 894 895 $ MMS /Macro = (MULTINET=1, GNU_C=1) for GNUC - MultiNet 896 $ MMS /Macro = (WIN_TCP=1, GNU_C=1) for GNUC - Wollongong TCP/IP 897 $ MMS /Macro = (UCX=1, GNU_C=1) for GNUC - UCX 898 $ MMS /Macro = (CMU_TCP=1, GNU_C=1) for GNUC - OpenCMU TCP/IP 899 $ MMS /Macro = (SOCKETSHR_TCP=1,GNU_C=1) for GNUC - SOCKETSHR/NETLIB 900 $ MMS /Macro = (TCPWARE=1, GNU_C=1) for GNUC - TCPWare TCP/IP 901 902 If you just type "MMS" it will default to the MULTINET and VAXC 903 configuration. MMS will build the WWW library and Lynx sources, and 904 link the executable. However, not all of the header dependencies are 905 specified. If you are not a developer, and need a clean build, you 906 should use build.com instead of the MMS utility. 907 908 If you want SOCKS support on VMS, you must add SOCKS as a compilation 909 definition, and the SOCKS library to the link command. However, instead 910 of SOCKSifying Lynx for use behind a firewall, you are better off if you 911 build Lynx normally, and set up Lynx to use a proxy server (see below). 912 You instead can SOCKSify the proxy server, and it will handle all clients, 913 not just Lynx. 914 915------------------------------------------------------------------------------- 916 917IV. Compile instructions -- Win32 (Windows95/98/NT) 918 919Borland C: 920--------- 921 922Simplified: 923---------- 924 925Sources: 926 Download the current sources (choose a zip-file) from http://lynx.isc.org 927 and unzip them into a directory where you will build Lynx. 928 929Compiler: 930 Download the Borland C/C++ 5.51 compiler from 931 http://forms.embarcadero.com/forms/BCC32CompilerDownload 932 933 This is a file named "freecompilertools.exe". 934 935 Run that to install the compiler, e.g., in 936 c:\app\bcc55 937 938 Do not install into a directory with spaces in its name, such as 939 c:\program files 940 941Libraries: 942 Download these "setup" files from http://gnuwin32.sourceforge.net 943 libiconv-1.9.2-1.exe (libiconv) 944 libintl-0.14.4.exe (libintl) 945 openssl-0.9.8h-1-setup.exe (openssl) 946 pdcurses-2.6.exe (pdcurses) 947 zlib-1.2.3.exe (zlib) 948 949 Install all of the packages in the same directory, "c:\app\GnuWin32". 950 951 A fix is needed in GnuWin32 include/zconf.h: change line reading 952 #if 1 /* HAVE_UNISTD_H -- this line is updated by ./configure */ 953 to 954 #ifdef HAVE_UNISTD_H 955 956 Prepare import-libraries using Borland's implib program. The ".lib" 957 files that it uses are a different format than the import libraries 958 distributed with GnuWin2. From Lynx' source directory run 959 bcblibs 960 961Environment: 962 At this point, the bin-directory for the compiler and for the GnuWin32 963 libraries should be in your path. 964 965Building: 966 From Lynx' source directory 967 cd src\chrtrans 968 makew32 clean 969 makew32 970 cd ..\.. 971 makew32 clean 972 makew32 973 974------------------------------------------------------------------------------- 975 976Detailed: 977-------- 978 The original Win32 port was built with Borland C++ 4.52, but later 979 versions reportedly can be used. Before compiling the Lynx sources, you 980 need a curses library, and it is recommended that you have the zlib 981 library. Get pdcurses2.3 from "http://pdcurses.sourceforge.net/". I 982 have modified it so that mouse support is no longer broken for Lynx (see 983 "http://www.fdisk.com/doslynx/"). You will want to get zlib from 984 "http://www.zlib.net/ ". Compile these libraries, and 985 put them in a convenient place (pdcurses inside the Lynx directory). 986 987 Unpack the latest Lynx source distribution, and make an obj directory 988 under the source root to contain the compile output. Copy in your 989 IDE file. A sample IDE file and helper libraries are available at 990 "http://www.fdisk.com/doslynx/wlynx/source/". 991 992 First build the .h files in src\chrtrans using "makew32.bat". Double 993 check for new .tbl files; hand edit in any new ones, and then do "makew32". 994 Jump into Borland C++, load the project (IDE file) and compile Lynx. 995 Alternately, after compiling the chartrans tables, you can come back to 996 the top directory and compile manually, i.e., do "make -f makefile.bcb". 997 998 I also have a binary available at "http://www.fdisk.com/doslynx/". This 999 binary was compiled with pdcurses 2.3, hacked so win32 mouse support works, 1000 and with zlib, so Lynx can do gzip routines internally. More hints and 1001 information can be found in "http://www.fdisk.com/doslynx/lynxport.htm". 1002 1003-- 1997/10/12 - W. Buttles <lynx-port@fdisk.com> 1004-- 2010/11/27 - URLs updated by Doug Kaufman <dkaufman@rahul.net> 1005 1006------------------------------------------------------------------------------- 1007 1008Cygwin: 1009 It is possible to compile under the cygwin system, which will allow you to 1010 use the configure script described above for Unix. Type, for example, 1011 "./configure --with-screen=ncurses --with-libz" in a Dos window running the 1012 cygwin bash$ shell. You also have the choice of using either pdcurses or 1013 slang. You will need a launch program such as sh.exe to call helper 1014 applications. Paths may need to be in cygwin style, rather than Windows 1015 style (e.g., TMPDIR=/cygdrive/d/cygwin/tmp, rather than 1016 TMPDIR=d:\cygwin\tmp). 1017 1018Visual C++: 1019 You must have compiled zlib and PDCurses with the -MT (threaded code) 1020 option. This is not the default with zlib (see Makefile.msc). 1021 1022 Copy into lib the following 1023 zconf.h 1024 zlib.h 1025 zlib.lib 1026 1027 from the zlib build-tree, and 1028 curses.h 1029 pdcurses.lib 1030 1031 from the PDCurses build-tree. 1032 1033 Then 1034 make-msc 1035 1036 to build lynx. 1037 1038------------------------------------------------------------------------------- 1039 1040V. Compile instructions -- 386 DOS 1041 1042 Compiling for DOS with DJGPP has traditionally been a multistep 1043 procedure. Now, if you have a full installation of DJGPP you can 1044 also install using the configure script, just as in the UNIX 1045 section. This needs to be done under a BASH shell. Use a shell 1046 script to run configure as in the example at the end of this 1047 section. Otherwise you can follow the below instructions. The 1048 multistep procedure for DOS may not be supported in the future 1049 and use of the configure script is recommended. The information 1050 about required libraries and unpacking applies to both methods of 1051 compiling. 1052 1053 First install the C compiler and its libraries (see readme.1st from 1054 DJGPP distribution). 1055 1056 Originally, lynx makefiles come with the initial -O2 optimization 1057 level. If you experience compilation process too slow due to paging 1058 to the disk (DPMI server provide virtual memory, when in lack of 1059 RAM), you may change optimization to -O1 or turn the optimization 1060 off entirely. 1061 1062 If using optimization level -O2 or -O3 with older versions of DJGPP 1063 and GCC, you may need to "stubedit" your "cc1.exe" file to enlarge 1064 compiler stack size. For instance, if using DJGPP 2.02 and GCC 2.8.1, 1065 to compile with -O3 optimization, the stub needs to be edited to give 1066 a larger stack. To do this go into djgpp\lib\gcc-lib\djgpp\2.81 and 1067 either type the command: 1068 "stubedit cc1.exe bufsize=63k minstack=2M", 1069 or edit interactively with: "stubedit cc1.exe". Current versions of 1070 DJGPP and GCC generally work with the standard stack. 1071 1072 Unpack the source code using a DOS program like UNZIP386. If you are 1073 using PKUNZIP to unpack the .zip archive, you must use the -d command 1074 line switch to restore the directory structure contained in the archive, 1075 i.e., do "pkunzip -d lynx-cur.zip". No switch is required if you use 1076 unzip386 or unzip. If you are trying to compile the 386DOS port under a 1077 WinNT DOS shell, be sure to unpack the source with a DOS program so 1078 that all directories will be adjusted to the DOS 8.3 file format necessary 1079 for compiling with DJGPP. Do NOT use Winzip, because that will create 1080 long filenames that will not be recognized by DJGPP tools. 1081 1082 If you wish to compile with "USE_ZLIB" (recommended), you must have the 1083 zlib library. Get the source from 1084 http://www.zlib.net 1085 and compile it. Put libz.a in the lib subdirectory of DJGPP, and put 1086 zlib.h and zconf.h in the include subdirectory. 1087 1088 In addition to the files in the Lynx distribution, you will need a curses 1089 package and a TCP package. You can use PDCurses (available at 1090 "http://pdcurses.sourceforge.net/") and the DJGPP port of WATTCP. The 1091 updated version of WATTCP is known as WATT-32, and is available at 1092 "http://home.broadpark.no/~gvanem/". You can also use slang (available at 1093 "http://www.jedsoft.org/slang/") as your screen library. You must 1094 compile these before you go any further. If you wish to use PDCurses 2.6, 1095 you need to first apply the following patch: 1096 1097--- dos/gccdos.mak.ori 2002-01-11 20:11:18.000000000 -0800 1098+++ dos/gccdos.mak 2003-12-13 21:29:28.000000000 -0800 1099@@ -40,11 +40,11 @@ 1100 CFLAGS = -c -g -Wall -DPDCDEBUG 1101 LDFLAGS = -g 1102 else 1103- CFLAGS = -c -O -Wall 1104+ CFLAGS = -c -O2 -Wall 1105 LDFLAGS = 1106 endif 1107 1108-CPPFLAGS = -I$(PDCURSES_HOME) -I$(CCINCDIR) -D_NAIVE_DOS_REGS 1109+CPPFLAGS = -I$(PDCURSES_HOME) -I$(CCINCDIR) -D_NAIVE_DOS_REGS -DHAVE_STRING_H 1110 1111 CCFLAGS = $(CFLAGS) $(CPPFLAGS) 1112 1113@@ -64,10 +64,10 @@ 1114 all: $(PDCLIBS) $(DEMOS) 1115 1116 clean: 1117 -del *.o 1118- -del curses.lib 1119- -del panel.lib 1120+ -del pdcurses.a 1121+ -del panel.a 1122 1123 demos: $(DEMOS) 1124 1125@@ -287,33 +287,27 @@ 1126 #------------------------------------------------------------------------ 1127 1128 firework.exe: firework.o $(LIBCURSES) 1129- $(LINK) $(LDFLAGS) -o firework firework.o $(LIBCURSES) 1130- $(COFF2EXE) firework 1131+ $(LINK) $(LDFLAGS) -o firework.exe firework.o $(LIBCURSES) 1132 strip $@ 1133 1134 newdemo.exe: newdemo.o $(LIBCURSES) 1135- $(LINK) $(LDFLAGS) -o newdemo newdemo.o $(LIBCURSES) 1136- $(COFF2EXE) newdemo 1137+ $(LINK) $(LDFLAGS) -o newdemo.exe newdemo.o $(LIBCURSES) 1138 strip $@ 1139 1140 ptest.exe: ptest.o $(LIBCURSES) $(LIBPANEL) 1141- $(LINK) $(LDFLAGS) -o ptest ptest.o $(LIBCURSES) $(LIBPANEL) 1142- $(COFF2EXE) ptest 1143+ $(LINK) $(LDFLAGS) -o ptest.exe ptest.o $(LIBCURSES) $(LIBPANEL) 1144 strip $@ 1145 1146 testcurs.exe: testcurs.o $(LIBCURSES) 1147- $(LINK) $(LDFLAGS) -o testcurs testcurs.o $(LIBCURSES) 1148- $(COFF2EXE) testcurs 1149+ $(LINK) $(LDFLAGS) -o testcurs.exe testcurs.o $(LIBCURSES) 1150 strip $@ 1151 1152 tuidemo.exe: tuidemo.o tui.o $(LIBCURSES) 1153- $(LINK) $(LDFLAGS) -o tuidemo tuidemo.o tui.o $(LIBCURSES) 1154- $(COFF2EXE) tuidemo 1155+ $(LINK) $(LDFLAGS) -o tuidemo.exe tuidemo.o tui.o $(LIBCURSES) 1156 strip $@ 1157 1158 xmas.exe: xmas.o $(LIBCURSES) 1159- $(LINK) $(LDFLAGS) -o xmas xmas.o $(LIBCURSES) 1160- $(COFF2EXE) xmas 1161+ $(LINK) $(LDFLAGS) -o xmas.exe xmas.o $(LIBCURSES) 1162 strip $@ 1163 1164 1165--- dos/pdckbd.c.ori 2002-09-01 00:13:30.000000000 -0800 1166+++ dos/pdckbd.c 2004-01-19 20:30:02.000000000 -0800 1167@@ -362,7 +362,7 @@ 1168 return ((int) (0xb8 << 8)); 1169 if (ascii == 0xe0 && scan == 0x53 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Del */ 1170 return ((int) (0xb9 << 8)); 1171- if (ascii == 0x00 || ascii == 0xe0) 1172+ if (ascii == 0x00 || (ascii == 0xe0 && scan != 0x00)) 1173 return ((int) (scan << 8)); 1174 return ((int) (ascii)); 1175 } 1176@@ -522,7 +522,7 @@ 1177 _watch_breaks(); 1178 #else 1179 # ifdef GO32 1180- (void*)signal(SIGINT,(setting ? SIG_DFL : SIG_IGN)); 1181+/* (void*)signal(SIGINT,(setting ? SIG_DFL : SIG_IGN)); */ 1182 /* __djgpp_set_ctrl_c(setting);*/ 1183 setcbrk(setting); 1184 # else 1185--- pdcurses/kernel.c.ori 2002-11-27 03:24:32.000000000 -0800 1186+++ pdcurses/kernel.c 2003-12-13 21:22:38.000000000 -0800 1187@@ -27,6 +27,10 @@ 1188 #include <memory.h> 1189 #endif 1190 1191+#ifdef HAVE_STRING_H 1192+#include <string.h> 1193+#endif 1194+ 1195 #ifdef UNIX 1196 #include <defs.h> 1197 #include <term.h> 1198--- pdcurses/pdcutil.c.ori 2001-01-10 00:27:22.000000000 -0800 1199+++ pdcurses/pdcutil.c 2003-12-13 21:24:58.000000000 -0800 1200@@ -49,7 +49,7 @@ 1201 # include <limits.h> 1202 #endif 1203 1204-#ifdef STDC_HEADERS 1205+#if defined(STDC_HEADERS) || defined(HAVE_STRING_H) 1206 # include <string.h> 1207 #endif 1208 1209--- pdcurses/pdcwin.c.ori 2002-05-25 17:13:32.000000000 -0800 1210+++ pdcurses/pdcwin.c 2003-12-13 21:26:02.000000000 -0800 1211@@ -27,6 +27,10 @@ 1212 # include <memory.h> 1213 #endif 1214 1215+#ifdef HAVE_STRING_H 1216+#include <string.h> 1217+#endif 1218+ 1219 #ifndef HAVE_MEMMOVE 1220 # define memmove PDC_memmove 1221 #endif 1222 1223 If you wish to compile with SSL enabled, you need to get and compile 1224 OpenSSL. The DJGPP port has been successfully compiled with the 1225 development version of OpenSSL. DJGPP can compile OpenSSL from the 1226 standard source distribution (http://www.openssl.org/). See the file 1227 "INSTALL.DJGPP" in the OpenSSL distribution. 1228 1229 If you have trouble applying the patches, try using the "patch" program, 1230 ("http://www.delorie.com/pub/djgpp/current/v2gnu/pat261b.zip"). 1231 To read the Unix man style documentation, use, for example, "less" 1232 ("http://www.delorie.com/pub/djgpp/current/v2gnu/lss374b.zip"). 1233 Compile or place your compiled PDCurses library in /djgpp/pdcur26, and 1234 compile or place your compiled WATT-32 library in /djgpp/watt32. If 1235 using the SLANG library, put libslang.a in your DJGPP/lib directory and put 1236 slang.h in your DJGPP/include directory, or in the appropriate directories 1237 specified by LIBRARY_PATH and INCLUDE_PATH in your DJGPP.ENV file. 1238 1239 Move to the "lynx2-*/WWW/Library/djgpp" directory. If compiling with 1240 PDCurses, do "make". If using SLANG, do "make -f makefile.sla". This 1241 should compile libwww.a. Next move to the "lynx2-*/src/chrtrans" directory 1242 and do "make -f makefile.dos" to compile the character tables. Then move 1243 to the "lynx2-*/src" directory. There are three choices for compiling at 1244 this point. You can do "make -f makefile.dos" to compile with PDCurses, 1245 "make -f makefile.wsl" to compile with SLANG, or "make -f makefile.dsl" to 1246 compile with SLANG and the DJGPP keyhandler. At the time of this writing, 1247 it is not clear what the advantages and disadvantages of each version are. 1248 The PDCurses version has the most experience and allows remapping of ALT 1249 and Function keys. The SLANG version seems to have better screen handling. 1250 It allows mapping of function keys, but not ALT keys. The SLANG with DJGPP 1251 keyhandler allows mapping of ALT and Function keys, but has the risk of 1252 incompatibilities from mixing different programs. 1253 1254 If you wish to compile with support for internationalization of messages, 1255 you first need to install the DOS ports of the GNU gettext and libiconv 1256 packages, available from any DJGPP mirror site. Then uncomment the lines 1257 for INTLFLAGS in src/makefile.dsl and in WWW/Library/djgpp/makefile.sla, 1258 and remove the "#" from the LIBS line in src/makefile.dsl. Make similar 1259 changes if using one of the other DOS makefiles. See the gettext 1260 documentation for information on creating and using message files for 1261 different languages. 1262 1263 If all goes well, you will have a lynx.exe file. If you have trouble, 1264 check to be sure djgpp.env is the way it came in the original package. 1265 1266 To test Lynx_386 you must have a packet driver installed. The simplest 1267 method is to use a null packet driver that just allows Lynx to start 1268 up, but doesn't do anything else. One such executable driver has been 1269 posted, uuencoded, to the lynx-dev mailing list in January 1998, 1270 but is corrupted in the mailing list archive. You can get this at 1271 "http://www.ncf.ca/ncf/pda/computer/dos/net/nullpkt.zip". Start the 1272 dummy packet driver with "nullpkt 0x60", and take it out of memory with 1273 "nullpkt -u". You can also use slip8250.com. See the CRYNWR package 1274 "ftp://ftp.simtel.net/pub/simtelnet/msdos/pktdrvr/pktd11.zip". Usage 1275 is "slip8250 0x60", but you may have to invoke it as, for example, 1276 "slip8250 0x60 6 3 0x2F8" so that it uses COM2 and IRQ 3, in order to 1277 avoid an IRQ conflict with a mouse or some other device. Another packet 1278 driver is slipper.exe, which is available from many sites, including 1279 "http://www.cavazza.it/file/bbs/intsoft/slippr15.zip". To remove it from 1280 memory use termin.com (usage "termin 0x60"), available in the CRYNWR 1281 package. To connect over a dialup PPP connection you need dosppp or klos' 1282 pppshare. (Find at: 1283 "http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/net/dosppp/dosppp06.zip" 1284 "http://www.ncf.carleton.ca/ncf/pda/computer/dos/net/dosppp06.zip" 1285 "http://www.cavazza.it/file/bbs/intsoft/dosppp06.zip" 1286 "http://www.cavazza.it/file/bbs/intsoft/pppshare.exe") 1287 1288 File access looks like this: 1289 1290 file:///c:/ 1291 file:///c:/dos 1292 file:///c:/dos/command.com 1293 file://localhost/c:/ 1294 file://localhost/c:/dos 1295 file://localhost/c:/dos/command.com 1296 1297 See "http://www.fdisk.com/doslynx/lynxport.htm" for more hints and 1298 some precompiled libraries. One problem you can encounter is editing 1299 userdefs.h and lynx.cfg, which have unix-style end of lines. You would 1300 be well advised to use an editor that can handle end of lines terminated 1301 with a single LF character. You can also unpack the source code using 1302 unzip386 or unzip with the -a or -aa switch to convert unix LF to dos CRLF. 1303 That will make texts more readable under DOS. If you compile lynx 1304 regularly, you may automate the procedure by creating a batch file such 1305 as the following. 1306 1307 cd djgpp\watt32\src 1308 configur djgpp 1309 make -f djgpp.mak 1310 cd ..\..\..\www\library\djgpp 1311 make 1312 cd ..\..\..\src\chrtrans 1313 make -f makefile.dos 1314 cd ..\..\src 1315 make -f makefile.dos 1316 strip lynx.exe 1317 cd .. 1318 1319 This batch file expects the DJGPP port of WATT-32 to be installed in the 1320 lynx2-* directory. Place a copy of this batch file, named "djgpp.bat", 1321 in the lynx2-* directory, move to that directory and type "djgpp". A more 1322 complete batch file with error checking and annotation can be found at: 1323 "http://lists.nongnu.org/archive/html/lynx-dev/1997-11/msg00250.html". 1324 1325 If you use the configure method, remember that if you configure with 1326 the option "--enable-nls", you also need to set LIBS="-liconv". A 1327 sample shell script to run configure using PDCurses follows. If you 1328 compile to use SLANG, note that the DJGPP keyhandler will be used 1329 instead of the SLANG keyhandler unless you define "NO_DJ_KEYHANDLER". 1330 1331 #!/bin/sh 1332 CFLAGS="-O2 -I/djgpp/pdcur26 -I/djgpp/watt32/inc" \ 1333 LIBS="-L/djgpp/pdcur26/lib -L/djgpp/watt32/lib -liconv" \ 1334 ./configure --prefix=d:/djgpp/lynx-rel/lynx-cnf \ 1335 --with-screen=curses \ 1336 --disable-full-paths \ 1337 --enable-addrlist-page \ 1338 --enable-change-exec \ 1339 --enable-cgi-links \ 1340 --enable-charset-choice \ 1341 --enable-color-style \ 1342 --enable-exec-links \ 1343 --enable-externs \ 1344 --enable-file-upload \ 1345 --enable-nested-tables \ 1346 --enable-nls \ 1347 --sysconfdir=d:/djgpp/lynx-rel/lynx-cnf \ 1348 --with-bzlib \ 1349 --with-zlib \ 1350 --with-ssl 1351 1352-- 1997/9/29 - D. Kaufman <dkaufman@rahul.net> 1353-- 1997/10/3 - B. Schiavo <Wschiavo@concentric.net> 1354-- Last update - 2010/11/27 1355 1356------------------------------------------------------------------------------- 1357 1358VI. General installation instructions 1359 1360 Once you have compiled Lynx, test it out first on a local file. Be sure 1361 Lynx can find lynx.cfg. A _sample_ test command line would be: 1362 'lynx -cfg=/usr/local/lib/lynx.cfg .'. Once you are satisfied that 1363 Lynx works, go ahead and install it. For Unix, type "make install". 1364 1365 For VMS, you need to have the executable in a public place, make it 1366 accessible, define it as a foreign command, and copy lynx.cfg to 1367 "Lynx_Dir". Look at lynx.com in the samples directory as a model for 1368 installing Lynx. To include lynx.hlp in the system HELP library, use 1369 the command: "$ library/replace sys$help:helplib.hlb lynx.hlp". 1370 1371 Local copies of the Lynx online help should be made accessible in response 1372 to the Lynx 'h'elp command by defining HELPFILE in userdefs.h and/or 1373 lynx.cfg to an appropriate file://localhost/path URL. On Unix, all you 1374 need to do is type "make install-help." If you are installing manually, 1375 copy the files "COPYHEADER" and "COPYING" into the lynx_help directory 1376 BEFORE moving the lynx_help tree to its final location. These files are 1377 referenced hypertextually from help documents. 1378 1379 If you have old, pre-existing bookmark files from earlier versions of 1380 Lynx, those files may have to be updated. Conversion may just consist 1381 of adding one META line near the top, or may require creating new book- 1382 mark files and editing in bookmarks from outdated files. 1383 1384 IMPORTANT! Be sure you have read the warnings about setting up an 1385 anonymous account with Lynx if you plan to give public access to Lynx. 1386 1387 After applying patches or editing files to correct for an unsuccessful 1388 build, be certain to do a "make clean" (or "make distclean" for those 1389 using auto-configure) before attempting to compile again. 1390 1391------------------------------------------------------------------------------- 1392 1393VII. Setting environment variables before running Lynx (optional) 1394 13951. All ports 1396 1397 The Lynx Users Guide describes all of the environment variables used by 1398 Lynx. This should be checked later along with reading lynx.cfg after you 1399 have installed Lynx. 1400 14012. Win32 (95/98/NT) and 386 DOS 1402 1403 These ports cannot start before setting certain environment variables. 1404 Here are some environment variables that should be set, usually in a 1405 batch file that runs the lynx executable. Make sure that you have enough 1406 room left in your environment. You may need to change your "SHELL=" 1407 setting in config.sys. In addition, lynx looks for a "SHELL" environment 1408 variable when shelling to DOS. If you wish to preserve the environment 1409 space when shelling, put a line like this in your AUTOEXEC.BAT file also 1410 "SET SHELL=C:\COMMAND.COM /E:4096". It should match CONFIG.SYS. 1411 1412 HOME Where to keep the bookmark file and personal config files. 1413 TEMP or TMP Bookmarks are kept here with no HOME. Temp files here. 1414 USER Set to your login name (optional) 1415 LYNX_CFG Set to the full path and filename for lynx.cfg 1416 LYNX_LSS Set to the full path and filename for lynx.lss 1417 LYNX_SAVE_SPACE The (modifiable) location for downloaded file storage. 1418 SSL_CERT_FILE Set to the full path and filename for your file of trusted 1419 certificates 1420 1421 386 version only: 1422 WATTCP.CFG Set to the full path for the WATTCP.CFG directory 1423 RL_CLCOPY_CMD Command to copy a URL to a "clipboard" file 1424 RL_PASTE_CMD Command to go to a URL in your "clipboard" file 1425 1426 Define these in your batch file for running Lynx. For example, if your 1427 application line is "D:\win32\lynx.bat", lynx.bat for Win32 may look like: 1428 @ECHO OFF 1429 set home=d:\win32 1430 set temp=d:\tmp 1431 set lynx_cfg=d:\win32\lynx.cfg 1432 set lynx_save_space=d:\download 1433 d:\win32\lynx.exe %1 %2 %3 %4 %5 1434 1435 For lynx_386, a typical batch file might look like: 1436 1437 @echo off 1438 set HOME=f:/lynx2-8 1439 set USER=your_login_name 1440 set LYNX_CFG=%HOME%/lynx.cfg 1441 set WATTCP.CFG=%HOME% 1442 f:\lynx2-8\lynx %1 %2 %3 %4 %5 %6 %7 %8 %9 1443 1444 You need to make sure that the WATTCP.CFG file has the correct information 1445 for IP number, Gateway, Netmask, and Domain Name Server. This can also be 1446 automated in the batch file. 1447 1448 Adapted from "readme.txt" by Wayne Buttles and "readme.dos" by Doug 1449 Kaufman. 1450 1451VIII. Acknowledgment 1452 1453 Thanks to the many volunteers who offered suggestions for making this 1454 installation manual as accurate and complete as possible. 1455 1456-- 1999/04/24 - H. Nelson <lynx-admin@irm.nara.kindai.ac.jp> 1457-- vile:txtmode 1458-- $LynxId: INSTALLATION,v 1.121 2013/04/30 09:47:15 tom Exp $ 1459