summaryrefslogtreecommitdiffstats
path: root/INSTALLATION
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALLATION')
-rw-r--r--INSTALLATION1487
1 files changed, 1487 insertions, 0 deletions
diff --git a/INSTALLATION b/INSTALLATION
new file mode 100644
index 0000000..e98dfb0
--- /dev/null
+++ b/INSTALLATION
@@ -0,0 +1,1487 @@
+
+ Lynx Installation Guide
+
+This file describes how to compile and install Lynx. A description of Lynx
+can be found in the README file. Lynx has been ported to UN*X, VMS, Win32
+and 386DOS. The procedures for compiling these ports are quite divergent
+and are detailed respectively in Sections II, III, IV and V. General
+installation, problem solving and environment variables are covered in
+Sections VI and VII. There is also a PROBLEMS file in the same directory
+as INSTALLATION which contains advice for special problems people have
+encountered, especially for particular machines and operating systems.
+
+If you still have difficulties, send an e-mail message to the Lynx-Dev mailing
+list (see the README file). Try to include information about your system,
+the name and version of your compiler, which curses library you are using
+and the compile-time errors. Be sure to say what version and image-number
+of Lynx you are trying to build (alternately the top date of the CHANGES file).
+
+If you don't understand what one of the defines means, try the README.defines
+and *.announce files in the docs subdirectory. The docs/CHANGES* files record
+the entire development history of Lynx and are an invaluable resource for
+understanding how Lynx should perform.
+
+First, you must configure Lynx for your system regardless of the port you use.
+Follow the instructions given immediately below to configure for your system,
+and then go to the respective section concerning the port you wish to compile.
+
+-------------------------------------------------------------------------------
+
+I. General configuration instructions (all ports).
+
+Step 1. Compile-time Variables.
+
+ There are a few variables that MUST be defined if Lynx is to build
+ and there are others you may want to change.
+
+ Lynx MUST be able to find lynx.cfg at start-up: using configure
+ (e.g. with UNIX or Cygwin), its location is best set with --sysconfdir ;
+ you can check in lynx_cfg.h after configure has run, if you wish.
+ otherwise, you can use LYNX_CFG_FILE in userdefs.h ,
+ environment variable LYNX_CFG or the -cfg command-line option.
+
+ If you are using configure, you need not make any changes in userdefs.h .
+ There are a few variables you can't define with configure --options
+ but can define in userdefs.h , e.g. numbering fields as well as links.
+ Many variables which can be defined with configure or userdefs.h
+ can also be defined in lynx.cfg or via the Options Menu.
+
+ Lynx implements Native Language Support. Read "ABOUT-NLS", if you want
+ to build an international version of Lynx or tailor status-line prompts,
+ messages and warnings to the requirements of your site.
+
+Step 2. Run-time Variables.
+
+ Read lynx.cfg thoroughly, as many Lynx features and how to use them
+ are explained there, in some cases ONLY there. Set up local printers,
+ downloaders, assumed character set, key mapping and colors in lynx.cfg .
+ Also see the sample mime.types, mailcap and jumps files
+ in the samples subdirectory.
+
+Step 3. Alternative Character Sets.
+
+ You may skip this, if you are not interested in special characters
+ and all local files or WWW pages you will view will use the ISO-8859-1
+ "ISO Latin 1" Western European character set.
+
+ If you will be running Lynx in an environment with different incompatible
+ character sets, configure CHARACTER_SET (the Display character set)
+ and ASSUME_LOCAL_CHARSET to work correctly before creating bookmark files
+ and other such items: read lynx.cfg for detailed instructions.
+ Additional character sets and their properties may be defined with tables
+ in the src/chrtrans directory: see the README.* files therein.
+
+Step 4. News.
+
+ Set NNTPSERVER in lynx.cfg to your site's NNTP server
+ or set the environment variable externally. For posting to be enabled,
+ NEWS_POSTING must be TRUE in userdefs.h or lynx.cfg.
+ Also define LYNX_SIG_FILE in userdefs.h or lynx.cfg ,
+ so that it points to users' signature files for appending to messages.
+
+Step 5. Anonymous Accounts *** VERY IMPORTANT!!!!! ***
+
+ If you are building Lynx for personal use only, you can skip this.
+
+ If you are setting up anonymous accounts to use Lynx captively,
+ i.e. making Web access publicly available to users who should not
+ be allowed any other type of access to your system,
+ you are STRONGLY advised to use the -anonymous command-line option:
+ if you do not use this option, users may be able to gain access
+ to all readable files on your machine!
+
+ Many implementations of telnetd allow passing of environment variables,
+ which might be used to modify the environment in anonymous accounts,
+ allowing mischief or damage by malicious users, so make sure the wrapper
+ uses the -cfg and -homepage switches to specify lynx.cfg and start-file,
+ rather than relying on variables LYNX_CFG, LYNX_CFG_FILE and WWW_HOME.
+
+-------------------------------------------------------------------------------
+
+II. Compile instructions -- UNIX
+
+1a. Auto-configure. The auto-configure script uses autoconf2.13 to generate a
+ Bourne shell script, configure, which creates "makefile" and "lynx_cfg.h".
+
+ If you are on a UNIX platform, the easiest way to build Lynx is to type:
+
+ ./configure
+ and
+ make
+
+ NOTE: Configure has a number of useful options. Please see below.
+
+ NOTE: The 'configure' script generates auxiliary files "config.status"
+ "config.cache" and "config.log". Normally you will not notice these;
+ they are created automatically and removed by a "make distclean".
+
+ + If you wish to rebuild Lynx with a new host, or change ANY of the
+ parameters which are stored in config.cache, you MUST first remove
+ the config.cache file before running configure; its options do NOT
+ override the settings in that file.
+
+ + The config.status file is a script which creates (or regenerates)
+ the files created by the configure script.
+
+ Please report problems in the configure/make process by including a copy
+ of config.status, config.cache and config.log, as well as the pertinent
+ compiler diagnostics.
+
+ See the note in aclocal.m4 for special instructions if you must modify the
+ configure script.
+
+ NOTE: Lynx is a curses-based application, so you must have a curses
+ library available to link to. Native curses (on the system when it was
+ installed) are often broken, so you may get superior performance if you
+ have either
+
+ "ncurses" ("ftp://ftp.invisible-island.net/ncurses") or
+ "slang" ("ftp://space.mit.edu/pub/davis/slang").
+
+ If you install these libraries in your home directory or a non-default
+ location, you may need to set the CPPFLAGS (full path to include files) and
+ LIBS (full path to library files) environment variables BEFORE running
+ configure. See "1d. Environment". Use the "--with-screen=ncurses" or
+ "--with-screen=slang" option.
+
+ Note that while lynx will build with a variety of versions of curses and
+ ncurses, some will be less satisfactory. Versions of ncurses before
+ 1.9.9g will not render color properly. Some other versions of curses do
+ not display color at all. Likewise, lynx may not build with old versions
+ of slang, e.g., before 0.99-38, because slang's interfaces change
+ periodically.
+
+ Note compiler/system specific problems below. See also:
+ https://invisible-island.net/ncurses/ncurses.faq.html
+
+1b. Platforms. Configure should work properly on any Unix-style system.
+ It has been tested on the following platforms.
+
+ AIX 3.2.5 (cc w/ curses) BeOS 4.5 (gcc w/ ncurses)
+ CLIX (cc w/ curses & ncurses) DGUX
+ Digital Unix 3.2C and 4.0 (gcc & cc w/ curses, ncurses & slang)
+ FreeBSD 2.1.5, 3.1 (gcc 2.6.3 w/ curses & ncurses)
+ HP-UX (K&R and ANSI cc, gcc w/ curses, ncurses & slang)
+ IRIX 5.2 and 6.2 (cc & gcc w/ curses, ncurses & slang)
+ Linux 2.0.0 (gcc 2.7.2 w/ curses, ncurses & slang)
+ MkLinux 2.1.5 (gcc 2.7.2.1) NetBSD
+ NEXTSTEP 3.3 (gcc 2.7.2.3 w/ curses)
+ OS/2 EMX 0.9c (ncurses) SCO OpenServer (cc w/ curses)
+ Solaris 2.5, 2.6 & 2.7 (cc & gcc w/ curses, ncurses & slang)
+ SunOS 4.1 (cc w/ curses, gcc w/ ncurses & slang)
+ OS390 and BS2000.
+
+ NOTE: SunOS and HP-UX come with a bundled K&R compiler, which is only
+ useful for compiling with the bundled curses. Both ncurses and slang
+ require a compiler that recognizes prototypes.
+
+1c. Options
+ To get a list of the configure script's options, type "./configure --help".
+ Below is an alphabetical listing of the Lynx-specific options. The actual
+ order shown by the -help option is different. See "docs/README.defines"
+ for information on defines for which there are no option switches.
+
+ --datadir
+ Defines the location where you want the documentation files installed.
+ The configure script constructs makefile actions to install lynx.cfg
+ modified to reflect this in the HELPFILE setting. (For platforms which
+ do not support a configure script, such as MS-DOS, Win32 and VMS, you
+ must edit lynx.cfg).
+
+ --disable-addrlist-page (prevent defining USE_ADDRLIST_PAGE)
+ Turn off code that displays an alternative list-page, bound to 'A'
+ rather than 'l', which always lists URLs rather than titles.
+
+ --disable-alt-bindings (prevent defining USE_ALT_BINDINGS)
+ Compiles-in an alternative set of line-edit bindings, in addition
+ to the default bindings.
+
+ --disable-bibp-urls (define DISABLE_BIBP)
+ Disable (do not compile code) support for bibp: URLs.
+
+ --disable-color-style (define USE_COLOR_STYLE)
+ Use this option to disable optional color style. This is implemented
+ for modern curses implementations, e.g., those that support color.
+
+ Before lynx 2.8.6dev.18, this option was disabled by default.
+ You can achieve a similar color effect to match the non-color-style
+ (but still allowing users to use color-style) by using the
+ --without-lss-file option.
+
+ --disable-config-info (define NO_CONFIG_INFO)
+ Use this option to disable extended browsable configuration information
+ (a screen that shows the result of the configuration script, as well
+ as extended lynx.cfg viewing with a pointer to the lynx.cfg file and
+ additional functionality).
+
+ --disable-dired (prevent defining DIRED_SUPPORT)
+ Use this option to disable the optional directory-editor.
+
+ Lynx supports directory editing (DirEd) for local directories.
+ This allows users to do things like view, copy and remove files
+ using a tabular display of the directory and single-keystroke
+ commands instead of using the command line. From inside Lynx, the
+ keystroke sequence "g.<enter>" switches Lynx to DirEd mode on the
+ current directory. If you're building a Lynx that is to be used as
+ a kind of restricted shell for users who do not have access to the
+ command line and should not have access to equivalent capabilities,
+ you probably want to disable DirEd with this option. You can also
+ disable some DirEd functions while allowing others. If you have
+ disabled DirEd completely, you can ignore all the more specific
+ DirEd options.
+
+ All DirEd menu functions that were enabled on compilation can be
+ disabled or modified at run time via DIRED_MENU symbols in lynx.cfg.
+
+ --disable-dired-dearchive (define ARCHIVE_ONLY)
+ Use this option to prevent DirEd from extracting files from an
+ archive file.
+
+ --disable-dired-gzip (prevent defining OK_GZIP)
+ Use this option to prevent DirEd from using gzip and gunzip.
+
+ --disable-dired-override (prevent defining OK_OVERRIDE)
+ Normally, in DirEd directory viewing mode some key mappings are
+ overridden. Use this option to disable DirEd keymap overriding.
+
+ --disable-dired-permit (prevent defining OK_PERMIT)
+ Use this option to prevent DirEd from changing the permissions
+ on directories or files (i.e., from doing what the Unix chmod
+ command or the DOS attrib command does).
+
+ --disable-dired-tar (prevent defining OK_TAR)
+ Use this option to prevent DirEd from using the tar program.
+
+ --disable-dired-uudecode (prevent defining OK_UUDECODE)
+ Use this option to prevent DirEd from using uudecode.
+
+ --disable-dired-xpermit (define NO_CHANGE_EXECUTE_PERMS)
+ Use this option if you do not disable out the dired-permit
+ option, but want to restrict changes of the eXecute permission
+ to directories (i.e., not allow it to be changed for files). If
+ you don't do this, you can still block changes of the eXecute
+ permission for files but not directories via the
+ "change_exec_perms" command line restriction.
+
+ --disable-dired-zip (prevent defining OK_ZIP)
+ Use this option to prevent DirEd from using zip and unzip.
+
+ --disable-echo
+ Use this option to suppress the "compiling" commands during a build.
+ Doing this makes it easier to find and read warning messages.
+
+ --disable-extended-dtd (define NO_EXTENDED_HTMLDTD)
+ disable extended HTML DTD logic. This should revert to old-style
+ (2.7.1/2.7.2) behavior, but is not well-tested.
+
+ --disable-file-upload (define USE_FILE_UPLOAD)
+ Compile-in support for form-based file-upload.
+
+ --disable-finger (define DISABLE_FINGER)
+ Do not compile-in code used to connect to "finger" URLs.
+
+ --disable-forms-options (define NO_OPTION_FORMS)
+ Disable the Form-based Options Menu (see --disable-menu-options).
+ The default is to compile key-based & form-based Options Menu code,
+ allowing users the final choice via FORMS_OPTIONS in lynx.cfg
+ or the -forms_options command-line switch.
+
+ --disable-ftp (define DISABLE_FTP)
+ Do not compile-in code used to connect to FTP servers.
+
+ --disable-full-paths
+ Use this option to control whether full pathnames are compiled in for
+ various utilities invoked by lynx as external commands. By default,
+ full pathnames are compiled in for the the locations where configure
+ finds these commands at configure time. Affected commands are chmod,
+ compress, cp, gzip, install, mkdir, mv, rm, tar, touch, gunzip, unzip,
+ bzip2, uudecode, zcat, zip, telnet, tn3270, rlogin. (Not all of them
+ are used on all systems or in all configurations.)
+
+ This option makes Lynx simpler to install, but potentially less secure,
+ since the commands are then set in the user's $PATH. All of these
+ commands may also be overridden individually by setting environment
+ variables before configuring. For example, you can disable the telnet
+ command by doing this:
+
+ setenv TELNET /bin/false
+
+ --disable-gopher (define DISABLE_GOPHER)
+ Do not compile-in code used to connect to GOPHER servers.
+
+ --disable-idna
+ By default, the configure script searches for the GNU idn library,
+ which lets lynx translated URLs which are in UTF-8 to ASCII. The
+ latter is needed for most network accesses. Use this option to
+ suppress the feature, e.g., to reduce size.
+
+ --disable-included-msgs
+ Do not use included messages, for i18n support. If NLS support is
+ requested, the configure script will otherwise use the messages in the
+ ./po subdirectory.
+
+ --disable-justify-elts (define USE_JUSTIFY_ELTS)
+ Do not use element-justification logic.
+
+ --disable-largefile (prevent defining LONG_LIST)
+
+ Use this option to disable the compiler and linker options that
+ provide largefile interfaces.
+
+ --disable-locale-charset (define USE_LOCALE_CHARSET)
+ Use nl_langinfo(CODESET) to determine initial value for display
+ charset, overrides character_set value in .lynxrc file.
+
+ --disable-long-list (prevent defining LONG_LIST)
+ Use this option to disable long "ls -l" directory listings (when
+ enabled, the actual directory style is configurable from lynx.cfg).
+
+ --disable-menu-options (define NO_OPTION_MENU)
+ Disable the Key-based Options Menu.
+ See --disable-forms-options (above) for further details.
+
+ --disable-news (define DISABLE_NEWS)
+ Do not compile-in code used to connect to NNTP (netnews) servers.
+
+ --disable-parent-dir-refs (define NO_PARENT_DIR_REFERENCE)
+ Use this option to disable "Up-to" parent-links in directory listings.
+
+ --disable-partial (prevent defining DISP_PARTIAL)
+ Turn off code that lets Lynx display parts of a long page while loading
+ it.
+
+ --disable-persistent-cookies (prevent defining USE_PERSISTENT_COOKIES)
+ Turn off support for saving cookies to a file, for subsequent reuse.
+ Persistent cookie support will use (or create) the file specified by
+ the 'COOKIE_FILE' option, or default to ".lynx_cookies" in the home
+ directory. (Currently there is no protection against conflict if
+ several lynx sessions are active from the same account).
+
+ --disable-prettysrc (define USE_PRETTYSRC)
+ Turn off support for colorizing the source view of HTML pages. If
+ compiled-in, new source view mode is available with -prettysrc command
+ line option.
+
+ --disable-progressbar (define USE_PROGRESSBAR)
+ Turn off support for a "progress bar" which displays at the bottom
+ of the screen when doing downloads and other time-consuming (but
+ interruptible) processes. This feature can be selected in the
+ options menu.
+
+ --disable-read-eta (define USE_READPROGRESS)
+ Turn off enhanced read-progress message showing ETA (estimated time to
+ completion), as well as the amount of time stalled without any data
+ transferred.
+
+ --disable-rpath-hack
+ The rpath-hack makes it simpler to build programs, particularly with
+ the *BSD ports which may have essential libraries in unusual places.
+ But it can interfere with building an executable for the base system.
+ Use this option in that case.
+
+ --disable-scrollbar (define USE_SCROLLBAR)
+ Turn off support for scrollbar on the right-margin of the screen.
+ If you configure with ncurses, this works with the mouse on xterm,
+ etc.
+
+ --disable-session-cache (define USE_CACHE_JAR)
+ Turn off support for saving/restoring session information in files.
+ Configurable from lynx.cfg
+
+ --disable-sessions (define USE_SESSIONS)
+ Turn off support for sessions, which allows the user to automatically
+ save and restore history information.
+
+ --disable-source-cache (define USE_SOURCE_CACHE)
+ Turn off support for caching HTML pages locally,
+ in files or in memory. Configurable from lynx.cfg
+
+ --disable-trace (define NO_LYNX_TRACE)
+ Turn off code that lets you trace internal details of Lynx's operation.
+ We recommend that you leave this enabled, since we need this
+ information to diagnose problems with either Lynx or the sites to which
+ you connect.
+
+ --enable-ascii-ctypes (define USE_ASCII_CTYPES)
+ Compiles-in alternative case-conversion functions which ensure that
+ configuration names, etc., are compared in POSIX locale. This is
+ important for operating in some locale such as Turkish.
+
+ --enable-cgi-links (define LYNXCGI_LINKS)
+ Allows lynx to access a cgi script directly without the need for
+ a http daemon.
+
+ --enable-change-exec (define ENABLE_OPTS_CHANGE_EXEC)
+ Allow users to change the execution status within the options screen.
+ See EXEC_LINKS and EXEC_SCRIPTS.
+
+ --enable-charset-choice (define USE_CHARSET_CHOICE)
+ Add logic for ASSUMED_DOC_CHARSET_CHOICE and DISPLAY_CHARSET_CHOICE in
+ lynx.cfg, allowing user to configure a subset of the compiled-in
+ charsets for normal use.
+
+ --enable-cjk (define CJK_EX)
+ Add experimental logic for supporting CJK documents. (This is not
+ necessary for CJK support and may go away in a future release.)
+
+ --enable-debug (The symbol DEBUG is always defined.)
+ Use this option to compile-in support for debugging.
+ Note that this flag is ignored if the CFLAGS environment
+ variable is set, in that case "-g" (or whatever) has to
+ be included in the CFLAGS value to get debugging.
+ Autoconf normally adds -g and -O options to CFLAGS if CFLAGS
+ was not set, and if the compiler supports those options.
+
+ --enable-default-colors (define USE_DEFAULT_COLORS)
+ Enable use of default-color background (ncurses/slang). Either
+ configuration supports the use of 'default' for colors even without
+ this option. That is, 'default' is interpreted as white (foreground)
+ or black (background) according to the context. When the default
+ colors configuration is built, the actual values for foreground and
+ background colors are determined by the terminal.
+
+ --enable-exec-links (define EXEC_LINKS)
+ Allows lynx to execute programs by accessing a link.
+
+ --enable-exec-scripts (define EXEC_SCRIPTS)
+ Allows lynx to execute programs inferred from a link.
+
+ --enable-externs (define USE_EXTERNALS)
+ Use this option to enable external application support. (See lynx.cfg.)
+
+ --enable-find-leaks (define LY_FIND_LEAKS)
+ Use this option to compile-in logic for testing memory leaks.
+
+ --enable-font-switch (define EXP_CHARTRANS_AUTOSWITCH)
+ Allow Lynx to automatically change the Linux console state (switch
+ fonts) according to the current Display Character Set. (Linux console
+ only. *Use with discretion.* See docs/README.chartrans.)
+
+ --enable-gnutls-compat (define USE_GNUTLS_FUNCS)
+ When --with-gnutls is used, tell whether to use GNUTLS's OpenSSL
+ compatibility library or use GNUTLS's low-level API directly.
+
+ --enable-gzip-help
+ Install the lynx help files in gzip'd format [*.gz] to save space.
+
+ --enable-htmlized-cfg
+ generate an HTMLized copy of lynx.cfg which will be installed with
+ the other help files.
+
+ --enable-internal-links (define TRACK_INTERNAL_LINKS)
+ With `internal links' (links within a document to a location within
+ the same document) enabled, Lynx will distinguish between, for example,
+ `<A HREF="foo#frag">' and `<A HREF="#frag">' within a document whose
+ URL is `foo'. It may handle such links differently, although practical
+ differences would appear only if the document containing them resulted
+ from a POST request or had a no-cache flag set. This feature attempts
+ to interpret URL-references as suggested by RFC 2396, and to prevent
+ mistaken resubmissions of form content with the POST method. An
+ alternate opinion asserts that the feature could actually result in
+ inappropriate resubmission of form content.
+
+ --enable-ipv6 (define ENABLE_IPV6)
+ use IPV6 (with IPV4) logic.
+
+ --enable-japanese-utf8 (define EXP_JAPANESEUTF8_SUPPORT)
+ use experimental Japanese UTF-8 logic.
+
+ --enable-kbd-layout (define EXP_KEYBOARD_LAYOUT)
+ Disabled by default, this option allows you to use translation
+ tables on the input keystrokes. Current tables include
+ ROT13'd keyboard layout
+ JCUKEN Cyrillic, for AT 101-key kbd
+ YAWERTY Cyrillic, for DEC LK201 kbd
+
+ --enable-local-docs
+ On install, modify link from help-page to point to the local
+ doc-directory, e.g., with README files. Normally this points
+ to the current release directory.
+
+ --enable-nested-tables (define EXP_NESTED_TABLES)
+ Extends TRST to format nested tables, as well as be smarter about
+ <BR> and <P> tags in table cells.
+
+ --enable-nls (several definitions)
+ use Native Language Support (i.e., gettext).
+
+ This relies upon external programs (msgfmt and xgettext) to format
+ the message catalogs:
+
+ + Unless you set the environment variables MSGFMT and XGETTEXT to
+ the full pathnames of these utilities, the configure script will
+ search for the GNU versions of these utilities.
+
+ It will also search for the GNU version of the corresponding
+ gettext() runtime function. On some platforms (such as Solaris),
+ this search gives misleading results.
+
+ + If you set those environment variables to full pathnames, the
+ configure script will warn if they are not the GNU versions of
+ the utilities.
+
+ --enable-nsl-fork (define NSL_FORK)
+ Disabled by default, this allows interruption of NSL requests,
+ so that `z' will stop the `look-up' phase of a connection.
+
+ --enable-syslog (define SYSLOG_REQUESTED_URLS)
+ Use this option to log NSL requests via syslog().
+
+ --enable-underlines (define UNDERLINE_LINKS)
+ Use this option to underline links rather than using boldface.
+
+ --enable-vertrace (define LY_TRACELINE)
+ Turn on code that prefixes trace output lines with source filename
+ and line number.
+
+ --enable-warnings
+ Use this option to turn on GCC compiler warnings.
+
+ --enable-wais
+ Use this option to turn on configure check for freeWAIS library.
+
+ --enable-widec
+ Use this option to allow the configure script to look for wide-curses
+ features. If you do not specify the option, the configure script
+ will look for these features if --with-screen=ncursesw is given.
+ For this release of Lynx, we recommend the ncursew library built from
+ ncurses 5.5.
+
+ --sysconfdir (affect LYNX_CFG_FILE)
+ Defines the location where you want the lynx.cfg file installed.
+ The configure script defines the symbol LYNX_CFG_FILE to correspond
+ with the $sysconfdir environment variable. (For platforms which do not
+ support a configure script, such as MS-DOS, Win32 and VMS, you must
+ edit userdefs.h if you wish to specify the location of lynx.cfg).
+
+ --with-Xaw3d
+ This option allows you to specify the X libraries used if you
+ are configuring lynx to use PDCurses on a Unix platform.
+
+ --with-XawPlus
+ This option allows you to specify the X libraries used if you
+ are configuring lynx to use PDCurses on a Unix platform.
+
+ --with-build-cc=XXX
+ If cross-compiling, specify a host C compiler, which is needed to
+ compile a utility which generates tables for lynx.
+ If you do not give this option, the configure script checks if the
+ $BUILD_CC variable is set, and otherwise defaults to gcc or cc.
+
+ --with-build-cpp=XXX
+ This is unused by lynx.
+
+ --with-build-cflags=XXX
+ If cross-compiling, specify the host C compiler-flags. You might need
+ to do this if the target compiler has unusual flags which confuse the
+ host compiler.
+
+ --with-build-cppflags=XXX
+ If cross-compiling, specify the host C preprocessor-flags. You might
+ need to do this if the target compiler has unusual flags which confuse
+ the host compiler.
+
+ --with-build-ldflags=XXX
+ If cross-compiling, specify the host linker-flags. You might need to
+ do this if the target linker has unusual flags which confuse the host
+ compiler.
+
+ --with-build-libs=XXX
+ If cross-compiling, the host libraries. You might need to do this if
+ the target environment requires unusual libraries.
+
+ --with-bzlib[=XXX] (define USE_BZLIB)
+ Use libbz2 for decompression of some bzip2 files.
+
+ The optional value XXX specifies the directory in which the library
+ can be found, and may be either the path of the "lib" directory,
+ or one level above. In either case, the corresponding header files
+ are assumed to be in the parallel "include" directory.
+
+ --with-charsets=list (define ALL_CHARSETS)
+ Limit the number of charsets that are compiled-in to the specified
+ list of comma-separated MIME names.
+
+ --with-cfg-file (define LYNX_CFG_FILE)
+ Specify the default configuration file's name. Use --without-cfg-file
+ to force the user to specify the configuration file on the command
+ line. The filename can be overridden by using the LYNX_CFG environment
+ variable.
+
+ --with-cfg-path (define LYNX_CFG_PATH)
+ Specify the default configuration file(s) directory search-list. Use
+ --without-cfg-path to limit this to the location of the lynx.cfg file.
+ The search-list can be overridden using the LYNX_CFG_PATH environment
+ variable.
+
+ --with-curses-dir
+ Specify directory under which curses/ncurses is installed. This
+ assumes a standard install, e.g., with an include and lib subdirectory.
+
+ --with-dbmalloc
+ use Conor Cahill's dbmalloc library
+
+ --with-destdir=XXX
+ set DESTDIR variable in makefiles. This is prefixed to all directories
+ in the actual install, but is not really part of the compiled-in or
+ configured directory names. It is convenient for packaging the
+ installed files. If you do not provide the option, the configure
+ script uses your $DESTDIR environment variable.
+
+ --with-dmalloc
+ use Gray Watson's dmalloc library
+
+ --with-gnutls[=XXX] (define USE_SSL, USE_GNUTLS_INCL)
+ Use this option to configure with the GNU TLS library.
+ See docs/README.ssl for additional information.
+
+ The optional value XXX specifies the directory in which the library
+ can be found, and may be either the path of the "lib" directory,
+ or one level above. In either case, the corresponding header files
+ are assumed to be in the parallel "include" directory. The default
+ is /usr/local/gnutls.
+
+ See the "--enable-gnutls-compat" option.
+
+ --with-included-gettext
+ not supported in this package. The configure script uses macros which
+ are bundled together with more useful features.
+
+ See the "--enable-nls" option.
+
+ --with-libiconv-prefix=DIR
+ search for libiconv in DIR/include and DIR/lib
+
+ --with-lss-file{=path} (define LYNX_LSS_FILE)
+ Specify the default style-sheet file's name. Use --without-lss-file
+ to make the default behavior match the non-color-style (if no --lss
+ option is given, and no COLOR_STYLE setting is in lynx.cfg).
+
+ --with-mime-libdir=list (define MIME_LIBDIR)
+ Use this option to specify the system directory containing the
+ mime.types and mailcap files.
+
+ --with-neXtaw
+ This option allows you to specify the X libraries used if you
+ are configuring lynx to use PDCurses on a Unix platform.
+
+ --with-nls-datadir=DIR
+ Use this option to override the configure script's NLS data directory,
+ under which the locale (i.e., language) files are installed. The
+ default value is derived at configure time, and depends on whether GNU
+ or native gettext is used.
+
+ --with-nss-compat[=XXX] (define USE_NSS_COMPAT_INCL)
+ Use this option to configure with the NSS library's OpenSSL-compatible
+ interface.
+ See docs/README.ssl for additional information.
+
+ The optional value XXX specifies the directory in which the library
+ can be found, and may be either the path of the "lib" directory,
+ or one level above. In either case, the corresponding header files
+ are assumed to be in the parallel "include" directory.
+
+ --with-pkg-config[=XXX]
+ Use pkg-config, if available, to tell how to build with certain
+ libraries, e.g., openssl and gnutls. If pkg-config is not used,
+ or if those libraries are not known to pkg-config, then the configure
+ script will search for the libraries as described in the --with-ssl
+ and --with-gnutls options.
+
+ The optional value XXX specifies the pathname for pkg-config, e.g.,
+ "/usr/local/bin/pkg-config".
+
+ Note: The pkg-config program is used only if no explicit directory
+ parameter is provided for the --with-ssl or --with-gnutls options.
+
+ --with-screen=XXX
+ Use this option to select the screen type. The option value, XXX
+ must be one of curses (the default), ncurses, ncursesw, pdcurses or
+ slang. Specifying a screen type causes the configure script to
+ look in standard locations for the associated header and library
+ files, unless you have preset the $CFLAGS and $LIBS variables.
+
+ --with-screen=ncursesw (define NCURSES, WIDEC_CURSES)
+ --with-screen=ncurses (define NCURSES)
+ --with-screen=pdcurses (define PDCURSES)
+ --with-screen=slang (define USE_SLANG)
+
+ Note that some systems may have a default curses library which
+ does not support color, while on others, ncurses is installed as
+ the curses library. The variant ncursesw is the wide-character
+ version of ncurses. See also the --enable-widec option.
+
+ For the ncurses/ncursesw options, the script also accepts variants
+ such as "ncursesw6", which helps it to find a specific ncurses config
+ script.
+
+ The pdcurses selection supported by the configure script is a UNIX-only
+ library which uses X11. If you are configuring with DJGPP, the likely
+ choice is "curses", since that is how PDCurses is normally installed.
+
+ --with-socks[=XXX] (define SOCKS)
+ Use this option to configure with the socks library.
+
+ The optional value XXX specifies the directory in which the library
+ can be found, and may be either the path of the "lib" directory,
+ or one level above. In either case, the corresponding header files
+ are assumed to be in the parallel "include" directory.
+
+ --with-socks5[=XXX] (define USE_SOCKS5, SOCKS)
+ Use this option to configure with the socks5 library.
+
+ The optional value XXX specifies the directory in which the library
+ can be found, and may be either the path of the "lib" directory,
+ or one level above. In either case, the corresponding header files
+ are assumed to be in the parallel "include" directory.
+
+ If you make a SOCKSified lynx, you may have trouble accessing FTP
+ servers. Also, instead of SOCKSifying lynx for use behind a firewall,
+ you are better off if you make it normally, and set it up to use a
+ proxy server. You can SOCKSify the proxy server, and it will handle
+ all clients, not just Lynx. If you do SOCKSify lynx, you can turn off
+ SOCKS proxy usage via a -nosocks command line switch.
+
+ --with-ssl[=XXX] (define USE_SSL)
+ Use this option to configure with the OpenSSL library, or SSLeay.
+ See docs/README.ssl for additional information.
+
+ The optional value XXX specifies the directory in which the library
+ can be found, and may be either the path of the "lib" directory,
+ or one level above. In either case, the corresponding header files
+ are assumed to be in the parallel "include" directory.
+
+ --with-system-type=XXX
+ For testing, override the derived host system-type which is used to
+ decide things such as special compiler options. This is normally
+ chosen automatically based on the type of system which you are
+ building on. We use it for testing the configure script.
+
+ --with-textdomain[=XXX] (define NLS_TEXTDOMAIN)
+ Set the NLS textdomain to the given value. This is normally "lynx".
+
+ --with-zlib[=XXX] (define USE_ZLIB)
+ Use zlib for decompression of some gzip files.
+
+ The optional value XXX specifies the directory in which the library
+ can be found, and may be either the path of the "lib" directory,
+ or one level above. In either case, the corresponding header files
+ are assumed to be in the parallel "include" directory.
+
+1d. Environment variables
+ The configure script looks for programs and libraries in known/standard
+ locations. You can override the behavior of the script by presetting
+ environment variables. If they are set, the script will try to use these
+ values rather than computing new ones. Useful variables include:
+
+ CC - the C compiler. If you do not override this, configure
+ will try to use gcc. For instance, setting CC=cc and
+ exporting this value will cause configure to use cc instead.
+
+ CFLAGS - the C compiler options. These also include C
+ preprocessor options (such as -I), since the $CFLAGS and
+ $CPPFLAGS variables are maintained separately.
+
+ CPPFLAGS - the C preprocessor options. For some configuration
+ tests, you may need to set both $CFLAGS and $CPPFLAGS if
+ you are compiling against header files in nonstandard
+ locations.
+
+ LDFLAGS - linker/loader options.
+
+ LIBS - the libraries to be linked, with -L and -l options. If
+ you are linking against libraries in nonstandard locations
+ unrelated to the install prefix (that you can specify in
+ the configure script) you may have to specify these via
+ the $LIBS variable.
+
+ Lynx has compiled-in the pathnames of various programs which it executes.
+ Normally the full pathnames are given, rather than the program name
+ alone. These may be preset in the environment by the capitalized version,
+ e.g., INSTALL for "install". The corresponding internal definitions
+ are suffixed "_PATH", e.g., "INSTALL_PATH".
+
+
+-- 1997/7/27 - T. Dickey <dickey@clark.net>
+
+1e. Examples
+ If you are compiling Lynx for your personal use and are restricted to your
+ home directory, a simple method for building would be to choose some
+ directory, say ".lynx", and then type:
+
+ ./configure --prefix=~/.lynx --exec-prefix=~/.lynx
+ and
+ make install
+
+ Now you only need to add "~/.lynx/bin" to your PATH and edit "~/.lynx/lib/
+ lynx.cfg" as described above.
+
+ I personally use the following csh shell script to set environment
+ variables and configure options rather than type them each time.
+ #!/bin/csh -f
+ setenv CPPFLAGS "-I$HOME/slang -I$HOME/.usr/include"
+ setenv LIBS "-L$HOME/.slang/lib -L$HOME/.usr/lib"
+ ./configure --exec-prefix=$HOME --bindir=$HOME/.lynx \
+ --mandir=$HOME/.usr/man --sysconfdir=$HOME/.usr/lib \
+ --with-screen=slang --with-zlib
+
+ CPPFLAGS in this example defines the full path to the slang and zlib
+ header files, which are not kept in standard directories. Likewise, LIBS
+ defines the nonstandard locations of libslang.a and libz.a. Setting the
+ option --bindir tells the configure script where I want to install the
+ lynx binary; setting --mandir tells it where to put the lynx.1 man page,
+ and setting --sysconfdir tells it (while at the same time defining
+ LYNX_CFG_FILE) where to put the configuration file "lynx.cfg", when I type
+ "make install". The --with-screen=slang and --with-zlib options are
+ explained above.
+
+2. Wais support (optional)
+ To add direct WAIS support, get the freeWAIS distribution from
+ "ftp://ftp.cnidr.org/pub/NIDR.tools/freewais", and compile it. The
+ compile process will create the libraries you will need, wais.a and
+ client.a. Edit the Makefile in the top level directory and add the
+ library locations under the DIRECT WAIS ACCESS heading. Edit the Makefile
+ for the WWW Library in "WWW/Library/Implementation/makefile" to point to
+ the include directory for the freewais distribution. Precompiled
+ libraries are available for many platforms if you don't wish to compile
+ one yourself.
+
+-------------------------------------------------------------------------------
+
+III. Compile instructions -- VMS
+
+Step 1. Downloading binary files.
+ Lynx must handle all IO as streams, and on VMS, output files are always
+ created with Stream_LF format via the C RTL's fopen(). The file headers
+ indicate Implied Carriage Control, even when the transfer was in binary
+ mode, which can confuse downloading software and cause corruption of
+ the file contents. To deal with this, you should define the symbol
+ USE_FIXED_RECORDS as TRUE in userdefs.h and/or lynx.cfg. This will
+ instruct Lynx to correct the header information to indicate FIXED 512
+ records, with No Implied Carriage Control. If Lynx fails to do the
+ conversion (because the file wasn't mapped to a binary MIME type) you can
+ execute FIXED512.COM externally to correct the header information. The
+ command file uses Joe Meadow's FILE utility, or the SET FILE/ATTRIBUTES
+ command on current versions of VMS, to modify the headers. See the
+ comments in FIXED512.COM, userdefs.h and lynx.cfg for more information.
+
+Step 2. Passive FTP
+ If your system requires the PASV FTP code instead of the standard PORT FTP
+ code (e.g., to deal with a firewall) then set the FTP_PASSIVE option in
+ lynx.cfg
+
+Step 3a.
+ Lynx uses the VMS port of gzip for uncompressing streams which have
+ Content-Encoding headers indicated compression with gzip or the
+ Unix compress. If you do not have gzip installed on your system
+ you can get it from "ftp://ftp.wku.edu/" in the fileserv directory.
+ The command Lynx uses to uncompress on VMS is "gzip -d".
+
+ If you are using the SOCKETSHR library, read SOCKETSHR.announce and
+ make sure you have defined SOCKETSHR and SOCKETSHR_LIBRARY as explained
+ therein.
+
+ A "build.com" and "build-slang.com" script for building Lynx with curses
+ or slang is in the top level directory. All you have to do is type
+ "@build" or "@build-slang" and answer its prompt for your system's TCP-IP
+ software. Current choices are:
+ MULTINET (default)
+ UCX
+ WIN_TCP
+ CMU_TCP
+ SOCKETSHR_TCP
+ TCPWARE
+ It will autosense whether you have VAXC, DECC or GNUC on VAX or AXP and
+ build appropriately. If a WWWLib already exists for that TCP-IP software,
+ it will prompt you for whether you want to rebuild it. If you want to
+ build a WWWLib separately, you can type "@libmake.com" with your default
+ directory set to [.WWW.Library.vms] instead doing it via "build.com" in
+ the top directory. You may need to modify "build-slang.com", as described
+ in its header, so that it can find slang.olb on your system. If you have
+ both DECC and VAXC, it will use DECC to benefit from the newer and more
+ efficient memory management functions.
+
+Step 3b. (optional compilation method)
+ If you have and want to use MMS, read the header of descrip.mms in the
+ top directory and be sure you include the appropriate macro definitions
+ when you invoke it:
+
+ $ MMS /Macro = (MULTINET=1) for VAXC - MultiNet
+ $ MMS /Macro = (WIN_TCP=1) for VAXC - Wollongong TCP/IP
+ $ MMS /Macro = (UCX=1) for VAXC - UCX
+ $ MMS /Macro = (CMU_TCP=1) for VAXC - OpenCMU TCP/IP
+ $ MMS /Macro = (SOCKETSHR_TCP=1) for VAXC - SOCKETSHR/NETLIB
+ $ MMS /Macro = (TCPWARE=1) for VAXC - TCPWare TCP/IP
+
+ $ MMS /Macro = (MULTINET=1, DEC_C=1) for DECC - MultiNet
+ $ MMS /Macro = (WIN_TCP=1, DEC_C=1) for DECC - Wollongong TCP/IP
+ $ MMS /Macro = (UCX=1, DEC_C=1) for DECC - UCX
+ $ MMS /Macro = (CMU_TCP=1, DEC_C=1) for DECC - OpenCMU TCP/IP
+ $ MMS /Macro = (SOCKETSHR_TCP=1,DEC_C=1) for DECC - SOCKETSHR/NETLIB
+ $ MMS /Macro = (TCPWARE=1, DEC_C=1) for DECC - TCPWare TCP/IP
+
+ $ MMS /Macro = (MULTINET=1, GNU_C=1) for GNUC - MultiNet
+ $ MMS /Macro = (WIN_TCP=1, GNU_C=1) for GNUC - Wollongong TCP/IP
+ $ MMS /Macro = (UCX=1, GNU_C=1) for GNUC - UCX
+ $ MMS /Macro = (CMU_TCP=1, GNU_C=1) for GNUC - OpenCMU TCP/IP
+ $ MMS /Macro = (SOCKETSHR_TCP=1,GNU_C=1) for GNUC - SOCKETSHR/NETLIB
+ $ MMS /Macro = (TCPWARE=1, GNU_C=1) for GNUC - TCPWare TCP/IP
+
+ If you just type "MMS" it will default to the MULTINET and VAXC
+ configuration. MMS will build the WWW library and Lynx sources, and
+ link the executable. However, not all of the header dependencies are
+ specified. If you are not a developer, and need a clean build, you
+ should use build.com instead of the MMS utility.
+
+ If you want SOCKS support on VMS, you must add SOCKS as a compilation
+ definition, and the SOCKS library to the link command. However, instead
+ of SOCKSifying Lynx for use behind a firewall, you are better off if you
+ build Lynx normally, and set up Lynx to use a proxy server (see below).
+ You instead can SOCKSify the proxy server, and it will handle all clients,
+ not just Lynx.
+
+-------------------------------------------------------------------------------
+
+IV. Compile instructions -- Win32 (Windows95/98/NT)
+
+Borland C:
+---------
+
+Simplified:
+----------
+
+Sources:
+ Download the current sources (choose a zip-file) from
+ https://lynx.invisible-island.net/
+ and unzip them into a directory where you will build Lynx.
+
+Compiler:
+ Download the Borland C/C++ 5.51 compiler from
+ http://forms.embarcadero.com/forms/BCC32CompilerDownload
+
+ This is a file named "freecompilertools.exe".
+
+ Run that to install the compiler, e.g., in
+ c:\app\bcc55
+
+ Do not install into a directory with spaces in its name, such as
+ c:\program files
+
+Libraries:
+ Download these "setup" files from http://gnuwin32.sourceforge.net
+ libiconv-1.9.2-1.exe (libiconv)
+ libintl-0.14.4.exe (libintl)
+ openssl-0.9.8h-1-setup.exe (openssl)
+ pdcurses-2.6.exe (pdcurses)
+ zlib-1.2.3.exe (zlib)
+
+ Install all of the packages in the same directory, "c:\app\GnuWin32".
+
+ A fix is needed in GnuWin32 include/zconf.h: change line reading
+ #if 1 /* HAVE_UNISTD_H -- this line is updated by ./configure */
+ to
+ #ifdef HAVE_UNISTD_H
+
+ Prepare import-libraries using Borland's implib program. The ".lib"
+ files that it uses are a different format than the import libraries
+ distributed with GnuWin2. From Lynx's source directory run
+ bcblibs
+
+Environment:
+ At this point, the bin-directory for the compiler and for the GnuWin32
+ libraries should be in your path.
+
+Building:
+ From Lynx's source directory
+ cd src\chrtrans
+ makew32 clean
+ makew32
+ cd ..\..
+ makew32 clean
+ makew32
+
+-------------------------------------------------------------------------------
+
+Detailed:
+--------
+ The original Win32 port was built with Borland C++ 4.52, but later
+ versions reportedly can be used. Before compiling the Lynx sources, you
+ need a curses library, and it is recommended that you have the zlib
+ library. Get pdcurses2.3 from "http://pdcurses.sourceforge.net/". I
+ have modified it so that mouse support is no longer broken for Lynx (see
+ "http://www.fdisk.com/doslynx/"). You will want to get zlib from
+ "http://www.zlib.net/ ". Compile these libraries, and
+ put them in a convenient place (pdcurses inside the Lynx directory).
+
+ Unpack the latest Lynx source distribution, and make an obj directory
+ under the source root to contain the compile output. Copy in your
+ IDE file. A sample IDE file and helper libraries are available at
+ "http://www.fdisk.com/doslynx/wlynx/source/".
+
+ First build the .h files in src\chrtrans using "makew32.bat". Double
+ check for new .tbl files; hand edit in any new ones, and then do "makew32".
+ Jump into Borland C++, load the project (IDE file) and compile Lynx.
+ Alternately, after compiling the chartrans tables, you can come back to
+ the top directory and compile manually, i.e., do "make -f makefile.bcb".
+
+ I also have a binary available at "http://www.fdisk.com/doslynx/". This
+ binary was compiled with pdcurses 2.3, hacked so win32 mouse support works,
+ and with zlib, so Lynx can do gzip routines internally. More hints and
+ information can be found in "http://www.fdisk.com/doslynx/lynxport.htm".
+
+-- 1997/10/12 - W. Buttles <lynx-port@fdisk.com>
+-- 2010/11/27 - URL's updated by Doug Kaufman <dkaufman@rahul.net>
+
+-------------------------------------------------------------------------------
+
+Cygwin:
+ It is possible to compile under the cygwin system, which will allow you to
+ use the configure script described above for Unix. Type, for example,
+ "./configure --with-screen=ncurses --with-libz" in a Dos window running the
+ cygwin bash$ shell. You also have the choice of using either pdcurses or
+ slang. You will need a launch program such as sh.exe to call helper
+ applications. Paths may need to be in cygwin style, rather than Windows
+ style (e.g., TMPDIR=/cygdrive/d/cygwin/tmp, rather than
+ TMPDIR=d:\cygwin\tmp).
+
+Visual C++:
+ You must have compiled zlib and PDCurses with the -MT (threaded code)
+ option. This is not the default with zlib (see Makefile.msc).
+
+ Copy into lib the following
+ zconf.h
+ zlib.h
+ zlib.lib
+
+ from the zlib build-tree, and
+ curses.h
+ pdcurses.lib
+
+ from the PDCurses build-tree.
+
+ Then
+ make-msc
+
+ to build lynx.
+
+-------------------------------------------------------------------------------
+
+V. Compile instructions -- 386 DOS
+
+ Compiling for DOS with DJGPP has traditionally been a multistep
+ procedure. Now, if you have a full installation of DJGPP you can
+ also install using the configure script, just as in the UNIX
+ section. This needs to be done under a BASH shell. Use a shell
+ script to run configure as in the example at the end of this
+ section. Otherwise you can follow the below instructions. The
+ multistep procedure for DOS may not be supported in the future
+ and use of the configure script is recommended. The information
+ about required libraries and unpacking applies to both methods of
+ compiling.
+
+ First install the C compiler and its libraries (see readme.1st from
+ DJGPP distribution).
+
+ Originally, lynx makefiles come with the initial -O2 optimization
+ level. If you experience compilation process too slow due to paging
+ to the disk (DPMI server provide virtual memory, when in lack of
+ RAM), you may change optimization to -O1 or turn the optimization
+ off entirely.
+
+ If using optimization level -O2 or -O3 with older versions of DJGPP
+ and GCC, you may need to "stubedit" your "cc1.exe" file to enlarge
+ compiler stack size. For instance, if using DJGPP 2.02 and GCC 2.8.1,
+ to compile with -O3 optimization, the stub needs to be edited to give
+ a larger stack. To do this go into djgpp\lib\gcc-lib\djgpp\2.81 and
+ either type the command:
+ "stubedit cc1.exe bufsize=63k minstack=2M",
+ or edit interactively with: "stubedit cc1.exe". Current versions of
+ DJGPP and GCC generally work with the standard stack.
+
+ Unpack the source code using a DOS program like UNZIP386. If you are
+ using PKUNZIP to unpack the .zip archive, you must use the -d command
+ line switch to restore the directory structure contained in the archive,
+ i.e., do "pkunzip -d lynx-cur.zip". No switch is required if you use
+ unzip386 or unzip. If you are trying to compile the 386DOS port under a
+ WinNT DOS shell, be sure to unpack the source with a DOS program so
+ that all directories will be adjusted to the DOS 8.3 file format necessary
+ for compiling with DJGPP. Do NOT use Winzip, because that will create
+ long filenames that will not be recognized by DJGPP tools.
+
+ If you wish to compile with "USE_ZLIB" (recommended), you must have the
+ zlib library. Get the source from
+ http://www.zlib.net
+ and compile it. Put libz.a in the lib subdirectory of DJGPP, and put
+ zlib.h and zconf.h in the include subdirectory.
+
+ In addition to the files in the Lynx distribution, you will need a curses
+ package and a TCP package. You can use PDCurses (available at
+ "http://pdcurses.sourceforge.net/") and the DJGPP port of WATTCP. The
+ updated version of WATTCP is known as WATT-32, and is available at
+ "http://home.broadpark.no/~gvanem/". You can also use slang (available at
+ "http://www.jedsoft.org/slang/") as your screen library. You must
+ compile these before you go any further. If you wish to use PDCurses 2.6,
+ you need to first apply the following patch:
+
+--- dos/gccdos.mak.ori 2002-01-11 20:11:18.000000000 -0800
++++ dos/gccdos.mak 2003-12-13 21:29:28.000000000 -0800
+@@ -40,11 +40,11 @@
+ CFLAGS = -c -g -Wall -DPDCDEBUG
+ LDFLAGS = -g
+ else
+- CFLAGS = -c -O -Wall
++ CFLAGS = -c -O2 -Wall
+ LDFLAGS =
+ endif
+
+-CPPFLAGS = -I$(PDCURSES_HOME) -I$(CCINCDIR) -D_NAIVE_DOS_REGS
++CPPFLAGS = -I$(PDCURSES_HOME) -I$(CCINCDIR) -D_NAIVE_DOS_REGS -DHAVE_STRING_H
+
+ CCFLAGS = $(CFLAGS) $(CPPFLAGS)
+
+@@ -64,10 +64,10 @@
+ all: $(PDCLIBS) $(DEMOS)
+
+ clean:
+ -del *.o
+- -del curses.lib
+- -del panel.lib
++ -del pdcurses.a
++ -del panel.a
+
+ demos: $(DEMOS)
+
+@@ -287,33 +287,27 @@
+ #------------------------------------------------------------------------
+
+ firework.exe: firework.o $(LIBCURSES)
+- $(LINK) $(LDFLAGS) -o firework firework.o $(LIBCURSES)
+- $(COFF2EXE) firework
++ $(LINK) $(LDFLAGS) -o firework.exe firework.o $(LIBCURSES)
+ strip $@
+
+ newdemo.exe: newdemo.o $(LIBCURSES)
+- $(LINK) $(LDFLAGS) -o newdemo newdemo.o $(LIBCURSES)
+- $(COFF2EXE) newdemo
++ $(LINK) $(LDFLAGS) -o newdemo.exe newdemo.o $(LIBCURSES)
+ strip $@
+
+ ptest.exe: ptest.o $(LIBCURSES) $(LIBPANEL)
+- $(LINK) $(LDFLAGS) -o ptest ptest.o $(LIBCURSES) $(LIBPANEL)
+- $(COFF2EXE) ptest
++ $(LINK) $(LDFLAGS) -o ptest.exe ptest.o $(LIBCURSES) $(LIBPANEL)
+ strip $@
+
+ testcurs.exe: testcurs.o $(LIBCURSES)
+- $(LINK) $(LDFLAGS) -o testcurs testcurs.o $(LIBCURSES)
+- $(COFF2EXE) testcurs
++ $(LINK) $(LDFLAGS) -o testcurs.exe testcurs.o $(LIBCURSES)
+ strip $@
+
+ tuidemo.exe: tuidemo.o tui.o $(LIBCURSES)
+- $(LINK) $(LDFLAGS) -o tuidemo tuidemo.o tui.o $(LIBCURSES)
+- $(COFF2EXE) tuidemo
++ $(LINK) $(LDFLAGS) -o tuidemo.exe tuidemo.o tui.o $(LIBCURSES)
+ strip $@
+
+ xmas.exe: xmas.o $(LIBCURSES)
+- $(LINK) $(LDFLAGS) -o xmas xmas.o $(LIBCURSES)
+- $(COFF2EXE) xmas
++ $(LINK) $(LDFLAGS) -o xmas.exe xmas.o $(LIBCURSES)
+ strip $@
+
+
+--- dos/pdckbd.c.ori 2002-09-01 00:13:30.000000000 -0800
++++ dos/pdckbd.c 2004-01-19 20:30:02.000000000 -0800
+@@ -362,7 +362,7 @@
+ return ((int) (0xb8 << 8));
+ if (ascii == 0xe0 && scan == 0x53 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Del */
+ return ((int) (0xb9 << 8));
+- if (ascii == 0x00 || ascii == 0xe0)
++ if (ascii == 0x00 || (ascii == 0xe0 && scan != 0x00))
+ return ((int) (scan << 8));
+ return ((int) (ascii));
+ }
+@@ -522,7 +522,7 @@
+ _watch_breaks();
+ #else
+ # ifdef GO32
+- (void*)signal(SIGINT,(setting ? SIG_DFL : SIG_IGN));
++/* (void*)signal(SIGINT,(setting ? SIG_DFL : SIG_IGN)); */
+ /* __djgpp_set_ctrl_c(setting);*/
+ setcbrk(setting);
+ # else
+--- pdcurses/kernel.c.ori 2002-11-27 03:24:32.000000000 -0800
++++ pdcurses/kernel.c 2003-12-13 21:22:38.000000000 -0800
+@@ -27,6 +27,10 @@
+ #include <memory.h>
+ #endif
+
++#ifdef HAVE_STRING_H
++#include <string.h>
++#endif
++
+ #ifdef UNIX
+ #include <defs.h>
+ #include <term.h>
+--- pdcurses/pdcutil.c.ori 2001-01-10 00:27:22.000000000 -0800
++++ pdcurses/pdcutil.c 2003-12-13 21:24:58.000000000 -0800
+@@ -49,7 +49,7 @@
+ # include <limits.h>
+ #endif
+
+-#ifdef STDC_HEADERS
++#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
+ # include <string.h>
+ #endif
+
+--- pdcurses/pdcwin.c.ori 2002-05-25 17:13:32.000000000 -0800
++++ pdcurses/pdcwin.c 2003-12-13 21:26:02.000000000 -0800
+@@ -27,6 +27,10 @@
+ # include <memory.h>
+ #endif
+
++#ifdef HAVE_STRING_H
++#include <string.h>
++#endif
++
+ #ifndef HAVE_MEMMOVE
+ # define memmove PDC_memmove
+ #endif
+
+ If you wish to compile with SSL enabled, you need to get and compile
+ OpenSSL. The DJGPP port has been successfully compiled with the
+ development version of OpenSSL. DJGPP can compile OpenSSL from the
+ standard source distribution (http://www.openssl.org/). See the file
+ "INSTALL.DJGPP" in the OpenSSL distribution.
+
+ If you have trouble applying the patches, try using the "patch" program,
+ ("http://www.delorie.com/pub/djgpp/current/v2gnu/pat261b.zip").
+ To read the Unix man style documentation, use, for example, "less"
+ ("http://www.delorie.com/pub/djgpp/current/v2gnu/lss374b.zip").
+ Compile or place your compiled PDCurses library in /djgpp/pdcur26, and
+ compile or place your compiled WATT-32 library in /djgpp/watt32. If
+ using the SLANG library, put libslang.a in your DJGPP/lib directory and put
+ slang.h in your DJGPP/include directory, or in the appropriate directories
+ specified by LIBRARY_PATH and INCLUDE_PATH in your DJGPP.ENV file.
+
+ Move to the "lynx2-*/WWW/Library/djgpp" directory. If compiling with
+ PDCurses, do "make". If using SLANG, do "make -f makefile.sla". This
+ should compile libwww.a. Next move to the "lynx2-*/src/chrtrans" directory
+ and do "make -f makefile.dos" to compile the character tables. Then move
+ to the "lynx2-*/src" directory. There are three choices for compiling at
+ this point. You can do "make -f makefile.dos" to compile with PDCurses,
+ "make -f makefile.wsl" to compile with SLANG, or "make -f makefile.dsl" to
+ compile with SLANG and the DJGPP keyhandler. At the time of this writing,
+ it is not clear what the advantages and disadvantages of each version are.
+ The PDCurses version has the most experience and allows remapping of ALT
+ and Function keys. The SLANG version seems to have better screen handling.
+ It allows mapping of function keys, but not ALT keys. The SLANG with DJGPP
+ keyhandler allows mapping of ALT and Function keys, but has the risk of
+ incompatibilities from mixing different programs.
+
+ If you wish to compile with support for internationalization of messages,
+ you first need to install the DOS ports of the GNU gettext and libiconv
+ packages, available from any DJGPP mirror site. Then uncomment the lines
+ for INTLFLAGS in src/makefile.dsl and in WWW/Library/djgpp/makefile.sla,
+ and remove the "#" from the LIBS line in src/makefile.dsl. Make similar
+ changes if using one of the other DOS makefiles. See the gettext
+ documentation for information on creating and using message files for
+ different languages.
+
+ If all goes well, you will have a lynx.exe file. If you have trouble,
+ check to be sure djgpp.env is the way it came in the original package.
+
+ To test Lynx_386 you must have a packet driver installed. The simplest
+ method is to use a null packet driver that just allows Lynx to start
+ up, but doesn't do anything else. One such executable driver has been
+ posted, uuencoded, to the lynx-dev mailing list in January 1998,
+ but is corrupted in the mailing list archive. You can get this at
+ "http://www.ncf.ca/ncf/pda/computer/dos/net/nullpkt.zip". Start the
+ dummy packet driver with "nullpkt 0x60", and take it out of memory with
+ "nullpkt -u". You can also use slip8250.com. See the CRYNWR package
+ "ftp://ftp.simtel.net/pub/simtelnet/msdos/pktdrvr/pktd11.zip". Usage
+ is "slip8250 0x60", but you may have to invoke it as, for example,
+ "slip8250 0x60 6 3 0x2F8" so that it uses COM2 and IRQ 3, in order to
+ avoid an IRQ conflict with a mouse or some other device. Another packet
+ driver is slipper.exe, which is available from many sites, including
+ "http://www.cavazza.it/file/bbs/intsoft/slippr15.zip". To remove it from
+ memory use termin.com (usage "termin 0x60"), available in the CRYNWR
+ package. To connect over a dialup PPP connection you need dosppp or klos'
+ pppshare. (Find at:
+ "http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/net/dosppp/dosppp06.zip"
+ "http://www.ncf.carleton.ca/ncf/pda/computer/dos/net/dosppp06.zip"
+ "http://www.cavazza.it/file/bbs/intsoft/dosppp06.zip"
+ "http://www.cavazza.it/file/bbs/intsoft/pppshare.exe")
+
+ File access looks like this:
+
+ file:///c:/
+ file:///c:/dos
+ file:///c:/dos/command.com
+ file://localhost/c:/
+ file://localhost/c:/dos
+ file://localhost/c:/dos/command.com
+
+ See "http://www.fdisk.com/doslynx/lynxport.htm" for more hints and
+ some precompiled libraries. One problem you can encounter is editing
+ userdefs.h and lynx.cfg, which have unix-style end of lines. You would
+ be well advised to use an editor that can handle end of lines terminated
+ with a single LF character. You can also unpack the source code using
+ unzip386 or unzip with the -a or -aa switch to convert unix LF to dos CRLF.
+ That will make texts more readable under DOS. If you compile lynx
+ regularly, you may automate the procedure by creating a batch file such
+ as the following.
+
+ cd djgpp\watt32\src
+ configur djgpp
+ make -f djgpp.mak
+ cd ..\..\..\www\library\djgpp
+ make
+ cd ..\..\..\src\chrtrans
+ make -f makefile.dos
+ cd ..\..\src
+ make -f makefile.dos
+ strip lynx.exe
+ cd ..
+
+ This batch file expects the DJGPP port of WATT-32 to be installed in the
+ lynx2-* directory. Place a copy of this batch file, named "djgpp.bat",
+ in the lynx2-* directory, move to that directory and type "djgpp". A more
+ complete batch file with error checking and annotation can be found at:
+ "http://lists.nongnu.org/archive/html/lynx-dev/1997-11/msg00250.html".
+
+ If you use the configure method, remember that if you configure with
+ the option "--enable-nls", you also need to set LIBS="-liconv". A
+ sample shell script to run configure using PDCurses follows. If you
+ compile to use SLANG, note that the DJGPP keyhandler will be used
+ instead of the SLANG keyhandler unless you define "NO_DJ_KEYHANDLER".
+
+ #!/bin/sh
+ CFLAGS="-O2 -I/djgpp/pdcur26 -I/djgpp/watt32/inc" \
+ LIBS="-L/djgpp/pdcur26/lib -L/djgpp/watt32/lib -liconv" \
+ ./configure --prefix=d:/djgpp/lynx-rel/lynx-cnf \
+ --with-screen=curses \
+ --disable-full-paths \
+ --enable-addrlist-page \
+ --enable-change-exec \
+ --enable-cgi-links \
+ --enable-charset-choice \
+ --enable-color-style \
+ --enable-exec-links \
+ --enable-externs \
+ --enable-file-upload \
+ --enable-nested-tables \
+ --enable-nls \
+ --sysconfdir=d:/djgpp/lynx-rel/lynx-cnf \
+ --with-bzlib \
+ --with-zlib \
+ --with-ssl
+
+-- 1997/9/29 - D. Kaufman <dkaufman@rahul.net>
+-- 1997/10/3 - B. Schiavo <Wschiavo@concentric.net>
+-- Last update - 2010/11/27
+
+-------------------------------------------------------------------------------
+
+VI. General installation instructions
+
+ Once you have compiled Lynx, test it out first on a local file. Be sure
+ Lynx can find lynx.cfg. A _sample_ test command line would be:
+ 'lynx -cfg=/usr/local/lib/lynx.cfg .'. Once you are satisfied that
+ Lynx works, go ahead and install it. For Unix, type "make install".
+
+ For VMS, you need to have the executable in a public place, make it
+ accessible, define it as a foreign command, and copy lynx.cfg to
+ "Lynx_Dir". Look at lynx.com in the samples directory as a model for
+ installing Lynx. To include lynx.hlp in the system HELP library, use
+ the command: "$ library/replace sys$help:helplib.hlb lynx.hlp".
+
+ Local copies of the Lynx online help should be made accessible in response
+ to the Lynx 'h'elp command by defining HELPFILE in userdefs.h and/or
+ lynx.cfg to an appropriate file://localhost/path URL. On Unix, all you
+ need to do is type "make install-help." If you are installing manually,
+ copy the files "COPYHEADER" and "COPYING" into the lynx_help directory
+ BEFORE moving the lynx_help tree to its final location. These files are
+ referenced hypertextually from help documents.
+
+ If you have old, pre-existing bookmark files from earlier versions of
+ Lynx, those files may have to be updated. Conversion may just consist
+ of adding one META line near the top, or may require creating new book-
+ mark files and editing in bookmarks from outdated files.
+
+ IMPORTANT! Be sure you have read the warnings about setting up an
+ anonymous account with Lynx if you plan to give public access to Lynx.
+
+ After applying patches or editing files to correct for an unsuccessful
+ build, be certain to do a "make clean" (or "make distclean" for those
+ using auto-configure) before attempting to compile again.
+
+-------------------------------------------------------------------------------
+
+VII. Setting environment variables before running Lynx (optional)
+
+1. All ports
+
+ The Lynx Users Guide describes all of the environment variables used by
+ Lynx. This should be checked later along with reading lynx.cfg after you
+ have installed Lynx.
+
+2. Win32 (95/98/NT) and 386 DOS
+
+ These ports cannot start before setting certain environment variables.
+ Here are some environment variables that should be set, usually in a
+ batch file that runs the lynx executable. Make sure that you have enough
+ room left in your environment. You may need to change your "SHELL="
+ setting in config.sys. In addition, lynx looks for a "SHELL" environment
+ variable when shelling to DOS. If you wish to preserve the environment
+ space when shelling, put a line like this in your AUTOEXEC.BAT file also
+ "SET SHELL=C:\COMMAND.COM /E:4096". It should match CONFIG.SYS.
+
+ HOME Where to keep the bookmark file and personal config files.
+ TEMP or TMP Bookmarks are kept here with no HOME. Temp files here.
+ USER Set to your login name (optional)
+ LYNX_CFG Set to the full path and filename for lynx.cfg
+ LYNX_LSS Set to the full path and filename for lynx.lss
+ LYNX_SAVE_SPACE The (modifiable) location for downloaded file storage.
+ SSL_CERT_FILE Set to the full path and filename for your file of trusted
+ certificates
+
+ 386 version only:
+ WATTCP.CFG Set to the full path for the WATTCP.CFG directory
+ RL_CLCOPY_CMD Command to copy a URL to a "clipboard" file
+ RL_PASTE_CMD Command to go to a URL in your "clipboard" file
+
+ Define these in your batch file for running Lynx. For example, if your
+ application line is "D:\win32\lynx.bat", lynx.bat for Win32 may look like:
+ @ECHO OFF
+ set home=d:\win32
+ set temp=d:\tmp
+ set lynx_cfg=d:\win32\lynx.cfg
+ set lynx_save_space=d:\download
+ d:\win32\lynx.exe %1 %2 %3 %4 %5
+
+ For lynx_386, a typical batch file might look like:
+
+ @echo off
+ set HOME=f:/lynx2-8
+ set USER=your_login_name
+ set LYNX_CFG=%HOME%/lynx.cfg
+ set WATTCP.CFG=%HOME%
+ f:\lynx2-8\lynx %1 %2 %3 %4 %5 %6 %7 %8 %9
+
+ You need to make sure that the WATTCP.CFG file has the correct information
+ for IP number, Gateway, Netmask, and Domain Name Server. This can also be
+ automated in the batch file.
+
+ Adapted from "readme.txt" by Wayne Buttles and "readme.dos" by Doug
+ Kaufman.
+
+VIII. Acknowledgment
+
+ Thanks to the many volunteers who offered suggestions for making this
+ installation manual as accurate and complete as possible.
+
+-- 1999/04/24 - H. Nelson <lynx-admin@irm.nara.kindai.ac.jp>
+-- vile:txtmode
+-- $LynxId: INSTALLATION,v 1.130 2018/07/08 15:22:44 tom Exp $