Blame INSTALLATION

Packit f574b8
Packit f574b8
                      Lynx Installation Guide
Packit f574b8
Packit f574b8
This file describes how to compile and install Lynx.  A description of Lynx
Packit f574b8
can be found in the README file.  Lynx has been ported to UN*X, VMS, Win32
Packit f574b8
and 386DOS.  The procedures for compiling these ports are quite divergent
Packit f574b8
and are detailed respectively in Sections II, III, IV and V.  General
Packit f574b8
installation, problem solving and environment variables are covered in
Packit f574b8
Sections VI and VII.  There is also a PROBLEMS file in the same directory
Packit f574b8
as INSTALLATION which contains advice for special problems people have
Packit f574b8
encountered, especially for particular machines and operating systems.
Packit f574b8
Packit f574b8
If you still have difficulties, send an e-mail message to the Lynx-Dev mailing
Packit f574b8
list (see the README file).  Try to include information about your system,
Packit f574b8
the name and version of your compiler, which curses library you are using
Packit f574b8
and the compile-time errors.  Be sure to say what version and image-number
Packit f574b8
of Lynx you are trying to build (alternately the top date of the CHANGES file).
Packit f574b8
Packit f574b8
If you don't understand what one of the defines means, try the README.defines
Packit f574b8
and *.announce files in the docs subdirectory.  The docs/CHANGES* files record
Packit f574b8
the entire development history of Lynx and are an invaluable resource for
Packit f574b8
understanding how Lynx should perform.
Packit f574b8
Packit f574b8
First, you must configure Lynx for your system regardless of the port you use.
Packit f574b8
Follow the instructions given immediately below to configure for your system,
Packit f574b8
and then go to the respective section concerning the port you wish to compile.
Packit f574b8
Packit f574b8
-------------------------------------------------------------------------------
Packit f574b8
Packit f574b8
I. General configuration instructions (all ports).
Packit f574b8
Packit f574b8
Step 1.  Compile-time Variables.
Packit f574b8
Packit f574b8
  There are a few variables that MUST be defined if Lynx is to build
Packit f574b8
  and there are others you may want to change.
Packit f574b8
Packit f574b8
  Lynx MUST be able to find lynx.cfg at start-up: using configure
Packit f574b8
  (e.g. with UNIX or Cygwin), its location is best set with --sysconfdir ;
Packit f574b8
  you can check in lynx_cfg.h after configure has run, if you wish.
Packit f574b8
  otherwise, you can use LYNX_CFG_FILE in userdefs.h ,
Packit f574b8
  environment variable LYNX_CFG or the -cfg command-line option.
Packit f574b8
Packit f574b8
  If you are using configure, you need not make any changes in userdefs.h .
Packit f574b8
  There are a few variables you can't define with configure --options
Packit f574b8
  but can define in userdefs.h , e.g. numbering fields as well as links.
Packit f574b8
  Many variables which can be defined with configure or  userdefs.h
Packit f574b8
  can also be defined in lynx.cfg or via the Options Menu.
Packit f574b8
Packit f574b8
  Lynx implements Native Language Support.  Read "ABOUT-NLS", if you want
Packit f574b8
  to build an international version of Lynx or tailor status-line prompts,
Packit f574b8
  messages and warnings to the requirements of your site.
Packit f574b8
Packit f574b8
Step 2.  Run-time Variables.
Packit f574b8
Packit f574b8
  Read  lynx.cfg  thoroughly, as many Lynx features and how to use them
Packit f574b8
  are explained there, in some cases ONLY there.  Set up local printers,
Packit f574b8
  downloaders, assumed character set, key mapping and colors in  lynx.cfg .
Packit f574b8
  Also see the sample mime.types, mailcap and jumps files
Packit f574b8
  in the samples subdirectory.
Packit f574b8
Packit f574b8
Step 3.  Alternative Character Sets.
Packit f574b8
Packit f574b8
  You may skip this, if you are not interested in special characters
Packit f574b8
  and all local files or WWW pages you will view will use the ISO-8859-1
Packit f574b8
  "ISO Latin 1" Western European character set.
Packit f574b8
Packit f574b8
  If you will be running Lynx in an environment with different incompatible
Packit f574b8
  character sets, configure CHARACTER_SET (the Display character set)
Packit f574b8
  and ASSUME_LOCAL_CHARSET to work correctly before creating bookmark files
Packit f574b8
  and other such items: read lynx.cfg for detailed instructions.
Packit f574b8
  Additional character sets and their properties may be defined with tables
Packit f574b8
  in the src/chrtrans directory: see the README.* files therein.
Packit f574b8
Packit f574b8
Step 4.  News.
Packit f574b8
Packit f574b8
  Set NNTPSERVER in lynx.cfg to your site's NNTP server
Packit f574b8
  or set the environment variable externally.  For posting to be enabled,
Packit f574b8
  NEWS_POSTING must be TRUE in userdefs.h or lynx.cfg.
Packit f574b8
  Also define LYNX_SIG_FILE in userdefs.h or lynx.cfg ,
Packit f574b8
  so that it points to users' signature files for appending to messages.
Packit f574b8
Packit f574b8
Step 5.  Anonymous Accounts *** VERY IMPORTANT!!!!! ***
Packit f574b8
Packit f574b8
  If you are building Lynx for personal use only, you can skip this.
Packit f574b8
Packit f574b8
  If you are setting up anonymous accounts to use Lynx captively,
Packit f574b8
  i.e. making Web access publicly available to users who should not
Packit f574b8
  be allowed any other type of access to your system,
Packit f574b8
  you are STRONGLY advised to use the -anonymous command-line option:
Packit f574b8
  if you do not use this option, users may be able to gain access
Packit f574b8
  to all readable files on your machine!
Packit f574b8
Packit f574b8
  Many implementations of telnetd allow passing of environment variables,
Packit f574b8
  which might be used to modify the environment in anonymous accounts,
Packit f574b8
  allowing mischief or damage by malicious users, so make sure the wrapper
Packit f574b8
  uses the -cfg and -homepage switches to specify  lynx.cfg  and start-file,
Packit f574b8
  rather than relying on variables LYNX_CFG, LYNX_CFG_FILE and WWW_HOME.
Packit f574b8
Packit f574b8
-------------------------------------------------------------------------------
Packit f574b8
Packit f574b8
II. Compile instructions -- UNIX
Packit f574b8
Packit f574b8
1a. Auto-configure.  The auto-configure script uses autoconf2.13 to generate a
Packit f574b8
    Bourne shell script, configure, which creates "makefile" and "lynx_cfg.h".
Packit f574b8
Packit f574b8
    If you are on a UNIX platform, the easiest way to build Lynx is to type:
Packit f574b8
Packit f574b8
	    ./configure
Packit f574b8
    and
Packit f574b8
	    make
Packit f574b8
Packit f574b8
    NOTE:  Configure has a number of useful options.  Please see below.
Packit f574b8
Packit f574b8
    NOTE:  The 'configure' script generates auxiliary files "config.status"
Packit f574b8
    "config.cache" and "config.log".  Normally you will not notice these;
Packit f574b8
    they are created automatically and removed by a "make distclean".
Packit f574b8
Packit f574b8
	+ If you wish to rebuild Lynx with a new host, or change ANY of the
Packit f574b8
	  parameters which are stored in config.cache, you MUST first remove
Packit f574b8
	  the config.cache file before running configure; its options do NOT
Packit f574b8
	  override the settings in that file.
Packit f574b8
Packit f574b8
	+ The config.status file is a script which creates (or regenerates)
Packit f574b8
	  the files created by the configure script.
Packit f574b8
Packit f574b8
    Please report problems in the configure/make process by including a copy
Packit f574b8
    of config.status, config.cache and config.log, as well as the pertinent
Packit f574b8
    compiler diagnostics.
Packit f574b8
Packit f574b8
    See the note in aclocal.m4 for special instructions if you must modify the
Packit f574b8
    configure script.
Packit f574b8
Packit f574b8
    NOTE:  Lynx is a curses-based application, so you must have a curses
Packit f574b8
    library available to link to.  Native curses (on the system when it was
Packit f574b8
    installed) are often broken, so you may get superior performance if you
Packit f574b8
    have either
Packit f574b8
    
Packit f574b8
	    "ncurses" ("ftp://ftp.invisible-island.net/ncurses") or
Packit f574b8
	    "slang"   ("ftp://space.mit.edu/pub/davis/slang").
Packit f574b8
    
Packit f574b8
    If you install these libraries in your home directory or a non-default
Packit f574b8
    location, you may need to set the CPPFLAGS (full path to include files) and
Packit f574b8
    LIBS (full path to library files) environment variables BEFORE running
Packit f574b8
    configure.  See "1d.  Environment".  Use the "--with-screen=ncurses" or
Packit f574b8
    "--with-screen=slang" option.
Packit f574b8
Packit f574b8
    Note that while lynx will build with a variety of versions of curses and
Packit f574b8
    ncurses, some will be less satisfactory.  Versions of ncurses before
Packit f574b8
    1.9.9g will not render color properly.  Some other versions of curses do
Packit f574b8
    not display color at all.  Likewise, lynx may not build with old versions
Packit f574b8
    of slang, e.g., before 0.99-38, because slang's interfaces change
Packit f574b8
    periodically.
Packit f574b8
Packit f574b8
    Note compiler/system specific problems below.  See also:
Packit f574b8
	https://invisible-island.net/ncurses/ncurses.faq.html
Packit f574b8
Packit f574b8
1b. Platforms.  Configure should work properly on any Unix-style system.
Packit f574b8
    It has been tested on the following platforms.
Packit f574b8
Packit f574b8
	AIX 3.2.5 (cc w/ curses)	BeOS 4.5 (gcc w/ ncurses)
Packit f574b8
	CLIX (cc w/ curses & ncurses)	DGUX
Packit f574b8
	Digital Unix 3.2C and 4.0 (gcc & cc w/ curses, ncurses & slang)
Packit f574b8
	FreeBSD 2.1.5, 3.1 (gcc 2.6.3 w/ curses & ncurses)
Packit f574b8
	HP-UX (K&R and ANSI cc, gcc w/ curses, ncurses & slang)
Packit f574b8
	IRIX 5.2 and 6.2 (cc & gcc w/ curses, ncurses & slang)
Packit f574b8
	Linux 2.0.0 (gcc 2.7.2 w/ curses, ncurses & slang)
Packit f574b8
	MkLinux 2.1.5 (gcc 2.7.2.1)	NetBSD
Packit f574b8
	NEXTSTEP 3.3 (gcc 2.7.2.3 w/ curses)
Packit f574b8
	OS/2 EMX 0.9c (ncurses) 	SCO OpenServer (cc w/ curses)
Packit f574b8
	Solaris 2.5, 2.6 & 2.7 (cc & gcc w/ curses, ncurses & slang)
Packit f574b8
	SunOS 4.1 (cc w/ curses, gcc w/ ncurses & slang)
Packit f574b8
	OS390 and BS2000.
Packit f574b8
Packit f574b8
    NOTE:  SunOS and HP-UX come with a bundled K&R compiler, which is only
Packit f574b8
    useful for compiling with the bundled curses.  Both ncurses and slang
Packit f574b8
    require a compiler that recognizes prototypes.
Packit f574b8
Packit f574b8
1c. Options
Packit f574b8
    To get a list of the configure script's options, type "./configure --help".
Packit f574b8
    Below is an alphabetical listing of the Lynx-specific options.  The actual
Packit f574b8
    order shown by the -help option is different.  See "docs/README.defines"
Packit f574b8
    for information on defines for which there are no option switches.
Packit f574b8
Packit f574b8
  --datadir
Packit f574b8
	Defines the location where you want the documentation files installed.
Packit f574b8
	The configure script constructs makefile actions to install lynx.cfg
Packit f574b8
	modified to reflect this in the HELPFILE setting.  (For platforms which
Packit f574b8
	do not support a configure script, such as MS-DOS, Win32 and VMS, you
Packit f574b8
	must edit lynx.cfg).
Packit f574b8
Packit f574b8
  --disable-addrlist-page		(prevent defining USE_ADDRLIST_PAGE)
Packit f574b8
	Turn off code that displays an alternative list-page, bound to 'A'
Packit f574b8
	rather than 'l', which always lists URLs rather than titles.
Packit f574b8
Packit f574b8
  --disable-alt-bindings 		(prevent defining USE_ALT_BINDINGS)
Packit f574b8
	Compiles-in an alternative set of line-edit bindings, in addition
Packit f574b8
	to the default bindings.
Packit f574b8
Packit f574b8
  --disable-bibp-urls			(define DISABLE_BIBP)
Packit f574b8
	Disable (do not compile code) support for bibp: URLs.
Packit f574b8
Packit f574b8
  --disable-color-style			(define USE_COLOR_STYLE)
Packit f574b8
	Use this option to disable optional color style.  This is implemented
Packit f574b8
	for modern curses implementations, e.g., those that support color.
Packit f574b8
Packit f574b8
	Before lynx 2.8.6dev.18, this option was disabled by default.
Packit f574b8
	You can achieve a similar color effect to match the non-color-style
Packit f574b8
	(but still allowing users to use color-style) by using the
Packit f574b8
	--without-lss-file option.
Packit f574b8
Packit f574b8
  --disable-config-info			(define NO_CONFIG_INFO)
Packit f574b8
  	Use this option to disable extended browsable configuration information
Packit f574b8
	(a screen that shows the result of the configuration script, as well
Packit f574b8
	as extended lynx.cfg viewing with a pointer to the lynx.cfg file and
Packit f574b8
	additional functionality).
Packit f574b8
Packit f574b8
  --disable-dired			(prevent defining DIRED_SUPPORT)
Packit f574b8
	Use this option to disable the optional directory-editor.
Packit f574b8
Packit f574b8
	Lynx supports directory editing (DirEd) for local directories.
Packit f574b8
	This allows users to do things like view, copy and remove files
Packit f574b8
	using a tabular display of the directory and single-keystroke
Packit f574b8
	commands instead of using the command line.  From inside Lynx, the
Packit f574b8
	keystroke sequence "g.<enter>" switches Lynx to DirEd mode on the
Packit f574b8
	current directory.  If you're building a Lynx that is to be used as
Packit f574b8
	a kind of restricted shell for users who do not have access to the
Packit f574b8
	command line and should not have access to equivalent capabilities,
Packit f574b8
	you probably want to disable DirEd with this option.  You can also
Packit f574b8
	disable some DirEd functions while allowing others.  If you have
Packit f574b8
	disabled DirEd completely, you can ignore all the more specific
Packit f574b8
	DirEd options.
Packit f574b8
Packit f574b8
	All DirEd menu functions that were enabled on compilation can be
Packit f574b8
	disabled or modified at run time via DIRED_MENU symbols in lynx.cfg.
Packit f574b8
Packit f574b8
  --disable-dired-dearchive		(define ARCHIVE_ONLY)
Packit f574b8
	Use this option to prevent DirEd from extracting files from an
Packit f574b8
	archive file.
Packit f574b8
Packit f574b8
  --disable-dired-gzip			(prevent defining OK_GZIP)
Packit f574b8
	Use this option to prevent DirEd from using gzip and gunzip.
Packit f574b8
Packit f574b8
  --disable-dired-override		(prevent defining OK_OVERRIDE)
Packit f574b8
	Normally, in DirEd directory viewing mode some key mappings are
Packit f574b8
	overridden.  Use this option to disable DirEd keymap overriding.
Packit f574b8
Packit f574b8
  --disable-dired-permit		(prevent defining OK_PERMIT)
Packit f574b8
	Use this option to prevent DirEd from changing the permissions
Packit f574b8
	on directories or files (i.e., from doing what the Unix chmod
Packit f574b8
	command or the DOS attrib command does).
Packit f574b8
Packit f574b8
  --disable-dired-tar			(prevent defining OK_TAR)
Packit f574b8
	Use this option to prevent DirEd from using the tar program.
Packit f574b8
Packit f574b8
  --disable-dired-uudecode		(prevent defining OK_UUDECODE)
Packit f574b8
	Use this option to prevent DirEd from using uudecode.
Packit f574b8
Packit f574b8
  --disable-dired-xpermit		(define NO_CHANGE_EXECUTE_PERMS)
Packit f574b8
	Use this option if you do not disable out the dired-permit
Packit f574b8
	option, but want to restrict changes of the eXecute permission
Packit f574b8
	to directories (i.e., not allow it to be changed for files).  If
Packit f574b8
	you don't do this, you can still block changes of the eXecute
Packit f574b8
	permission for files but not directories via the
Packit f574b8
	"change_exec_perms" command line restriction.
Packit f574b8
Packit f574b8
  --disable-dired-zip			(prevent defining OK_ZIP)
Packit f574b8
	Use this option to prevent DirEd from using zip and unzip.
Packit f574b8
Packit f574b8
  --disable-echo
Packit f574b8
  	Use this option to suppress the "compiling" commands during a build.
Packit f574b8
	Doing this makes it easier to find and read warning messages.
Packit f574b8
Packit f574b8
  --disable-extended-dtd		(define NO_EXTENDED_HTMLDTD)
Packit f574b8
	disable extended HTML DTD logic.  This should revert to old-style
Packit f574b8
	(2.7.1/2.7.2) behavior, but is not well-tested.
Packit f574b8
Packit f574b8
  --disable-file-upload			(define USE_FILE_UPLOAD)
Packit f574b8
	Compile-in support for form-based file-upload.
Packit f574b8
Packit f574b8
  --disable-finger			(define DISABLE_FINGER)
Packit f574b8
	Do not compile-in code used to connect to "finger" URLs.
Packit f574b8
Packit f574b8
  --disable-forms-options		(define NO_OPTION_FORMS)
Packit f574b8
	Disable the Form-based Options Menu (see --disable-menu-options).
Packit f574b8
	The default is to compile key-based & form-based Options Menu code,
Packit f574b8
	allowing users the final choice via FORMS_OPTIONS in lynx.cfg
Packit f574b8
	or the -forms_options command-line switch.
Packit f574b8
Packit f574b8
  --disable-ftp				(define DISABLE_FTP)
Packit f574b8
	Do not compile-in code used to connect to FTP servers.
Packit f574b8
Packit f574b8
  --disable-full-paths
Packit f574b8
  	Use this option to control whether full pathnames are compiled in for
Packit f574b8
	various utilities invoked by lynx as external commands.  By default,
Packit f574b8
	full pathnames are compiled in for the the locations where configure
Packit f574b8
	finds these commands at configure time.  Affected commands are chmod,
Packit f574b8
	compress, cp, gzip, install, mkdir, mv, rm, tar, touch, gunzip, unzip,
Packit f574b8
	bzip2, uudecode, zcat, zip, telnet, tn3270, rlogin.  (Not all of them
Packit f574b8
	are used on all systems or in all configurations.)
Packit f574b8
Packit f574b8
	This option makes Lynx simpler to install, but potentially less secure,
Packit f574b8
	since the commands are then set in the user's $PATH.  All of these
Packit f574b8
	commands may also be overridden individually by setting environment
Packit f574b8
	variables before configuring.  For example, you can disable the telnet
Packit f574b8
	command by doing this:
Packit f574b8
Packit f574b8
		setenv TELNET /bin/false
Packit f574b8
Packit f574b8
  --disable-gopher			(define DISABLE_GOPHER)
Packit f574b8
	Do not compile-in code used to connect to GOPHER servers.
Packit f574b8
Packit f574b8
  --disable-idna
Packit f574b8
	By default, the configure script searches for the GNU idn library,
Packit f574b8
	which lets lynx translated URLs which are in UTF-8 to ASCII.  The
Packit f574b8
	latter is needed for most network accesses.  Use this option to
Packit f574b8
	suppress the feature, e.g., to reduce size.
Packit f574b8
Packit f574b8
  --disable-included-msgs
Packit f574b8
	Do not use included messages, for i18n support.  If NLS support is
Packit f574b8
	requested, the configure script will otherwise use the messages in the
Packit f574b8
	./po subdirectory.
Packit f574b8
Packit f574b8
  --disable-justify-elts		(define USE_JUSTIFY_ELTS)
Packit f574b8
	Do not use element-justification logic.
Packit f574b8
Packit f574b8
  --disable-largefile			(prevent defining LONG_LIST)
Packit f574b8
Packit f574b8
	Use this option to disable the compiler and linker options that
Packit f574b8
	provide largefile interfaces.
Packit f574b8
Packit f574b8
  --disable-locale-charset		(define USE_LOCALE_CHARSET)
Packit f574b8
  	Use nl_langinfo(CODESET) to determine initial value for display
Packit f574b8
	charset, overrides character_set value in .lynxrc file.
Packit f574b8
Packit f574b8
  --disable-long-list			(prevent defining LONG_LIST)
Packit f574b8
	Use this option to disable long "ls -l" directory listings (when
Packit f574b8
	enabled, the actual directory style is configurable from lynx.cfg).
Packit f574b8
Packit f574b8
  --disable-menu-options		(define NO_OPTION_MENU)
Packit f574b8
	Disable the Key-based Options Menu.
Packit f574b8
	See --disable-forms-options (above) for further details.
Packit f574b8
Packit f574b8
  --disable-news			(define DISABLE_NEWS)
Packit f574b8
	Do not compile-in code used to connect to NNTP (netnews) servers.
Packit f574b8
Packit f574b8
  --disable-parent-dir-refs		(define NO_PARENT_DIR_REFERENCE)
Packit f574b8
  	Use this option to disable "Up-to" parent-links in directory listings.
Packit f574b8
Packit f574b8
  --disable-partial			(prevent defining DISP_PARTIAL)
Packit f574b8
	Turn off code that lets Lynx display parts of a long page while loading
Packit f574b8
	it.
Packit f574b8
Packit f574b8
  --disable-persistent-cookies		(prevent defining USE_PERSISTENT_COOKIES)
Packit f574b8
	Turn off support for saving cookies to a file, for subsequent reuse.
Packit f574b8
	Persistent cookie support will use (or create) the file specified by
Packit f574b8
	the 'COOKIE_FILE' option, or default to ".lynx_cookies" in the home
Packit f574b8
	directory.  (Currently there is no protection against conflict if
Packit f574b8
	several lynx sessions are active from the same account).
Packit f574b8
Packit f574b8
  --disable-prettysrc			(define USE_PRETTYSRC)
Packit f574b8
	Turn off support for colorizing the source view of HTML pages.  If
Packit f574b8
	compiled-in, new source view mode is available with -prettysrc command
Packit f574b8
	line option.
Packit f574b8
Packit f574b8
  --disable-progressbar			(define USE_PROGRESSBAR)
Packit f574b8
	Turn off support for a "progress bar" which displays at the bottom
Packit f574b8
	of the screen when doing downloads and other time-consuming (but
Packit f574b8
	interruptible) processes.  This feature can be selected in the
Packit f574b8
	options menu.
Packit f574b8
Packit f574b8
  --disable-read-eta			(define USE_READPROGRESS)
Packit f574b8
	Turn off enhanced read-progress message showing ETA (estimated time to
Packit f574b8
	completion), as well as the amount of time stalled without any data
Packit f574b8
	transferred.
Packit f574b8
Packit f574b8
  --disable-rpath-hack
Packit f574b8
	The rpath-hack makes it simpler to build programs, particularly with
Packit f574b8
	the *BSD ports which may have essential libraries in unusual places.
Packit f574b8
	But it can interfere with building an executable for the base system.
Packit f574b8
	Use this option in that case.
Packit f574b8
Packit f574b8
  --disable-scrollbar			(define USE_SCROLLBAR)
Packit f574b8
	Turn off support for scrollbar on the right-margin of the screen.
Packit f574b8
	If you configure with ncurses, this works with the mouse on xterm,
Packit f574b8
	etc.
Packit f574b8
Packit f574b8
  --disable-session-cache		(define USE_CACHE_JAR)
Packit f574b8
	Turn off support for saving/restoring session information in files.
Packit f574b8
	Configurable from lynx.cfg
Packit f574b8
Packit f574b8
  --disable-sessions			(define USE_SESSIONS)
Packit f574b8
	Turn off support for sessions, which allows the user to automatically
Packit f574b8
	save and restore history information.
Packit f574b8
Packit f574b8
  --disable-source-cache		(define USE_SOURCE_CACHE)
Packit f574b8
	Turn off support for caching HTML pages locally,
Packit f574b8
	in files or in memory.	Configurable from lynx.cfg
Packit f574b8
Packit f574b8
  --disable-trace			(define NO_LYNX_TRACE)
Packit f574b8
	Turn off code that lets you trace internal details of Lynx's operation.
Packit f574b8
	We recommend that you leave this enabled, since we need this
Packit f574b8
	information to diagnose problems with either Lynx or the sites to which
Packit f574b8
	you connect.
Packit f574b8
Packit f574b8
  --enable-ascii-ctypes			(define USE_ASCII_CTYPES)
Packit f574b8
	Compiles-in alternative case-conversion functions which ensure that
Packit f574b8
	configuration names, etc., are compared in POSIX locale.  This is
Packit f574b8
	important for operating in some locale such as Turkish.
Packit f574b8
Packit f574b8
  --enable-cgi-links			(define LYNXCGI_LINKS)
Packit f574b8
	Allows lynx to access a cgi script directly without the need for
Packit f574b8
	a http daemon.
Packit f574b8
Packit f574b8
  --enable-change-exec			(define ENABLE_OPTS_CHANGE_EXEC)
Packit f574b8
  	Allow users to change the execution status within the options screen.
Packit f574b8
	See EXEC_LINKS and EXEC_SCRIPTS.
Packit f574b8
Packit f574b8
  --enable-charset-choice		(define USE_CHARSET_CHOICE)
Packit f574b8
	Add logic for ASSUMED_DOC_CHARSET_CHOICE and DISPLAY_CHARSET_CHOICE in
Packit f574b8
	lynx.cfg, allowing user to configure a subset of the compiled-in
Packit f574b8
	charsets for normal use.
Packit f574b8
Packit f574b8
  --enable-cjk				(define CJK_EX)
Packit f574b8
	Add experimental logic for supporting CJK documents.  (This is not
Packit f574b8
	necessary for CJK support and may go away in a future release.)
Packit f574b8
Packit f574b8
  --enable-debug			(The symbol DEBUG is always defined.)
Packit f574b8
        Use this option to compile-in support for debugging.
Packit f574b8
        Note that this flag is ignored if the CFLAGS environment
Packit f574b8
        variable is set, in that case "-g" (or whatever) has to
Packit f574b8
        be included in the CFLAGS value to get debugging.
Packit f574b8
	Autoconf normally adds -g and -O options to CFLAGS if CFLAGS
Packit f574b8
	was not set, and if the compiler supports those options.
Packit f574b8
Packit f574b8
  --enable-default-colors		(define USE_DEFAULT_COLORS)
Packit f574b8
  	Enable use of default-color background (ncurses/slang).  Either
Packit f574b8
	configuration supports the use of 'default' for colors even without
Packit f574b8
	this option.  That is, 'default' is interpreted as white (foreground)
Packit f574b8
	or black (background) according to the context.  When the default
Packit f574b8
	colors configuration is built, the actual values for foreground and
Packit f574b8
	background colors are determined by the terminal.
Packit f574b8
Packit f574b8
  --enable-exec-links			(define EXEC_LINKS)
Packit f574b8
	Allows lynx to execute programs by accessing a link.
Packit f574b8
Packit f574b8
  --enable-exec-scripts 		(define EXEC_SCRIPTS)
Packit f574b8
	Allows lynx to execute programs inferred from a link.
Packit f574b8
Packit f574b8
  --enable-externs			(define USE_EXTERNALS)
Packit f574b8
	Use this option to enable external application support. (See lynx.cfg.)
Packit f574b8
Packit f574b8
  --enable-find-leaks			(define LY_FIND_LEAKS)
Packit f574b8
	Use this option to compile-in logic for testing memory leaks.
Packit f574b8
Packit f574b8
  --enable-font-switch			(define EXP_CHARTRANS_AUTOSWITCH)
Packit f574b8
	Allow Lynx to automatically change the Linux console state (switch
Packit f574b8
	fonts) according to the current Display Character Set.  (Linux console
Packit f574b8
	only.  *Use with discretion.*  See docs/README.chartrans.)
Packit f574b8
Packit f574b8
  --enable-gnutls-compat		(define USE_GNUTLS_FUNCS)
Packit f574b8
	When --with-gnutls is used, tell whether to use GNUTLS's OpenSSL
Packit f574b8
	compatibility library or use GNUTLS's low-level API directly.
Packit f574b8
Packit f574b8
  --enable-gzip-help
Packit f574b8
	Install the lynx help files in gzip'd format [*.gz] to save space.
Packit f574b8
Packit f574b8
  --enable-htmlized-cfg
Packit f574b8
	generate an HTMLized copy of lynx.cfg which will be installed with
Packit f574b8
	the other help files.
Packit f574b8
Packit f574b8
  --enable-internal-links		(define TRACK_INTERNAL_LINKS)
Packit f574b8
        With `internal links' (links within a document to a location within
Packit f574b8
        the same document) enabled, Lynx will distinguish between, for example,
Packit f574b8
        `' and `' within a document whose
Packit f574b8
        URL is `foo'.  It may handle such links differently, although practical
Packit f574b8
        differences would appear only if the document containing them resulted
Packit f574b8
        from a POST request or had a no-cache flag set.  This feature attempts
Packit f574b8
        to interpret URL-references as suggested by RFC 2396, and to prevent
Packit f574b8
        mistaken resubmissions of form content with the POST method.  An
Packit f574b8
        alternate opinion asserts that the feature could actually result in
Packit f574b8
        inappropriate resubmission of form content.
Packit f574b8
Packit f574b8
  --enable-ipv6         		(define ENABLE_IPV6)
Packit f574b8
	use IPV6 (with IPV4) logic.
Packit f574b8
Packit f574b8
  --enable-japanese-utf8		(define EXP_JAPANESEUTF8_SUPPORT)
Packit f574b8
	use experimental Japanese UTF-8 logic.
Packit f574b8
Packit f574b8
  --enable-kbd-layout			(define EXP_KEYBOARD_LAYOUT)
Packit f574b8
	Disabled by default, this option allows you to use translation
Packit f574b8
	tables on the input keystrokes.  Current tables include
Packit f574b8
		ROT13'd keyboard layout
Packit f574b8
		JCUKEN Cyrillic, for AT 101-key kbd
Packit f574b8
		YAWERTY Cyrillic, for DEC LK201 kbd
Packit f574b8
Packit f574b8
  --enable-local-docs
Packit f574b8
	On install, modify link from help-page to point to the local
Packit f574b8
	doc-directory, e.g., with README files.  Normally this points
Packit f574b8
	to the current release directory.
Packit f574b8
Packit f574b8
  --enable-nested-tables		(define EXP_NESTED_TABLES)
Packit f574b8
	Extends TRST to format nested tables, as well as be smarter about
Packit f574b8
	
and

tags in table cells.

Packit f574b8
Packit f574b8
  --enable-nls				(several definitions)
Packit f574b8
	use Native Language Support (i.e., gettext).
Packit f574b8
Packit f574b8
	This relies upon external programs (msgfmt and xgettext) to format
Packit f574b8
	the message catalogs:
Packit f574b8
	
Packit f574b8
	    + Unless you set the environment variables MSGFMT and XGETTEXT to
Packit f574b8
	      the full pathnames of these utilities, the configure script will
Packit f574b8
	      search for the GNU versions of these utilities.
Packit f574b8
	      
Packit f574b8
	      It will also search for the GNU version of the corresponding
Packit f574b8
	      gettext() runtime function.  On some platforms (such as Solaris),
Packit f574b8
	      this search gives misleading results.
Packit f574b8
Packit f574b8
	    + If you set those environment variables to full pathnames, the
Packit f574b8
	      configure script will warn if they are not the GNU versions of
Packit f574b8
	      the utilities.
Packit f574b8
Packit f574b8
  --enable-nsl-fork			(define NSL_FORK)
Packit f574b8
	Disabled by default, this allows interruption of NSL requests,
Packit f574b8
	so that `z' will stop the `look-up' phase of a connection.
Packit f574b8
Packit f574b8
  --enable-syslog			(define SYSLOG_REQUESTED_URLS)
Packit f574b8
	Use this option to log NSL requests via syslog().
Packit f574b8
Packit f574b8
  --enable-underlines			(define UNDERLINE_LINKS)
Packit f574b8
	Use this option to underline links rather than using boldface.
Packit f574b8
Packit f574b8
  --enable-vertrace			(define LY_TRACELINE)
Packit f574b8
	Turn on code that prefixes trace output lines with source filename
Packit f574b8
	and line number.
Packit f574b8
Packit f574b8
  --enable-warnings
Packit f574b8
	Use this option to turn on GCC compiler warnings.
Packit f574b8
Packit f574b8
  --enable-wais
Packit f574b8
	Use this option to turn on configure check for freeWAIS library.
Packit f574b8
Packit f574b8
  --enable-widec
Packit f574b8
	Use this option to allow the configure script to look for wide-curses
Packit f574b8
	features.  If you do not specify the option, the configure script
Packit f574b8
	will look for these features if --with-screen=ncursesw is given.
Packit f574b8
	For this release of Lynx, we recommend the ncursew library built from
Packit f574b8
	ncurses 5.5.
Packit f574b8
Packit f574b8
  --sysconfdir				(affect LYNX_CFG_FILE)
Packit f574b8
	Defines the location where you want the lynx.cfg file installed.
Packit f574b8
	The configure script defines the symbol LYNX_CFG_FILE to correspond
Packit f574b8
	with the $sysconfdir environment variable.  (For platforms which do not
Packit f574b8
	support a configure script, such as MS-DOS, Win32 and VMS, you must
Packit f574b8
	edit userdefs.h if you wish to specify the location of lynx.cfg).
Packit f574b8
Packit f574b8
  --with-Xaw3d
Packit f574b8
	This option allows you to specify the X libraries used if you
Packit f574b8
	are configuring lynx to use PDCurses on a Unix platform.
Packit f574b8
Packit f574b8
  --with-XawPlus
Packit f574b8
	This option allows you to specify the X libraries used if you
Packit f574b8
	are configuring lynx to use PDCurses on a Unix platform.
Packit f574b8
Packit f574b8
  --with-build-cc=XXX
Packit f574b8
	If cross-compiling, specify a host C compiler, which is needed to
Packit f574b8
	compile a utility which generates tables for lynx.
Packit f574b8
	If you do not give this option, the configure script checks if the
Packit f574b8
	$BUILD_CC variable is set, and otherwise defaults to gcc or cc.
Packit f574b8
Packit f574b8
  --with-build-cpp=XXX
Packit f574b8
	This is unused by lynx.
Packit f574b8
Packit f574b8
  --with-build-cflags=XXX
Packit f574b8
	If cross-compiling, specify the host C compiler-flags.  You might need
Packit f574b8
	to do this if the target compiler has unusual flags which confuse the
Packit f574b8
	host compiler.
Packit f574b8
Packit f574b8
  --with-build-cppflags=XXX
Packit f574b8
	If cross-compiling, specify the host C preprocessor-flags.  You might
Packit f574b8
	need to do this if the target compiler has unusual flags which confuse
Packit f574b8
	the host compiler.
Packit f574b8
Packit f574b8
  --with-build-ldflags=XXX
Packit f574b8
	If cross-compiling, specify the host linker-flags.  You might need to
Packit f574b8
	do this if the target linker has unusual flags which confuse the host
Packit f574b8
	compiler.
Packit f574b8
Packit f574b8
  --with-build-libs=XXX
Packit f574b8
	If cross-compiling, the host libraries.  You might need to do this if
Packit f574b8
	the target environment requires unusual libraries.
Packit f574b8
Packit f574b8
  --with-bzlib[=XXX]			(define USE_BZLIB)
Packit f574b8
	Use libbz2 for decompression of some bzip2 files.
Packit f574b8
Packit f574b8
	The optional value XXX specifies the directory in which the library
Packit f574b8
	can be found, and may be either the path of the "lib" directory,
Packit f574b8
	or one level above.  In either case, the corresponding header files
Packit f574b8
	are assumed to be in the parallel "include" directory.
Packit f574b8
Packit f574b8
  --with-charsets=list			(define ALL_CHARSETS)
Packit f574b8
 	Limit the number of charsets that are compiled-in to the specified
Packit f574b8
	list of comma-separated MIME names.
Packit f574b8
Packit f574b8
  --with-cfg-file			(define LYNX_CFG_FILE)
Packit f574b8
	Specify the default configuration file's name.  Use --without-cfg-file
Packit f574b8
	to force the user to specify the configuration file on the command
Packit f574b8
	line.  The filename can be overridden by using the LYNX_CFG environment
Packit f574b8
	variable.
Packit f574b8
Packit f574b8
  --with-cfg-path			(define LYNX_CFG_PATH)
Packit f574b8
	Specify the default configuration file(s) directory search-list.  Use
Packit f574b8
	--without-cfg-path to limit this to the location of the lynx.cfg file.
Packit f574b8
	The search-list can be overridden using the LYNX_CFG_PATH environment
Packit f574b8
	variable.
Packit f574b8
Packit f574b8
  --with-curses-dir
Packit f574b8
	Specify directory under which curses/ncurses is installed.  This
Packit f574b8
	assumes a standard install, e.g., with an include and lib subdirectory.
Packit f574b8
Packit f574b8
  --with-dbmalloc
Packit f574b8
	use Conor Cahill's dbmalloc library
Packit f574b8
Packit f574b8
  --with-destdir=XXX
Packit f574b8
	set DESTDIR variable in makefiles.  This is prefixed to all directories
Packit f574b8
	in the actual install, but is not really part of the compiled-in or
Packit f574b8
	configured directory names.  It is convenient for packaging the
Packit f574b8
	installed files.  If you do not provide the option, the configure
Packit f574b8
	script uses your $DESTDIR environment variable.
Packit f574b8
Packit f574b8
  --with-dmalloc
Packit f574b8
	use Gray Watson's dmalloc library
Packit f574b8
Packit f574b8
  --with-gnutls[=XXX]			(define USE_SSL, USE_GNUTLS_INCL)
Packit f574b8
	Use this option to configure with the GNU TLS library.
Packit f574b8
	See docs/README.ssl for additional information.
Packit f574b8
Packit f574b8
	The optional value XXX specifies the directory in which the library
Packit f574b8
	can be found, and may be either the path of the "lib" directory,
Packit f574b8
	or one level above.  In either case, the corresponding header files
Packit f574b8
	are assumed to be in the parallel "include" directory.  The default
Packit f574b8
	is /usr/local/gnutls.
Packit f574b8
Packit f574b8
	See the "--enable-gnutls-compat" option.
Packit f574b8
Packit f574b8
  --with-included-gettext
Packit f574b8
	not supported in this package.  The configure script uses macros which
Packit f574b8
	are bundled together with more useful features.
Packit f574b8
Packit f574b8
	See the "--enable-nls" option.
Packit f574b8
Packit f574b8
  --with-libiconv-prefix=DIR
Packit f574b8
	search for libiconv in DIR/include and DIR/lib
Packit f574b8
Packit f574b8
  --with-lss-file{=path}		(define LYNX_LSS_FILE)
Packit f574b8
	Specify the default style-sheet file's name.  Use --without-lss-file
Packit f574b8
	to make the default behavior match the non-color-style (if no --lss
Packit f574b8
	option is given, and no COLOR_STYLE setting is in lynx.cfg).
Packit f574b8
Packit f574b8
  --with-mime-libdir=list		(define MIME_LIBDIR)
Packit f574b8
	Use this option to specify the system directory containing the
Packit f574b8
	mime.types and mailcap files.
Packit f574b8
Packit f574b8
  --with-neXtaw
Packit f574b8
	This option allows you to specify the X libraries used if you
Packit f574b8
	are configuring lynx to use PDCurses on a Unix platform.
Packit f574b8
Packit f574b8
  --with-nls-datadir=DIR
Packit f574b8
	Use this option to override the configure script's NLS data directory,
Packit f574b8
	under which the locale (i.e., language) files are installed.  The
Packit f574b8
	default value is derived at configure time, and depends on whether GNU
Packit f574b8
	or native gettext is used.
Packit f574b8
Packit f574b8
  --with-nss-compat[=XXX]		(define USE_NSS_COMPAT_INCL)
Packit f574b8
	Use this option to configure with the NSS library's OpenSSL-compatible
Packit f574b8
	interface.
Packit f574b8
	See docs/README.ssl for additional information.
Packit f574b8
Packit f574b8
	The optional value XXX specifies the directory in which the library
Packit f574b8
	can be found, and may be either the path of the "lib" directory,
Packit f574b8
	or one level above.  In either case, the corresponding header files
Packit f574b8
	are assumed to be in the parallel "include" directory.
Packit f574b8
Packit f574b8
  --with-pkg-config[=XXX]
Packit f574b8
	Use pkg-config, if available, to tell how to build with certain
Packit f574b8
	libraries, e.g., openssl and gnutls.  If pkg-config is not used,
Packit f574b8
	or if those libraries are not known to pkg-config, then the configure
Packit f574b8
	script will search for the libraries as described in the --with-ssl
Packit f574b8
	and --with-gnutls options.
Packit f574b8
Packit f574b8
	The optional value XXX specifies the pathname for pkg-config, e.g.,
Packit f574b8
	"/usr/local/bin/pkg-config".
Packit f574b8
Packit f574b8
	Note: The pkg-config program is used only if no explicit directory
Packit f574b8
	parameter is provided for the --with-ssl or --with-gnutls options.
Packit f574b8
Packit f574b8
  --with-screen=XXX
Packit f574b8
	Use this option to select the screen type.  The option value, XXX
Packit f574b8
	must be one of curses (the default), ncurses, ncursesw, pdcurses or
Packit f574b8
	slang.  Specifying a screen type causes the configure script to
Packit f574b8
	look in standard locations for the associated header and library
Packit f574b8
	files, unless you have preset the $CFLAGS and $LIBS variables.
Packit f574b8
Packit f574b8
	--with-screen=ncursesw		(define NCURSES, WIDEC_CURSES)
Packit f574b8
	--with-screen=ncurses		(define NCURSES)
Packit f574b8
	--with-screen=pdcurses		(define PDCURSES)
Packit f574b8
	--with-screen=slang		(define USE_SLANG)
Packit f574b8
Packit f574b8
	Note that some systems may have a default curses library which
Packit f574b8
	does not support color, while on others, ncurses is installed as
Packit f574b8
	the curses library.  The variant ncursesw is the wide-character
Packit f574b8
	version of ncurses.  See also the --enable-widec option.
Packit f574b8
Packit f574b8
	For the ncurses/ncursesw options, the script also accepts variants
Packit f574b8
	such as "ncursesw6", which helps it to find a specific ncurses config
Packit f574b8
	script.
Packit f574b8
Packit f574b8
	The pdcurses selection supported by the configure script is a UNIX-only
Packit f574b8
	library which uses X11.  If you are configuring with DJGPP, the likely
Packit f574b8
	choice is "curses", since that is how PDCurses is normally installed.
Packit f574b8
Packit f574b8
  --with-socks[=XXX]			(define SOCKS)
Packit f574b8
	Use this option to configure with the socks library.
Packit f574b8
Packit f574b8
	The optional value XXX specifies the directory in which the library
Packit f574b8
	can be found, and may be either the path of the "lib" directory,
Packit f574b8
	or one level above.  In either case, the corresponding header files
Packit f574b8
	are assumed to be in the parallel "include" directory.
Packit f574b8
Packit f574b8
  --with-socks5[=XXX]			(define USE_SOCKS5, SOCKS)
Packit f574b8
	Use this option to configure with the socks5 library.
Packit f574b8
Packit f574b8
	The optional value XXX specifies the directory in which the library
Packit f574b8
	can be found, and may be either the path of the "lib" directory,
Packit f574b8
	or one level above.  In either case, the corresponding header files
Packit f574b8
	are assumed to be in the parallel "include" directory.
Packit f574b8
Packit f574b8
	If you make a SOCKSified lynx, you may have trouble accessing FTP
Packit f574b8
	servers.  Also, instead of SOCKSifying lynx for use behind a firewall,
Packit f574b8
	you are better off if you make it normally, and set it up to use a
Packit f574b8
	proxy server.  You can SOCKSify the proxy server, and it will handle
Packit f574b8
	all clients, not just Lynx.  If you do SOCKSify lynx, you can turn off
Packit f574b8
	SOCKS proxy usage via a -nosocks command line switch.
Packit f574b8
Packit f574b8
  --with-ssl[=XXX]			(define USE_SSL)
Packit f574b8
	Use this option to configure with the OpenSSL library, or SSLeay.
Packit f574b8
	See docs/README.ssl for additional information.
Packit f574b8
Packit f574b8
	The optional value XXX specifies the directory in which the library
Packit f574b8
	can be found, and may be either the path of the "lib" directory,
Packit f574b8
	or one level above.  In either case, the corresponding header files
Packit f574b8
	are assumed to be in the parallel "include" directory.
Packit f574b8
Packit f574b8
  --with-system-type=XXX
Packit f574b8
	For testing, override the derived host system-type which is used to
Packit f574b8
	decide things such as special compiler options.  This is normally
Packit f574b8
	chosen automatically based on the type of system which you are
Packit f574b8
	building on.  We use it for testing the configure script.
Packit f574b8
Packit f574b8
  --with-textdomain[=XXX]		(define NLS_TEXTDOMAIN)
Packit f574b8
	Set the NLS textdomain to the given value.  This is normally "lynx".
Packit f574b8
Packit f574b8
  --with-zlib[=XXX]			(define USE_ZLIB)
Packit f574b8
	Use zlib for decompression of some gzip files.
Packit f574b8
Packit f574b8
	The optional value XXX specifies the directory in which the library
Packit f574b8
	can be found, and may be either the path of the "lib" directory,
Packit f574b8
	or one level above.  In either case, the corresponding header files
Packit f574b8
	are assumed to be in the parallel "include" directory.
Packit f574b8
Packit f574b8
1d. Environment variables
Packit f574b8
    The configure script looks for programs and libraries in known/standard
Packit f574b8
    locations.  You can override the behavior of the script by presetting
Packit f574b8
    environment variables.  If they are set, the script will try to use these
Packit f574b8
    values rather than computing new ones.  Useful variables include:
Packit f574b8
Packit f574b8
	CC - the C compiler.  If you do not override this, configure
Packit f574b8
		will try to use gcc. For instance, setting CC=cc and
Packit f574b8
		exporting this value will cause configure to use cc instead.
Packit f574b8
Packit f574b8
	CFLAGS - the C compiler options.  These also include C
Packit f574b8
		preprocessor options (such as -I), since the $CFLAGS and
Packit f574b8
		$CPPFLAGS variables are maintained separately.
Packit f574b8
Packit f574b8
	CPPFLAGS - the C preprocessor options.  For some configuration
Packit f574b8
		tests, you may need to set both $CFLAGS and $CPPFLAGS if
Packit f574b8
		you are compiling against header files in nonstandard
Packit f574b8
		locations.
Packit f574b8
Packit f574b8
	LDFLAGS - linker/loader options.
Packit f574b8
Packit f574b8
	LIBS - the libraries to be linked, with -L and -l options.  If
Packit f574b8
		you are linking against libraries in nonstandard locations
Packit f574b8
		unrelated to the install prefix (that you can specify in
Packit f574b8
		the configure script) you may have to specify these via
Packit f574b8
		the $LIBS variable.
Packit f574b8
Packit f574b8
    Lynx has compiled-in the pathnames of various programs which it executes.
Packit f574b8
    Normally the full pathnames are given, rather than the program name
Packit f574b8
    alone.  These may be preset in the environment by the capitalized version,
Packit f574b8
    e.g., INSTALL for "install".  The corresponding internal definitions
Packit f574b8
    are suffixed "_PATH", e.g., "INSTALL_PATH".
Packit f574b8
Packit f574b8
Packit f574b8
-- 1997/7/27 - T. Dickey <dickey@clark.net>
Packit f574b8
Packit f574b8
1e. Examples
Packit f574b8
    If you are compiling Lynx for your personal use and are restricted to your
Packit f574b8
    home directory, a simple method for building would be to choose some
Packit f574b8
    directory, say ".lynx", and then type:
Packit f574b8
Packit f574b8
	./configure --prefix=~/.lynx --exec-prefix=~/.lynx
Packit f574b8
    and
Packit f574b8
	make install
Packit f574b8
Packit f574b8
    Now you only need to add "~/.lynx/bin" to your PATH and edit "~/.lynx/lib/
Packit f574b8
    lynx.cfg" as described above.
Packit f574b8
Packit f574b8
    I personally use the following csh shell script to set environment
Packit f574b8
    variables and configure options rather than type them each time.
Packit f574b8
	#!/bin/csh -f
Packit f574b8
	setenv CPPFLAGS "-I$HOME/slang -I$HOME/.usr/include"
Packit f574b8
	setenv LIBS "-L$HOME/.slang/lib -L$HOME/.usr/lib"
Packit f574b8
	./configure --exec-prefix=$HOME --bindir=$HOME/.lynx \
Packit f574b8
		--mandir=$HOME/.usr/man --sysconfdir=$HOME/.usr/lib \
Packit f574b8
		--with-screen=slang --with-zlib
Packit f574b8
Packit f574b8
    CPPFLAGS in this example defines the full path to the slang and zlib
Packit f574b8
    header files, which are not kept in standard directories.  Likewise, LIBS
Packit f574b8
    defines the nonstandard locations of libslang.a and libz.a.  Setting the
Packit f574b8
    option --bindir tells the configure script where I want to install the
Packit f574b8
    lynx binary; setting --mandir tells it where to put the lynx.1 man page,
Packit f574b8
    and setting --sysconfdir tells it (while at the same time defining
Packit f574b8
    LYNX_CFG_FILE) where to put the configuration file "lynx.cfg", when I type
Packit f574b8
    "make install".  The --with-screen=slang and --with-zlib options are
Packit f574b8
    explained above.
Packit f574b8
Packit f574b8
2. Wais support (optional)
Packit f574b8
    To add direct WAIS support, get the freeWAIS distribution from
Packit f574b8
    "ftp://ftp.cnidr.org/pub/NIDR.tools/freewais", and compile it.  The
Packit f574b8
    compile process will create the libraries you will need, wais.a and
Packit f574b8
    client.a.  Edit the Makefile in the top level directory and add the
Packit f574b8
    library locations under the DIRECT WAIS ACCESS heading.  Edit the Makefile
Packit f574b8
    for the WWW Library in "WWW/Library/Implementation/makefile" to point to
Packit f574b8
    the include directory for the freewais distribution.  Precompiled
Packit f574b8
    libraries are available for many platforms if you don't wish to compile
Packit f574b8
    one yourself.
Packit f574b8
Packit f574b8
-------------------------------------------------------------------------------
Packit f574b8
Packit f574b8
III. Compile instructions -- VMS
Packit f574b8
Packit f574b8
Step 1.  Downloading binary files.
Packit f574b8
    Lynx must handle all IO as streams, and on VMS, output files are always
Packit f574b8
    created with Stream_LF format via the C RTL's fopen().  The file headers
Packit f574b8
    indicate Implied Carriage Control, even when the transfer was in binary
Packit f574b8
    mode, which can confuse downloading software and cause corruption of
Packit f574b8
    the file contents.  To deal with this, you should define the symbol
Packit f574b8
    USE_FIXED_RECORDS as TRUE in userdefs.h and/or lynx.cfg.  This will
Packit f574b8
    instruct Lynx to correct the header information to indicate FIXED 512
Packit f574b8
    records, with No Implied Carriage Control.  If Lynx fails to do the
Packit f574b8
    conversion (because the file wasn't mapped to a binary MIME type) you can
Packit f574b8
    execute FIXED512.COM externally to correct the header information.  The
Packit f574b8
    command file uses Joe Meadow's FILE utility, or the SET FILE/ATTRIBUTES
Packit f574b8
    command on current versions of VMS, to modify the headers.  See the
Packit f574b8
    comments in FIXED512.COM, userdefs.h and lynx.cfg for more information.
Packit f574b8
Packit f574b8
Step 2.  Passive FTP
Packit f574b8
    If your system requires the PASV FTP code instead of the standard PORT FTP
Packit f574b8
    code (e.g., to deal with a firewall) then set the FTP_PASSIVE option in
Packit f574b8
    lynx.cfg
Packit f574b8
Packit f574b8
Step 3a.
Packit f574b8
    Lynx uses the VMS port of gzip for uncompressing streams which have
Packit f574b8
    Content-Encoding headers indicated compression with gzip or the
Packit f574b8
    Unix compress.  If you do not have gzip installed on your system
Packit f574b8
    you can get it from "ftp://ftp.wku.edu/" in the fileserv directory.
Packit f574b8
    The command Lynx uses to uncompress on VMS is "gzip -d".
Packit f574b8
Packit f574b8
    If you are using the SOCKETSHR library, read SOCKETSHR.announce and
Packit f574b8
    make sure you have defined SOCKETSHR and SOCKETSHR_LIBRARY as explained
Packit f574b8
    therein.
Packit f574b8
Packit f574b8
    A "build.com" and "build-slang.com" script for building Lynx with curses
Packit f574b8
    or slang is in the top level directory.  All you have to do is type
Packit f574b8
    "@build" or "@build-slang" and answer its prompt for your system's TCP-IP
Packit f574b8
    software.  Current choices are:
Packit f574b8
	   MULTINET (default)
Packit f574b8
	   UCX
Packit f574b8
	   WIN_TCP
Packit f574b8
	   CMU_TCP
Packit f574b8
	   SOCKETSHR_TCP
Packit f574b8
	   TCPWARE
Packit f574b8
    It will autosense whether you have VAXC, DECC or GNUC on VAX or AXP and
Packit f574b8
    build appropriately.  If a WWWLib already exists for that TCP-IP software,
Packit f574b8
    it will prompt you for whether you want to rebuild it.  If you want to
Packit f574b8
    build a WWWLib separately, you can type "@libmake.com" with your default
Packit f574b8
    directory set to [.WWW.Library.vms] instead doing it via "build.com" in
Packit f574b8
    the top directory.  You may need to modify "build-slang.com", as described
Packit f574b8
    in its header, so that it can find slang.olb on your system.  If you have
Packit f574b8
    both DECC and VAXC, it will use DECC to benefit from the newer and more
Packit f574b8
    efficient memory management functions.
Packit f574b8
Packit f574b8
Step 3b.  (optional compilation method)
Packit f574b8
    If you have and want to use MMS, read the header of descrip.mms in the
Packit f574b8
    top directory and be sure you include the appropriate macro definitions
Packit f574b8
    when you invoke it:
Packit f574b8
Packit f574b8
	$ MMS /Macro = (MULTINET=1)		for VAXC - MultiNet
Packit f574b8
	$ MMS /Macro = (WIN_TCP=1)		for VAXC - Wollongong TCP/IP
Packit f574b8
	$ MMS /Macro = (UCX=1)			for VAXC - UCX
Packit f574b8
	$ MMS /Macro = (CMU_TCP=1)		for VAXC - OpenCMU TCP/IP
Packit f574b8
	$ MMS /Macro = (SOCKETSHR_TCP=1)	for VAXC - SOCKETSHR/NETLIB
Packit f574b8
	$ MMS /Macro = (TCPWARE=1)		for VAXC - TCPWare TCP/IP
Packit f574b8
Packit f574b8
	$ MMS /Macro = (MULTINET=1, DEC_C=1)	for DECC - MultiNet
Packit f574b8
	$ MMS /Macro = (WIN_TCP=1, DEC_C=1)	for DECC - Wollongong TCP/IP
Packit f574b8
	$ MMS /Macro = (UCX=1, DEC_C=1)		for DECC - UCX
Packit f574b8
	$ MMS /Macro = (CMU_TCP=1, DEC_C=1)	for DECC - OpenCMU TCP/IP
Packit f574b8
	$ MMS /Macro = (SOCKETSHR_TCP=1,DEC_C=1) for DECC - SOCKETSHR/NETLIB
Packit f574b8
	$ MMS /Macro = (TCPWARE=1, DEC_C=1)	for DECC - TCPWare TCP/IP
Packit f574b8
Packit f574b8
	$ MMS /Macro = (MULTINET=1, GNU_C=1)	for GNUC - MultiNet
Packit f574b8
	$ MMS /Macro = (WIN_TCP=1, GNU_C=1)	for GNUC - Wollongong TCP/IP
Packit f574b8
	$ MMS /Macro = (UCX=1, GNU_C=1)		for GNUC - UCX
Packit f574b8
	$ MMS /Macro = (CMU_TCP=1, GNU_C=1)	for GNUC - OpenCMU TCP/IP
Packit f574b8
	$ MMS /Macro = (SOCKETSHR_TCP=1,GNU_C=1) for GNUC - SOCKETSHR/NETLIB
Packit f574b8
	$ MMS /Macro = (TCPWARE=1, GNU_C=1)	for GNUC - TCPWare TCP/IP
Packit f574b8
Packit f574b8
    If you just type "MMS" it will default to the MULTINET and VAXC
Packit f574b8
    configuration.  MMS will build the WWW library and Lynx sources, and
Packit f574b8
    link the executable.  However, not all of the header dependencies are
Packit f574b8
    specified.  If you are not a developer, and need a clean build, you
Packit f574b8
    should use build.com instead of the MMS utility.
Packit f574b8
Packit f574b8
    If you want SOCKS support on VMS, you must add SOCKS as a compilation
Packit f574b8
    definition, and the SOCKS library to the link command.  However, instead
Packit f574b8
    of SOCKSifying Lynx for use behind a firewall, you are better off if you
Packit f574b8
    build Lynx normally, and set up Lynx to use a proxy server (see below).
Packit f574b8
    You instead can SOCKSify the proxy server, and it will handle all clients,
Packit f574b8
    not just Lynx.
Packit f574b8
Packit f574b8
-------------------------------------------------------------------------------
Packit f574b8
Packit f574b8
IV. Compile instructions -- Win32 (Windows95/98/NT)
Packit f574b8
Packit f574b8
Borland C:
Packit f574b8
---------
Packit f574b8
Packit f574b8
Simplified:
Packit f574b8
----------
Packit f574b8
Packit f574b8
Sources:
Packit f574b8
    Download the current sources (choose a zip-file) from
Packit f574b8
	https://lynx.invisible-island.net/
Packit f574b8
    and unzip them into a directory where you will build Lynx.
Packit f574b8
Packit f574b8
Compiler:
Packit f574b8
    Download the Borland C/C++ 5.51 compiler from
Packit f574b8
	http://forms.embarcadero.com/forms/BCC32CompilerDownload
Packit f574b8
Packit f574b8
    This is a file named "freecompilertools.exe".
Packit f574b8
Packit f574b8
    Run that to install the compiler, e.g., in
Packit f574b8
	c:\app\bcc55
Packit f574b8
Packit f574b8
    Do not install into a directory with spaces in its name, such as
Packit f574b8
	c:\program files
Packit f574b8
Packit f574b8
Libraries:
Packit f574b8
    Download these "setup" files from http://gnuwin32.sourceforge.net
Packit f574b8
	libiconv-1.9.2-1.exe (libiconv)
Packit f574b8
	libintl-0.14.4.exe (libintl)
Packit f574b8
	openssl-0.9.8h-1-setup.exe (openssl)
Packit f574b8
	pdcurses-2.6.exe (pdcurses)
Packit f574b8
	zlib-1.2.3.exe (zlib)
Packit f574b8
Packit f574b8
    Install all of the packages in the same directory, "c:\app\GnuWin32".
Packit f574b8
Packit f574b8
    A fix is needed in GnuWin32 include/zconf.h: change line reading
Packit f574b8
    	#if 1	/* HAVE_UNISTD_H -- this line is updated by ./configure */
Packit f574b8
    to
Packit f574b8
    	#ifdef HAVE_UNISTD_H
Packit f574b8
Packit f574b8
    Prepare import-libraries using Borland's implib program.  The ".lib"
Packit f574b8
    files that it uses are a different format than the import libraries
Packit f574b8
    distributed with GnuWin2.  From Lynx's source directory run
Packit f574b8
        bcblibs
Packit f574b8
Packit f574b8
Environment:
Packit f574b8
    At this point, the bin-directory for the compiler and for the GnuWin32
Packit f574b8
    libraries should be in your path.
Packit f574b8
Packit f574b8
Building:
Packit f574b8
    From Lynx's source directory
Packit f574b8
	cd src\chrtrans
Packit f574b8
	makew32 clean
Packit f574b8
	makew32
Packit f574b8
	cd ..\..
Packit f574b8
	makew32 clean
Packit f574b8
	makew32
Packit f574b8
Packit f574b8
-------------------------------------------------------------------------------
Packit f574b8
Packit f574b8
Detailed:
Packit f574b8
--------
Packit f574b8
    The original Win32 port was built with Borland C++ 4.52, but later
Packit f574b8
    versions reportedly can be used.  Before compiling the Lynx sources, you
Packit f574b8
    need a curses library, and it is recommended that you have the zlib
Packit f574b8
    library.  Get pdcurses2.3 from "http://pdcurses.sourceforge.net/".  I
Packit f574b8
    have modified it so that mouse support is no longer broken for Lynx (see
Packit f574b8
    "http://www.fdisk.com/doslynx/").  You will want to get zlib from
Packit f574b8
    "http://www.zlib.net/ ".  Compile these libraries, and
Packit f574b8
    put them in a convenient place (pdcurses inside the Lynx directory).
Packit f574b8
Packit f574b8
    Unpack the latest Lynx source distribution, and make an obj directory
Packit f574b8
    under the source root to contain the compile output.  Copy in your
Packit f574b8
    IDE file.  A sample IDE file and helper libraries are available at
Packit f574b8
    "http://www.fdisk.com/doslynx/wlynx/source/".
Packit f574b8
Packit f574b8
    First build the .h files in src\chrtrans using "makew32.bat".  Double
Packit f574b8
    check for new .tbl files; hand edit in any new ones, and then do "makew32".
Packit f574b8
    Jump into Borland C++, load the project (IDE file) and compile Lynx.
Packit f574b8
    Alternately, after compiling the chartrans tables, you can come back to
Packit f574b8
    the top directory and compile manually, i.e., do "make -f makefile.bcb".
Packit f574b8
Packit f574b8
    I also have a binary available at "http://www.fdisk.com/doslynx/".  This
Packit f574b8
    binary was compiled with pdcurses 2.3, hacked so win32 mouse support works,
Packit f574b8
    and with zlib, so Lynx can do gzip routines internally.  More hints and
Packit f574b8
    information can be found in "http://www.fdisk.com/doslynx/lynxport.htm".
Packit f574b8
Packit f574b8
-- 1997/10/12 - W. Buttles <lynx-port@fdisk.com>
Packit f574b8
-- 2010/11/27 - URL's updated by Doug Kaufman <dkaufman@rahul.net>
Packit f574b8
Packit f574b8
-------------------------------------------------------------------------------
Packit f574b8
Packit f574b8
Cygwin:
Packit f574b8
    It is possible to compile under the cygwin system, which will allow you to
Packit f574b8
    use the configure script described above for Unix.  Type, for example,
Packit f574b8
    "./configure --with-screen=ncurses --with-libz" in a Dos window running the
Packit f574b8
    cygwin bash$ shell.  You also have the choice of using either pdcurses or
Packit f574b8
    slang.  You will need a launch program such as sh.exe to call helper
Packit f574b8
    applications.  Paths may need to be in cygwin style, rather than Windows
Packit f574b8
    style (e.g., TMPDIR=/cygdrive/d/cygwin/tmp, rather than
Packit f574b8
    TMPDIR=d:\cygwin\tmp).
Packit f574b8
Packit f574b8
Visual C++:
Packit f574b8
    You must have compiled zlib and PDCurses with the -MT (threaded code)
Packit f574b8
    option.  This is not the default with zlib (see Makefile.msc).
Packit f574b8
Packit f574b8
    Copy into lib the following
Packit f574b8
	zconf.h
Packit f574b8
	zlib.h
Packit f574b8
	zlib.lib
Packit f574b8
Packit f574b8
    from the zlib build-tree, and
Packit f574b8
	curses.h
Packit f574b8
	pdcurses.lib
Packit f574b8
Packit f574b8
    from the PDCurses build-tree.
Packit f574b8
Packit f574b8
    Then
Packit f574b8
	make-msc
Packit f574b8
Packit f574b8
    to build lynx.
Packit f574b8
Packit f574b8
-------------------------------------------------------------------------------
Packit f574b8
Packit f574b8
V. Compile instructions -- 386 DOS
Packit f574b8
Packit f574b8
    Compiling for DOS with DJGPP has traditionally been a multistep
Packit f574b8
    procedure. Now, if you have a full installation of DJGPP you can
Packit f574b8
    also install using the configure script, just as in the UNIX
Packit f574b8
    section. This needs to be done under a BASH shell. Use a shell
Packit f574b8
    script to run configure as in the example at the end of this
Packit f574b8
    section. Otherwise you can follow the below instructions. The
Packit f574b8
    multistep procedure for DOS may not be supported in the future
Packit f574b8
    and use of the configure script is recommended. The information
Packit f574b8
    about required libraries and unpacking applies to both methods of
Packit f574b8
    compiling.
Packit f574b8
Packit f574b8
    First install the C compiler and its libraries (see readme.1st from
Packit f574b8
    DJGPP distribution).
Packit f574b8
Packit f574b8
    Originally, lynx makefiles come with the initial -O2 optimization
Packit f574b8
    level. If you experience compilation process too slow due to paging
Packit f574b8
    to the disk (DPMI server provide virtual memory, when in lack of
Packit f574b8
    RAM), you may change optimization to -O1 or turn the optimization
Packit f574b8
    off entirely.
Packit f574b8
Packit f574b8
    If using optimization level -O2 or -O3 with older versions of DJGPP
Packit f574b8
    and GCC, you may need to "stubedit" your "cc1.exe" file to enlarge
Packit f574b8
    compiler stack size. For instance, if using DJGPP 2.02 and GCC 2.8.1,
Packit f574b8
    to compile with -O3 optimization, the stub needs to be edited to give
Packit f574b8
    a larger stack. To do this go into djgpp\lib\gcc-lib\djgpp\2.81 and
Packit f574b8
    either type the command:
Packit f574b8
   	 "stubedit cc1.exe bufsize=63k minstack=2M",
Packit f574b8
    or edit interactively with: "stubedit cc1.exe". Current versions of
Packit f574b8
    DJGPP and GCC generally work with the standard stack.
Packit f574b8
Packit f574b8
    Unpack the source code using a DOS program like UNZIP386.  If you are
Packit f574b8
    using PKUNZIP to unpack the .zip archive, you must use the -d command
Packit f574b8
    line switch to restore the directory structure contained in the archive,
Packit f574b8
    i.e., do "pkunzip -d lynx-cur.zip".  No switch is required if you use
Packit f574b8
    unzip386 or unzip.  If you are trying to compile the 386DOS port under a
Packit f574b8
    WinNT DOS shell, be sure to unpack the source with a DOS program so
Packit f574b8
    that all directories will be adjusted to the DOS 8.3 file format necessary
Packit f574b8
    for compiling with DJGPP.  Do NOT use Winzip, because that will create
Packit f574b8
    long filenames that will not be recognized by DJGPP tools.
Packit f574b8
Packit f574b8
    If you wish to compile with "USE_ZLIB" (recommended), you must have the
Packit f574b8
    zlib library.  Get the source from
Packit f574b8
	    http://www.zlib.net
Packit f574b8
    and compile it.  Put libz.a in the lib subdirectory of DJGPP, and put
Packit f574b8
    zlib.h and zconf.h in the include subdirectory.
Packit f574b8
Packit f574b8
    In addition to the files in the Lynx distribution, you will need a curses
Packit f574b8
    package and a TCP package.  You can use PDCurses (available at
Packit f574b8
    "http://pdcurses.sourceforge.net/") and the DJGPP port of WATTCP.  The
Packit f574b8
    updated version of WATTCP is known as WATT-32, and is available at
Packit f574b8
    "http://home.broadpark.no/~gvanem/".  You can also use slang (available at
Packit f574b8
    "http://www.jedsoft.org/slang/") as your screen library.  You must
Packit f574b8
    compile these before you go any further.  If you wish to use PDCurses 2.6,
Packit f574b8
    you need to first apply the following patch:
Packit f574b8
Packit f574b8
--- dos/gccdos.mak.ori	2002-01-11 20:11:18.000000000 -0800
Packit f574b8
+++ dos/gccdos.mak	2003-12-13 21:29:28.000000000 -0800
Packit f574b8
@@ -40,11 +40,11 @@
Packit f574b8
 	CFLAGS  = -c -g -Wall -DPDCDEBUG
Packit f574b8
 	LDFLAGS = -g
Packit f574b8
 else
Packit f574b8
-	CFLAGS  = -c -O -Wall
Packit f574b8
+	CFLAGS  = -c -O2 -Wall
Packit f574b8
 	LDFLAGS =
Packit f574b8
 endif
Packit f574b8
Packit f574b8
-CPPFLAGS	= -I$(PDCURSES_HOME) -I$(CCINCDIR) -D_NAIVE_DOS_REGS
Packit f574b8
+CPPFLAGS	= -I$(PDCURSES_HOME) -I$(CCINCDIR) -D_NAIVE_DOS_REGS -DHAVE_STRING_H
Packit f574b8
Packit f574b8
 CCFLAGS		= $(CFLAGS) $(CPPFLAGS)
Packit f574b8
Packit f574b8
@@ -64,10 +64,10 @@
Packit f574b8
 all:	$(PDCLIBS) $(DEMOS)
Packit f574b8
Packit f574b8
 clean:
Packit f574b8
 	-del *.o
Packit f574b8
-	-del curses.lib
Packit f574b8
-	-del panel.lib
Packit f574b8
+	-del pdcurses.a
Packit f574b8
+	-del panel.a
Packit f574b8
Packit f574b8
 demos:	$(DEMOS)
Packit f574b8
Packit f574b8
@@ -287,33 +287,27 @@
Packit f574b8
 #------------------------------------------------------------------------
Packit f574b8
Packit f574b8
 firework.exe:	firework.o $(LIBCURSES)
Packit f574b8
-	$(LINK) $(LDFLAGS) -o firework firework.o $(LIBCURSES)
Packit f574b8
-	$(COFF2EXE) firework
Packit f574b8
+	$(LINK) $(LDFLAGS) -o firework.exe firework.o $(LIBCURSES)
Packit f574b8
 	strip $@
Packit f574b8
Packit f574b8
 newdemo.exe:	newdemo.o $(LIBCURSES)
Packit f574b8
-	$(LINK) $(LDFLAGS) -o newdemo newdemo.o $(LIBCURSES)
Packit f574b8
-	$(COFF2EXE) newdemo
Packit f574b8
+	$(LINK) $(LDFLAGS) -o newdemo.exe newdemo.o $(LIBCURSES)
Packit f574b8
 	strip $@
Packit f574b8
Packit f574b8
 ptest.exe:	ptest.o $(LIBCURSES) $(LIBPANEL)
Packit f574b8
-	$(LINK) $(LDFLAGS) -o ptest ptest.o $(LIBCURSES) $(LIBPANEL)
Packit f574b8
-	$(COFF2EXE) ptest
Packit f574b8
+	$(LINK) $(LDFLAGS) -o ptest.exe ptest.o $(LIBCURSES) $(LIBPANEL)
Packit f574b8
 	strip $@
Packit f574b8
Packit f574b8
 testcurs.exe:	testcurs.o $(LIBCURSES)
Packit f574b8
-	$(LINK) $(LDFLAGS) -o testcurs testcurs.o $(LIBCURSES)
Packit f574b8
-	$(COFF2EXE) testcurs
Packit f574b8
+	$(LINK) $(LDFLAGS) -o testcurs.exe testcurs.o $(LIBCURSES)
Packit f574b8
 	strip $@
Packit f574b8
Packit f574b8
 tuidemo.exe:	tuidemo.o tui.o $(LIBCURSES)
Packit f574b8
-	$(LINK) $(LDFLAGS) -o tuidemo tuidemo.o tui.o $(LIBCURSES)
Packit f574b8
-	$(COFF2EXE) tuidemo
Packit f574b8
+	$(LINK) $(LDFLAGS) -o tuidemo.exe tuidemo.o tui.o $(LIBCURSES)
Packit f574b8
 	strip $@
Packit f574b8
Packit f574b8
 xmas.exe:	xmas.o $(LIBCURSES)
Packit f574b8
-	$(LINK) $(LDFLAGS) -o xmas xmas.o $(LIBCURSES)
Packit f574b8
-	$(COFF2EXE) xmas
Packit f574b8
+	$(LINK) $(LDFLAGS) -o xmas.exe xmas.o $(LIBCURSES)
Packit f574b8
 	strip $@
Packit f574b8
Packit f574b8
Packit f574b8
--- dos/pdckbd.c.ori	2002-09-01 00:13:30.000000000 -0800
Packit f574b8
+++ dos/pdckbd.c	2004-01-19 20:30:02.000000000 -0800
Packit f574b8
@@ -362,7 +362,7 @@
Packit f574b8
 		return ((int) (0xb8 << 8));
Packit f574b8
 	if (ascii == 0xe0 && scan == 0x53 && pdc_key_modifiers & PDC_KEY_MODIFIER_SHIFT) /* Shift Del */
Packit f574b8
 		return ((int) (0xb9 << 8));
Packit f574b8
-	if (ascii == 0x00 || ascii == 0xe0)
Packit f574b8
+	if (ascii == 0x00 || (ascii == 0xe0 && scan != 0x00))
Packit f574b8
 		return ((int) (scan << 8));
Packit f574b8
 	return ((int) (ascii));
Packit f574b8
 }
Packit f574b8
@@ -522,7 +522,7 @@
Packit f574b8
 		_watch_breaks();
Packit f574b8
 #else
Packit f574b8
 # ifdef GO32
Packit f574b8
-	(void*)signal(SIGINT,(setting ? SIG_DFL : SIG_IGN));
Packit f574b8
+/*	(void*)signal(SIGINT,(setting ? SIG_DFL : SIG_IGN)); */
Packit f574b8
 /*	__djgpp_set_ctrl_c(setting);*/
Packit f574b8
 	setcbrk(setting);
Packit f574b8
 # else
Packit f574b8
--- pdcurses/kernel.c.ori	2002-11-27 03:24:32.000000000 -0800
Packit f574b8
+++ pdcurses/kernel.c	2003-12-13 21:22:38.000000000 -0800
Packit f574b8
@@ -27,6 +27,10 @@
Packit f574b8
 #include <memory.h>
Packit f574b8
 #endif
Packit f574b8
Packit f574b8
+#ifdef HAVE_STRING_H
Packit f574b8
+#include <string.h>
Packit f574b8
+#endif
Packit f574b8
+
Packit f574b8
 #ifdef UNIX
Packit f574b8
 #include <defs.h>
Packit f574b8
 #include <term.h>
Packit f574b8
--- pdcurses/pdcutil.c.ori	2001-01-10 00:27:22.000000000 -0800
Packit f574b8
+++ pdcurses/pdcutil.c	2003-12-13 21:24:58.000000000 -0800
Packit f574b8
@@ -49,7 +49,7 @@
Packit f574b8
 #  include <limits.h>
Packit f574b8
 #endif
Packit f574b8
Packit f574b8
-#ifdef STDC_HEADERS
Packit f574b8
+#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
Packit f574b8
 #  include <string.h>
Packit f574b8
 #endif
Packit f574b8
Packit f574b8
--- pdcurses/pdcwin.c.ori	2002-05-25 17:13:32.000000000 -0800
Packit f574b8
+++ pdcurses/pdcwin.c	2003-12-13 21:26:02.000000000 -0800
Packit f574b8
@@ -27,6 +27,10 @@
Packit f574b8
 # include <memory.h>
Packit f574b8
 #endif
Packit f574b8
Packit f574b8
+#ifdef HAVE_STRING_H
Packit f574b8
+#include <string.h>
Packit f574b8
+#endif
Packit f574b8
+
Packit f574b8
 #ifndef HAVE_MEMMOVE
Packit f574b8
 # define memmove PDC_memmove
Packit f574b8
 #endif
Packit f574b8
Packit f574b8
    If you wish to compile with SSL enabled, you need to get and compile
Packit f574b8
    OpenSSL. The DJGPP port has been successfully compiled with the
Packit f574b8
    development version of OpenSSL. DJGPP can compile OpenSSL from the
Packit f574b8
    standard source distribution (http://www.openssl.org/). See the file
Packit f574b8
    "INSTALL.DJGPP" in the OpenSSL distribution.
Packit f574b8
Packit f574b8
    If you have trouble applying the patches, try using the "patch" program,
Packit f574b8
    ("http://www.delorie.com/pub/djgpp/current/v2gnu/pat261b.zip").
Packit f574b8
    To read the Unix man style documentation, use, for example, "less"
Packit f574b8
    ("http://www.delorie.com/pub/djgpp/current/v2gnu/lss374b.zip").
Packit f574b8
    Compile or place your compiled PDCurses library in /djgpp/pdcur26, and
Packit f574b8
    compile or place your compiled WATT-32 library in /djgpp/watt32.  If
Packit f574b8
    using the SLANG library, put libslang.a in your DJGPP/lib directory and put
Packit f574b8
    slang.h in your DJGPP/include directory, or in the appropriate directories
Packit f574b8
    specified by LIBRARY_PATH and INCLUDE_PATH in your DJGPP.ENV file.
Packit f574b8
Packit f574b8
    Move to the "lynx2-*/WWW/Library/djgpp" directory.  If compiling with
Packit f574b8
    PDCurses, do "make".  If using SLANG, do "make -f makefile.sla".  This
Packit f574b8
    should compile libwww.a.  Next move to the "lynx2-*/src/chrtrans" directory
Packit f574b8
    and do "make -f makefile.dos" to compile the character tables.  Then move
Packit f574b8
    to the "lynx2-*/src" directory.  There are three choices for compiling at
Packit f574b8
    this point.  You can do "make -f makefile.dos" to compile with PDCurses,
Packit f574b8
    "make -f makefile.wsl" to compile with SLANG, or "make -f makefile.dsl" to
Packit f574b8
    compile with SLANG and the DJGPP keyhandler.  At the time of this writing,
Packit f574b8
    it is not clear what the advantages and disadvantages of each version are.
Packit f574b8
    The PDCurses version has the most experience and allows remapping of ALT
Packit f574b8
    and Function keys.  The SLANG version seems to have better screen handling.
Packit f574b8
    It allows mapping of function keys, but not ALT keys.  The SLANG with DJGPP
Packit f574b8
    keyhandler allows mapping of ALT and Function keys, but has the risk of
Packit f574b8
    incompatibilities from mixing different programs.
Packit f574b8
Packit f574b8
    If you wish to compile with support for internationalization of messages,
Packit f574b8
    you first need to install the DOS ports of the GNU gettext and libiconv
Packit f574b8
    packages, available from any DJGPP mirror site.  Then uncomment the lines
Packit f574b8
    for INTLFLAGS in src/makefile.dsl and in WWW/Library/djgpp/makefile.sla,
Packit f574b8
    and remove the "#" from the LIBS line in src/makefile.dsl.  Make similar
Packit f574b8
    changes if using one of the other DOS makefiles.  See the gettext
Packit f574b8
    documentation for information on creating and using message files for
Packit f574b8
    different languages.
Packit f574b8
Packit f574b8
    If all goes well, you will have a lynx.exe file.  If you have trouble,
Packit f574b8
    check to be sure djgpp.env is the way it came in the original package.
Packit f574b8
Packit f574b8
    To test Lynx_386 you must have a packet driver installed. The simplest
Packit f574b8
    method is to use a null packet driver that just allows Lynx to start
Packit f574b8
    up, but doesn't do anything else. One such executable driver has been
Packit f574b8
    posted, uuencoded, to the lynx-dev mailing list in January 1998,
Packit f574b8
    but is corrupted in the mailing list archive. You can get this at
Packit f574b8
    "http://www.ncf.ca/ncf/pda/computer/dos/net/nullpkt.zip". Start the
Packit f574b8
    dummy packet driver with "nullpkt 0x60", and take it out of memory with
Packit f574b8
    "nullpkt -u". You can also use slip8250.com. See the CRYNWR package
Packit f574b8
    "ftp://ftp.simtel.net/pub/simtelnet/msdos/pktdrvr/pktd11.zip". Usage
Packit f574b8
    is "slip8250 0x60", but you may have to invoke it as, for example,
Packit f574b8
    "slip8250 0x60 6 3 0x2F8" so that it uses COM2 and IRQ 3, in order to
Packit f574b8
    avoid an IRQ conflict with a mouse or some other device. Another packet
Packit f574b8
    driver is slipper.exe, which is available from many sites, including
Packit f574b8
    "http://www.cavazza.it/file/bbs/intsoft/slippr15.zip". To remove it from
Packit f574b8
    memory use termin.com (usage "termin 0x60"), available in the CRYNWR
Packit f574b8
    package. To connect over a dialup PPP connection you need dosppp or klos'
Packit f574b8
    pppshare. (Find at:
Packit f574b8
    "http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/net/dosppp/dosppp06.zip"
Packit f574b8
    "http://www.ncf.carleton.ca/ncf/pda/computer/dos/net/dosppp06.zip"
Packit f574b8
    "http://www.cavazza.it/file/bbs/intsoft/dosppp06.zip"
Packit f574b8
    "http://www.cavazza.it/file/bbs/intsoft/pppshare.exe")
Packit f574b8
Packit f574b8
    File access looks like this:
Packit f574b8
Packit f574b8
    file:///c:/
Packit f574b8
    file:///c:/dos
Packit f574b8
    file:///c:/dos/command.com
Packit f574b8
    file://localhost/c:/
Packit f574b8
    file://localhost/c:/dos
Packit f574b8
    file://localhost/c:/dos/command.com
Packit f574b8
Packit f574b8
    See "http://www.fdisk.com/doslynx/lynxport.htm" for more hints and
Packit f574b8
    some precompiled libraries. One problem you can encounter is editing
Packit f574b8
    userdefs.h and lynx.cfg, which have unix-style end of lines. You would
Packit f574b8
    be well advised to use an editor that can handle end of lines terminated
Packit f574b8
    with a single LF character. You can also unpack the source code using
Packit f574b8
    unzip386 or unzip with the -a or -aa switch to convert unix LF to dos CRLF.
Packit f574b8
    That will make texts more readable under DOS. If you compile lynx
Packit f574b8
    regularly, you may automate the procedure by creating a batch file such
Packit f574b8
    as the following.
Packit f574b8
Packit f574b8
	cd djgpp\watt32\src
Packit f574b8
	configur djgpp
Packit f574b8
	make -f djgpp.mak
Packit f574b8
	cd ..\..\..\www\library\djgpp
Packit f574b8
	make
Packit f574b8
	cd ..\..\..\src\chrtrans
Packit f574b8
	make -f makefile.dos
Packit f574b8
	cd ..\..\src
Packit f574b8
	make -f makefile.dos
Packit f574b8
	strip lynx.exe
Packit f574b8
	cd ..
Packit f574b8
Packit f574b8
    This batch file expects the DJGPP port of WATT-32 to be installed in the
Packit f574b8
    lynx2-* directory.  Place a copy of this batch file, named "djgpp.bat",
Packit f574b8
    in the lynx2-* directory, move to that directory and type "djgpp".  A more
Packit f574b8
    complete batch file with error checking and annotation can be found at:
Packit f574b8
    "http://lists.nongnu.org/archive/html/lynx-dev/1997-11/msg00250.html".
Packit f574b8
Packit f574b8
    If you use the configure method, remember that if you configure with
Packit f574b8
    the option "--enable-nls", you also need to set LIBS="-liconv". A
Packit f574b8
    sample shell script to run configure using PDCurses follows. If you
Packit f574b8
    compile to use SLANG, note that the DJGPP keyhandler will be used
Packit f574b8
    instead of the SLANG keyhandler unless you define "NO_DJ_KEYHANDLER".
Packit f574b8
Packit f574b8
    #!/bin/sh
Packit f574b8
    CFLAGS="-O2 -I/djgpp/pdcur26 -I/djgpp/watt32/inc" \
Packit f574b8
    LIBS="-L/djgpp/pdcur26/lib -L/djgpp/watt32/lib -liconv" \
Packit f574b8
    ./configure --prefix=d:/djgpp/lynx-rel/lynx-cnf \
Packit f574b8
    --with-screen=curses \
Packit f574b8
    --disable-full-paths \
Packit f574b8
    --enable-addrlist-page \
Packit f574b8
    --enable-change-exec \
Packit f574b8
    --enable-cgi-links \
Packit f574b8
    --enable-charset-choice \
Packit f574b8
    --enable-color-style \
Packit f574b8
    --enable-exec-links \
Packit f574b8
    --enable-externs \
Packit f574b8
    --enable-file-upload \
Packit f574b8
    --enable-nested-tables \
Packit f574b8
    --enable-nls \
Packit f574b8
    --sysconfdir=d:/djgpp/lynx-rel/lynx-cnf \
Packit f574b8
    --with-bzlib \
Packit f574b8
    --with-zlib \
Packit f574b8
    --with-ssl
Packit f574b8
Packit f574b8
-- 1997/9/29 - D. Kaufman <dkaufman@rahul.net>
Packit f574b8
-- 1997/10/3 - B. Schiavo <Wschiavo@concentric.net>
Packit f574b8
-- Last update - 2010/11/27
Packit f574b8
Packit f574b8
-------------------------------------------------------------------------------
Packit f574b8
Packit f574b8
VI. General installation instructions
Packit f574b8
Packit f574b8
    Once you have compiled Lynx, test it out first on a local file.  Be sure
Packit f574b8
    Lynx can find lynx.cfg.  A _sample_ test command line would be:
Packit f574b8
    'lynx -cfg=/usr/local/lib/lynx.cfg .'.  Once you are satisfied that
Packit f574b8
    Lynx works, go ahead and install it.  For Unix, type "make install".
Packit f574b8
Packit f574b8
    For VMS, you need to have the executable in a public place, make it
Packit f574b8
    accessible, define it as a foreign command, and copy lynx.cfg to
Packit f574b8
    "Lynx_Dir".  Look at lynx.com in the samples directory as a model for
Packit f574b8
    installing Lynx.  To include lynx.hlp in the system HELP library, use
Packit f574b8
    the command: "$ library/replace sys$help:helplib.hlb lynx.hlp".
Packit f574b8
Packit f574b8
    Local copies of the Lynx online help should be made accessible in response
Packit f574b8
    to the Lynx 'h'elp command by defining HELPFILE in userdefs.h and/or
Packit f574b8
    lynx.cfg to an appropriate file://localhost/path URL.  On Unix, all you
Packit f574b8
    need to do is type "make install-help."  If you are installing manually,
Packit f574b8
    copy the files "COPYHEADER" and "COPYING" into the lynx_help directory
Packit f574b8
    BEFORE moving the lynx_help tree to its final location.  These files are
Packit f574b8
    referenced hypertextually from help documents.
Packit f574b8
Packit f574b8
    If you have old, pre-existing bookmark files from earlier versions of
Packit f574b8
    Lynx, those files may have to be updated.  Conversion may just consist
Packit f574b8
    of adding one META line near the top, or may require creating new book-
Packit f574b8
    mark files and editing in bookmarks from outdated files.
Packit f574b8
Packit f574b8
    IMPORTANT!  Be sure you have read the warnings about setting up an
Packit f574b8
    anonymous account with Lynx if you plan to give public access to Lynx.
Packit f574b8
Packit f574b8
    After applying patches or editing files to correct for an unsuccessful
Packit f574b8
    build, be certain to do a "make clean" (or "make distclean" for those
Packit f574b8
    using auto-configure) before attempting to compile again.
Packit f574b8
Packit f574b8
-------------------------------------------------------------------------------
Packit f574b8
Packit f574b8
VII. Setting environment variables before running Lynx (optional)
Packit f574b8
Packit f574b8
1. All ports
Packit f574b8
Packit f574b8
   The Lynx Users Guide describes all of the environment variables used by
Packit f574b8
   Lynx.  This should be checked later along with reading lynx.cfg after you
Packit f574b8
   have installed Lynx.
Packit f574b8
Packit f574b8
2. Win32 (95/98/NT) and 386 DOS
Packit f574b8
Packit f574b8
    These ports cannot start before setting certain environment variables.
Packit f574b8
    Here are some environment variables that should be set, usually in a
Packit f574b8
    batch file that runs the lynx executable.  Make sure that you have enough
Packit f574b8
    room left in your environment.  You may need to change your "SHELL="
Packit f574b8
    setting in config.sys.  In addition, lynx looks for a "SHELL" environment
Packit f574b8
    variable when shelling to DOS.  If  you wish to preserve the environment
Packit f574b8
    space when shelling, put a line like this in your AUTOEXEC.BAT file also
Packit f574b8
    "SET SHELL=C:\COMMAND.COM /E:4096".  It should match CONFIG.SYS.
Packit f574b8
Packit f574b8
    HOME         Where to keep the bookmark file and personal config files.
Packit f574b8
    TEMP or TMP  Bookmarks are kept here with no HOME.  Temp files here.
Packit f574b8
    USER         Set to your login name (optional)
Packit f574b8
    LYNX_CFG     Set to the full path and filename for lynx.cfg
Packit f574b8
    LYNX_LSS     Set to the full path and filename for lynx.lss
Packit f574b8
    LYNX_SAVE_SPACE  The (modifiable) location for downloaded file storage.
Packit f574b8
    SSL_CERT_FILE Set to the full path and filename for your file of trusted
Packit f574b8
                  certificates
Packit f574b8
Packit f574b8
    386 version only:
Packit f574b8
    WATTCP.CFG   Set to the full path for the WATTCP.CFG directory
Packit f574b8
    RL_CLCOPY_CMD Command to copy a URL to a "clipboard" file
Packit f574b8
    RL_PASTE_CMD  Command to go to a URL in your "clipboard" file
Packit f574b8
Packit f574b8
    Define these in your batch file for running Lynx.  For example, if your
Packit f574b8
    application line is "D:\win32\lynx.bat", lynx.bat for Win32 may look like:
Packit f574b8
	@ECHO OFF
Packit f574b8
	set home=d:\win32
Packit f574b8
	set temp=d:\tmp
Packit f574b8
	set lynx_cfg=d:\win32\lynx.cfg
Packit f574b8
	set lynx_save_space=d:\download
Packit f574b8
	d:\win32\lynx.exe %1 %2 %3 %4 %5
Packit f574b8
Packit f574b8
    For lynx_386, a typical batch file might look like:
Packit f574b8
Packit f574b8
	@echo off
Packit f574b8
	set HOME=f:/lynx2-8
Packit f574b8
	set USER=your_login_name
Packit f574b8
	set LYNX_CFG=%HOME%/lynx.cfg
Packit f574b8
	set WATTCP.CFG=%HOME%
Packit f574b8
	f:\lynx2-8\lynx %1 %2 %3 %4 %5 %6 %7 %8 %9
Packit f574b8
Packit f574b8
    You need to make sure that the WATTCP.CFG file has the correct information
Packit f574b8
    for IP number, Gateway, Netmask, and Domain Name Server.  This can also be
Packit f574b8
    automated in the batch file.
Packit f574b8
Packit f574b8
    Adapted from "readme.txt" by Wayne Buttles and "readme.dos" by Doug
Packit f574b8
    Kaufman.
Packit f574b8
Packit f574b8
VIII. Acknowledgment
Packit f574b8
Packit f574b8
   Thanks to the many volunteers who offered suggestions for making this
Packit f574b8
   installation manual as accurate and complete as possible.
Packit f574b8
Packit f574b8
-- 1999/04/24 - H. Nelson <lynx-admin@irm.nara.kindai.ac.jp>
Packit f574b8
-- vile:txtmode
Packit f574b8
-- $LynxId: INSTALLATION,v 1.130 2018/07/08 15:22:44 tom Exp $