home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Divers / lynx2.8.1dev.10.tar.gz / lynx2.8.1dev.10.tar / lynx2-8 / INSTALLATION < prev    next >
Text File  |  1998-05-10  |  40KB  |  791 lines

  1.  
  2.                       Lynx Installation Guide
  3.  
  4. This file describes how to compile and install Lynx.  A description of
  5. Lynx can be found in the README file.  Lynx has been ported to UN*X, VMS,
  6. Win32 and 386DOS.  The procedures for compiling these ports are quite
  7. divergent, and are detailed respectively in Sections II, III, IV and V.
  8.  
  9. First, however, you must configure Lynx for your system regardless of the
  10. port you will be using.  Follow the instructions given immediately below to
  11. configure for your system, and then go to the respective section concerning
  12. the port you wish to compile.  General installation, problem solving, and
  13. environment variables are covered in Sections VI and VII.
  14.  
  15.  
  16. I. General configuration instructions (all ports).
  17.  
  18. Step 1. (define compile-time variables -- See the userdefs.h file.)
  19.     There are a few variables that MUST be defined, or Lynx will not build.
  20.     There are a few more that you will probably want to change.  The variables
  21.     that must be changed are marked as such in the userdefs.h file.  Just edit
  22.     this file, and the changes should be straight forward.  Many of the
  23.     variables in "userdefs.h" are now configurable in the lynx.cfg file, so
  24.     you may set them at run-time if you wish.  If you compile using auto-
  25.     configure, you would not absolutely need to edit "userdefs.h".  Check
  26.     LYMessages_en.h for tailoring the Lynx statusline prompts, messages and
  27.     warnings to the requirements of your site.  The strings in LYMessages_en.h
  28.     may be translated into a language of your choice.  If you rename the file,
  29.     be sure to change the definition in "userdefs.h".
  30.  
  31. Step 2. (define run-time variables -- See the lynx.cfg file for details.)
  32.     Set up local printers, downloaders, assumed character set, key mapping,
  33.     and colors in the lynx.cfg file.  Please read "lynx.cfg" thoroughly as
  34.     many of the features of Lynx, and how to use them, are explained.  Also
  35.     see the example mime.types, mailcap and jumps files in the samples
  36.     subdirectory.  Lynx must be able to find the lynx.cfg file at start-up.
  37.     The location of the lynx.cfg file may be compiled in with the LYNX_CFG_FILE
  38.     defined in userdefs.h (or with the configure option explained in the Unix
  39.     section below), specified with an environment variable, LYNX_CFG, or
  40.     specified with the "-cfg" command line option.
  41.  
  42. Step 3. (You may skip this step if you only use English and are not
  43.     interested in any special characters, or if your display and local files
  44.     will all use the ISO-8859-1 "ISO Latin 1" Western European character set.)
  45.     People who will be running Lynx in an environment with different and
  46.     incompatible character sets should configure CHARACTER_SET (the Display
  47.     character set) and ASSUME_LOCAL_CHARSET to work correctly for them before
  48.     creating bookmark files et cetera.  Please read "lynx.cfg" for detailed
  49.     instructions.  Additional character sets and their properties may be
  50.     defined with tables in the src/chrtrans directory, see the README.* files
  51.     therein.
  52.  
  53. Step 4. (optional -- news for UNIX and VMS)
  54.     Set NNTPSERVER in "lynx.cfg" to your site's NNTP server, or set the
  55.     environment variable externally.  (See "VII. Setting environment
  56.     variables before running Lynx" for help on setting this and other
  57.     environment variables which affect Lynx.)  For news posting ability
  58.     to be enabled in Lynx, in userdefs.h (and optionally in lynx.cfg) the
  59.     NEWS_POSTING symbol must be defined to TRUE.  Also define LYNX_SIG_FILE
  60.     in userdefs.h or lynx.cfg so that it points to users' signature files
  61.     for appending to posted messages.
  62.  
  63. Step 5. (optional -- UNIX only)
  64.     To add direct WAIS support, get the freeWAIS distribution from
  65.     "ftp://ftp.cnidr.org/pub/NIDR.tools/freewais", and compile it.  The compile
  66.     process will create the libraries you will need, wais.a and client.a.  Edit
  67.     the Makefile in the top level directory and add the library locations under
  68.     the DIRECT WAIS ACCESS heading.  Edit the Makefile for the WWW Library in
  69.     "WWW/Library/Implementation/CommonMakefile" to point to the include
  70.     directory for the freewais distribution.  Precompiled libraries are
  71.     available for many platforms if you don't wish to compile one yourself.
  72.  
  73. Step 6. (Anonymous account -- VERY IMPORTANT!!!!! -- )
  74.     If you are building Lynx for your personal use only you may skip this
  75.     step. If you are setting up an anonymous account with Lynx, you are
  76.     STRONGLY advised to use the -anonymous command line option.  If you do
  77.     not use this option, users may be able to gain access to all readable
  78.     files on your machine!  ALSO NOTE that many implementations of telnetd
  79.     allow passing of environment variables, which might be used by
  80.     unscrupulous people to modify the environment in anonymous accounts.
  81.     When making Lynx and Web access publicly available via anonymous
  82.     accounts intended to run Lynx captively, be sure the wrapper uses the
  83.     -cfg switch to specify the startfile, rather than relying on the
  84.     LYNX_CFG, LYNX_CFG_FILE, or WWW_HOME variables.
  85.  
  86.  
  87. II. Compile instructions -- UNIX
  88.  
  89. 1a. Auto-configure.  The auto-configure script uses autoconf2.12 to generate a
  90.     Bourne shell script, configure, which creates "makefile" and "lynx_cfg.h".
  91.  
  92.     If you are on a UNIX platform, the easiest way to build Lynx is to type:
  93.  
  94.         ./configure
  95.     and
  96.         make
  97.  
  98.     NOTE:  Configure has a number of useful options.  Please see below.
  99.  
  100.     NOTE:  The 'configure' script generates auxiliary files "config.status"
  101.     "config.cache" and "config.log".  Normally you will not notice these;
  102.     they are created automatically and removed by a "make distclean".
  103.  
  104.     + If you wish to rebuild Lynx with a new host, or change ANY of the
  105.       parameters which are stored in config.cache, you MUST first remove
  106.       the config.cache file before running configure; its options do NOT
  107.       override the settings in that file.
  108.  
  109.     + The config.status file is a script which creates (or regenerates)
  110.       the files created by the configure script.
  111.  
  112.     Please report problems in the configure/make process by including a copy
  113.     of config.status, config.cache and config.log, as well as the pertinent
  114.     compiler diagnostics.
  115.  
  116.     NOTE:  Lynx is a curses-based application, so you must have a curses
  117.     library available to link to.  Native curses (on the system when it was
  118.     installed) are often broken, so you may get superior performance if you
  119.     have either "ncurses" ("ftp://ftp.clark.net/pub/dickey/ncurses") or "slang"
  120.     ("ftp://space.mit.edu/pub/davis/slang").  If you install these libraries
  121.     in your home directory or a non-default location, you may need to set the
  122.     CPPFLAGS (full path to include files) and LIBS (full path to library files)
  123.     environment variables BEFORE running configure.  See "1d. Environment".
  124.     Use the "--with-screen=ncurses" or "--with-screen=slang" option.
  125.  
  126. 1b. Platforms.  Configure should work properly on any Unix-style system.
  127.     It has been tested on the following platforms.
  128.  
  129.     AIX 3.2.5 (cc w/ curses)    CLIX (cc w/ curses & ncurses)
  130.     DGUX
  131.     Digital Unix 3.2C and 4.0 (gcc & cc w/ curses, ncurses & slang)
  132.     FreeBSD 2.1.5 (gcc 2.6.3 w/ curses & ncurses)
  133.     HP-UX (K&R and ANSI cc, gcc w/ curses, ncurses & slang)
  134.     IRIX 5.2 and 6.2 (cc & gcc w/ curses, ncurses & slang)
  135.     Linux 2.0.0 (gcc 2.7.2 w/ curses, ncurses & slang)
  136.     MkLinux 2.1.5 (gcc 2.7.2.1)    NetBSD
  137.     OS/2 EMX 0.9b            SCO (cc w/ curses)
  138.     Solaris 2.5 & 2.6 (cc & gcc w/ curses, ncurses & slang)
  139.     SunOS 4.1 (cc w/ curses, gcc w/ ncurses & slang)
  140.  
  141.     NOTE:  SunOS and HP-UX come with a bundled K&R compiler, which is only
  142.     useful for compiling with the bundled curses.  Both ncurses and slang
  143.     require a compiler that recognizes prototypes.
  144.  
  145. 1c. Options
  146.     To get a list of the configure script's options, type "./configure --help".
  147.     Below is an alphabetical listing of the Lynx-specific options.  The actual
  148.     order shown by the -help option is different.  See "docs/README.defines"
  149.     for information on defines for which there are no option switches.
  150.  
  151.   --disable-dired            (defines DIRED_SUPPORT)
  152.     Use this option to disable the optional directory-editor.
  153.  
  154.     Lynx supports directory editing (DirEd) for local directories.
  155.     This allows users to do things like view, copy and remove files
  156.     using a tabular display of the directory and single-keystroke
  157.     commands instead of using the command line.  From inside Lynx, the
  158.     keystroke sequence "g.<enter>" switches Lynx to DirEd mode on the
  159.     current directory.  If you're building a Lynx that is to be used as
  160.     a kind of restricted shell for users who do not have access to the
  161.     command line and should not have access to equivalent capabilities,
  162.     you must disable DirEd with this option.  You can also disable some
  163.     DirEd functions while allowing others.  If you have disabled DirEd
  164.     completely, you can ignore all the other DirEd options.
  165.  
  166.     All DirEd functions that were enabled on compilation can be disabled
  167.     or modified at run time via DIRED_MENU symbols in lynx.cfg.
  168.  
  169.   --disable-dired-archive        (define ARCHIVE_ONLY)
  170.     Use this option to prevent DirEd from extracting files from an
  171.     archive file.
  172.  
  173.   --disable-dired-gzip            (prevent defining OK_GZIP)
  174.     Use this option to prevent DirEd from using gzip and gunzip.
  175.  
  176.   --disable-dired-override        (prevent defining OK_OVERRIDE)
  177.     Lynx users can customize their keymaps by creating private
  178.     versions of lynx.cfg and modifying them to override the default
  179.     keymap.  Use this option to prevent DirEd keymap overriding.
  180.  
  181.   --disable-dired-permit        (prevent defining OK_PERMIT)
  182.     Use this option to prevent DirEd from changing the permissions
  183.     on directories or files (i.e., from doing what the Unix chmod
  184.     command or the DOS attrib command does).
  185.  
  186.   --disable-dired-tar            (prevent defining OK_TAR)
  187.     Use this option to prevent DirEd from using the tar program.
  188.  
  189.   --disable-dired-uudecode        (prevent defining OK_UUDECODE)
  190.     Use this option to prevent DirEd from using uudecode.
  191.  
  192.   --disable-dired-xpermit        (define NO_CHANGE_EXECUTE_PERMS)
  193.     Use this option if you do not disable out the dired-permit
  194.     option, but want to restrict changes of the eXecute permission
  195.     to directories (i.e., not allow it to be changed for files).  If
  196.     you don't do this, you can still block changes of the eXecute
  197.     permission for files but not directories via the
  198.     "change_exec_perms" command line restriction.
  199.  
  200.   --disable-dired-zip            (prevent defining OK_ZIP)
  201.     Use this option to prevent DirEd from using zip and unzip.
  202.  
  203.   --disable-echo
  204.       Use this option to suppress the "compiling" commands during a build.
  205.     Doing this makes it easier to find and read warning messages.
  206.  
  207.   --disable-extended-dtd        (define NO_EXTENDED_HTMLDTD)
  208.     disable extended HTML DTD logic.  This should revert to old-style
  209.     (2.7.1/2.7.2) behavior, but is not well-tested.
  210.  
  211.   --disable-full-paths
  212.       Use this option to control whether full utility pathnames are used.
  213.     By default, configure substitutes full pathnames.
  214.  
  215.   --disable-long-list            (prevent defining LONG_LIST)
  216.       Use this option to disable long "ls -l" directory listings.
  217.  
  218.   --disable-parent-dir-refs        (define NO_PARENT_DIR_REFERENCE)
  219.       Use this option to disable "Up-to" parent-links in directory listings.
  220.  
  221.   --enable-8bit-toupper            (define EXP_8BIT_TOUPPER)
  222.     Use experimental 8-bit case-conversion, e.g., for case-insensitive
  223.     searches in non-ASCII display character set, this overrides locale
  224.     settings.
  225.  
  226.   --enable-color-style            (define USE_COLOR_STYLE)
  227.       Use this option to enable optional and *experimental* color style.
  228.     (Also defines USE_HASH, LINKEDSTYLES)
  229.  
  230.   --enable-debug            (The symbol DEBUG is always defined.)
  231.       Use this option to compile-in support for debugging.
  232.  
  233.   --enable-default-colors        (define USE_DEFAULT_COLORS)
  234.       enable use of default-color background (ncurses/slang).  Either
  235.     configuration supports the use of 'default' for colors even without
  236.     this option.
  237.  
  238.   --enable-externs            (define USE_EXTERNALS)
  239.     Use this option to enable external application support. (See lynx.cfg.)
  240.  
  241.   --enable-find-leaks            (define LY_FIND_LEAKS)
  242.     Use this option to compile-in logic for testing memory leaks.
  243.  
  244.   --enable-font-switch            (define EXP_CHARTRANS_AUTOSWITCH)
  245.     Allow Lynx to automatically change the Linux console state (switch
  246.     fonts) according to the current Display Character Set.  (Linux console
  247.         only.  *Use with discretion.*  See docs/README.chartrans.)
  248.  
  249.   --enable-internal-links        (define DONT_TRACK_INTERNAL_LINKS)
  250.     Disabled by default, this option allows tracking of internal links,
  251.     a feature which could, however, compromise a secure transaction by
  252.     forcing inappropriate resubmission of form content.
  253.  
  254.   --enable-nsl-fork            (define NSL_FORK)
  255.     Use this option to allow NSL requests to be aborted at will.
  256.  
  257.   --enable-partial            (define DISP_PARTIAL)
  258.     Use experimental code that lets Lynx display parts of a long page
  259.     while loading it.
  260.  
  261.   --enable-underlines            (define UNDERLINE_LINKS)
  262.     Use this option underline links rather than using boldface.
  263.  
  264.   --enable-warnings
  265.     Use this option to turn on GCC compiler warnings.
  266.  
  267.   --libdir                (affect LYNX_CFG_FILE)
  268.     Defines the location where you want the lynx.cfg file installed.
  269.     The configure script defines the symbol LYNX_CFG_FILE to correspond
  270.     with the $libdir environment variable.  (For platforms which do not
  271.     support a configure script, such as MS-DOS, Win32 and VMS, you must
  272.     edit userdefs.h if you wish to specify the location of lynx.cfg).
  273.  
  274.   --with-screen=XXX
  275.     Use this option to select the screen type.  The option value,
  276.     XXX must be one of curses (the default), ncurses or slang.
  277.     Specifying a screen type causes the configure script to look in
  278.     standard locations for the associated header and library files,
  279.     unless you have preset the $CFLAGS and $LIBS variables.
  280.  
  281.     --with-screen=ncurses        (define NCURSES)
  282.     --with-screen=slang        (define USE_SLANG)
  283.  
  284.    --with-zlib                (define USE_ZLIB)
  285.     Use zlib for decompression of some gzip files.
  286.  
  287. 1d. Environment variables
  288.     The configure script looks for programs and libraries in known/standard
  289.     locations.  You can override the behavior of the script by presetting
  290.     environment variables.  If they are set, the script will try to use these
  291.     values rather than computing new ones.  Useful variables include:
  292.  
  293.     CC - the C compiler.  If you do not override this, configure
  294.         will try to use gcc.
  295.  
  296.     CFLAGS - the C compiler options.  These also include C
  297.         preprocessor options (such as -I), since the $CFLAGS and
  298.         $CPPFLAGS variables are maintained separately.
  299.  
  300.     CPPFLAGS - the C preprocessor options.  For some configuration
  301.         tests, you may need to set both $CFLAGS and $CPPFLAGS if
  302.         you are compiling against header files in nonstandard
  303.         locations.
  304.  
  305.     LDFLAGS - linker/loader options.
  306.  
  307.     LIBS - the libraries to be linked, with -L and -l options.  If
  308.         you are linking against libraries in nonstandard locations
  309.         unrelated to the install prefix (that you can specify in
  310.         the configure script) you may have to specify these via
  311.         the $LIBS variable.
  312.  
  313. -- 1997/7/27 - T. Dickey <dickey@clark.net>
  314.  
  315. 1e. Examples
  316.     If you are compiling Lynx for your personal use and are restricted to your
  317.     home directory, a simple method for building would be to choose some
  318.     directory, say ".lynx", and then type:
  319.  
  320.     ./configure --prefix=~/.lynx --exec-prefix=~/.lynx
  321.     and
  322.     make install
  323.  
  324.     Now you only need to add "~/.lynx/bin" to your PATH and edit "~/.lynx/lib/
  325.     lynx.cfg" as described above.
  326.  
  327.     I personally use the following csh shell script to set environment
  328.     variables and configure options rather than type them each time.
  329.     setenv RESOLVLIB -lbind
  330.  
  331.     #!/bin/csh -f
  332.     setenv CPPFLAGS "-SYSLOG_REQUESTED_URLS -I$HOME/slang \
  333.         -I$HOME/.usr/include"
  334.     setenv LIBS "-L$HOME/.slang/lib -L$HOME/.usr/lib"
  335.     ./configure --exec-prefix=$HOME --bindir=$HOME/.lynx \
  336.         --mandir=$HOME/.usr/man --libdir=$HOME/.usr/lib \
  337.         --with-screen=slang --with-zlib
  338.  
  339.     The syntax for setting environment variables depends upon your shell.  I
  340.     use the libbind.a resolver library, not libresolv.a.  Setting RESOLVLIB to
  341.     -lbind defines this environment variable for `make', and thus must be set
  342.     in the same shell that `make' will be run.  CPPFLAGS in this example
  343.     predefines SYSLOG_REQUESTED_URLS for the configure script, since it is not
  344.     defined by default, and has no option switch (see "docs/README.defines").
  345.     CPPFLAGS also defines the full path to the slang and zlib header files,
  346.     which are not kept in standard directories.  Likewise, LIBS defines the
  347.     nonstandard locations of libslang.a and libz.a.  Setting the option
  348.     --bindir tells the configure script where I want to install the lynx
  349.     binary; setting --mandir tells it where to put the lynx.1 man page, and
  350.     setting --libdir tells it (while at the same time defining LYNX_CFG_FILE)
  351.     where to put the configuration file "lynx.cfg", when I type "make install".
  352.     The --with-screen=slang and --with-zlib options are explained above.
  353.  
  354. 2. Manual compile
  355.     If auto-configure does not work for you, or you prefer to compile
  356.     Lynx manually, "docs/Makefile.old" will serve as a template for the
  357.     top-level Makefile, and instructions on how to compile are given in
  358.     "docs/INSTALLATION.old".
  359.  
  360.  
  361. III. Compile instructions -- VMS
  362.  
  363. Step 1.  Downloading binary files.
  364.     Lynx must handle all IO as streams, and on VMS, output files are always
  365.     created with Stream_LF format via the C RTL's fopen().  The file headers
  366.     indicate Implied Carriage Control, even when the transfer was in binary
  367.     mode, which can confuse downloading software and cause corruption of
  368.     the file contents.  To deal with this, you should define the symbol
  369.     USE_FIXED_RECORDS as TRUE in userdefs.h and/or lynx.cfg.  This will
  370.     instruct Lynx to correct the header information to indicate FIXED 512
  371.     records, with No Implied Carriage Control.  If Lynx fails to do the
  372.     conversion (because the file wasn't mapped to a binary MIME type) you can
  373.     execute FIXED512.COM externally to correct the header information.  The
  374.     command file uses Joe Meadow's FILE utility, or the SET FILE/ATTRIBUTES
  375.     command on current versions of VMS, to modify the headers.  See the
  376.     comments in FIXED512.COM, userdefs.h and lynx.cfg for more information.
  377.  
  378. Step 2.  Passive FTP
  379.     If your system requires the PASV FTP code instead of the standard
  380.     PORT FTP code (e.g., to deal with a firewall) then edit "WWW/Library/
  381.     Implementation/HTFTP.c" and comment out line 43 like so:
  382.              /*  #define LISTEN   /* @@@@ Test LJM */.
  383.  
  384. Step 3a.
  385.     Lynx uses the VMS port of gzip for uncompressing streams which have
  386.     Content-Encoding headers indicated compression with gzip or the
  387.     Unix compress.  If you do not have gzip installed on your system
  388.     you can get it from "ftp://ftp.wku.edu/" in the fileserv directory.
  389.     The command Lynx uses to uncompress on VMS is "gzip -d".
  390.  
  391.     If you are using the SOCKETSHR library, read SOCKETSHR.announce and
  392.     make sure you have defined SOCKETSHR and SOCKETSHR_LIBRARY as explained
  393.     therein.
  394.  
  395.     A "build.com" and "build-slang.com" script for building Lynx with curses
  396.     or slang is in the top level directory.  All you have to do is type
  397.     "@build" or "@build-slang" and answer its prompt for your system's TCP-IP
  398.     software.  Current choices are:
  399.            MULTINET (default)
  400.        UCX
  401.        WIN_TCP
  402.            CMU_TCP
  403.        SOCKETSHR_TCP
  404.        TCPWARE
  405.     It will autosense whether you have VAXC, DECC or GNUC on VAX or AXP and
  406.     build appropriately.  If a WWWLib already exists for that TCP-IP software,
  407.     it will prompt you for whether you want to rebuild it.  If you want to
  408.     build a WWWLib separately, you can type "@libmake.com" with your default
  409.     directory set to [.WWW.Library.vms] instead doing it via "build.com" in
  410.     the top directory.  You may need to modify "build-slang.com", as described
  411.     in its header, so that it can find slang.olb on your system.  If you have
  412.     both DECC and VAXC, it will use DECC to benefit from the newer and more
  413.     efficient memory management functions.
  414.  
  415. Step 3b.  (optional compilation method)
  416.     If you have and want to use MMS, read the header of descrip.mms in the
  417.     top directory and be sure you include the appropriate macro definitions
  418.     when you invoke it:
  419.  
  420.     $ MMS /Macro = (MULTINET=1)        for VAXC - MultiNet
  421.     $ MMS /Macro = (WIN_TCP=1)        for VAXC - Wollongong TCP/IP
  422.     $ MMS /Macro = (UCX=1)            for VAXC - UCX
  423.     $ MMS /Macro = (CMU_TCP=1)        for VAXC - OpenCMU TCP/IP
  424.     $ MMS /Macro = (SOCKETSHR_TCP=1)    for VAXC - SOCKETSHR/NETLIB
  425.     $ MMS /Macro = (TCPWARE=1)        for VAXC - TCPWare TCP/IP
  426.  
  427.     $ MMS /Macro = (MULTINET=1, DEC_C=1)    for DECC - MultiNet
  428.     $ MMS /Macro = (WIN_TCP=1, DEC_C=1)    for DECC - Wollongong TCP/IP
  429.     $ MMS /Macro = (UCX=1, DEC_C=1)        for DECC - UCX
  430.     $ MMS /Macro = (CMU_TCP=1, DEC_C=1)    for DECC - OpenCMU TCP/IP
  431.     $ MMS /Macro = (SOCKETSHR_TCP=1,DEC_C=1) for DECC - SOCKETSHR/NETLIB
  432.     $ MMS /Macro = (TCPWARE=1, DEC_C=1)    for DECC - TCPWare TCP/IP
  433.  
  434.     $ MMS /Macro = (MULTINET=1, GNU_C=1)    for GNUC - MultiNet
  435.     $ MMS /Macro = (WIN_TCP=1, GNU_C=1)    for GNUC - Wollongong TCP/IP
  436.     $ MMS /Macro = (UCX=1, GNU_C=1)        for GNUC - UCX
  437.     $ MMS /Macro = (CMU_TCP=1, GNU_C=1)    for GNUC - OpenCMU TCP/IP
  438.     $ MMS /Macro = (SOCKETSHR_TCP=1,GNU_C=1) for GNUC - SOCKETSHR/NETLIB
  439.     $ MMS /Macro = (TCPWARE=1, GNU_C=1)    for GNUC - TCPWare TCP/IP
  440.  
  441.     If you just type "MMS" it will default to the MULTINET and VAXC
  442.     configuration.  MMS will build the WWW library and Lynx sources, and
  443.     link the executable.  However, not all of the header dependencies are
  444.     specified.  If you are not a developer, and need a clean build, you
  445.     should use build.com instead of the MMS utility.
  446.  
  447.     If you want SOCKS support on VMS, you must add SOCKS as a compilation
  448.     definition, and the SOCKS library to the link command.  However, instead
  449.     of SOCKSifying Lynx for use behind a firewall, you are better off if you
  450.     build Lynx normally, and set up Lynx to use a proxy server (see below).
  451.     You instead can SOCKSify the proxy server, and it will handle all clients,
  452.     not just Lynx.
  453.  
  454.  
  455. IV. Compile instructions -- Win32 (Windows95/NT)
  456.  
  457.     The original Win32 port was built with Borland C++ 4.52, but later
  458.     versions reportedly can be used.  Before compiling the Lynx sources, you
  459.     need a curses library, and it is recommended that you have the zlib
  460.     library.  Get pdcurses2.3 from "http://www.lightlink.com/hessling/".  I
  461.     have modified it so that mouse support is no longer broken for Lynx (see
  462.     "http://www.fdisk.com/doslynx/").  You will want to get zlib from
  463.     "http://www.cdrom.com/pub/infozip/zlib/".  Compile these libraries, and
  464.     put them in a convenient place (pdcurses inside the Lynx directory).
  465.  
  466.     Unpack the latest Lynx source distribution, and make an obj directory
  467.     under the source root to contain the compile output.  Copy in your
  468.     IDE file.  A sample IDE file and helper libraries are available at
  469.     "http://www.fdisk.com/doslynx/wlynx/source/".
  470.  
  471.     First build the .h files in src\chrtrans using "MAKEW32.BAT".  Double
  472.     check for new .tbl files; hand edit in any new ones, and then do "makew32".
  473.     Jump into Borland C++, load the project (IDE file) and compile Lynx.
  474.     Alternately, after compiling the chartrans tables, you can come back to
  475.     the top directory and compile manually, i.e., do "make -f makefile.w32".
  476.  
  477.     I also have a binary available at "http://www.fdisk.com/doslynx/".  This
  478.     binary was compiled with pdcurses 2.3, hacked so win32 mouse support works,
  479.     and with zlib, so Lynx can do gzip routines internally.  More hints and
  480.     information can be found in "http://www.fdisk.com/doslynx/lynxport.htm".
  481.  
  482. -- 1997/10/12 - W. Buttles <lynx-port@fdisk.com>
  483.  
  484.     It is possible to compile under the cygwin32 system, which will allow you
  485.     to use the configure script described above for Unix.  Type, for example,
  486.     "./configure --with-screen=slang --with-libz" in a Dos window running the
  487.     cygwin bash$ shell.  You also have the choice of using either pdcurses or
  488.     slang.  See "http://www.flora.org/lynx-dev/html/month1097/msg00559.html"
  489.     and "http://www.flora.org/lynx-dev/html/month1097/msg00186.html", and other
  490.     messages along those threads.  You will have to make a minor alteration to
  491.     HTTCP.c (change delay to 30 seconds) and modify HTFILE.c (concerning
  492.     getgroups).  You will need a launch program to call helper applications.
  493.  
  494.  
  495. V. Compile instructions -- 386 DOS
  496.  
  497.     Compiling for DOS with DJGPP is a multistep procedure.  First install
  498.     the c compiler and its libraries.  DJGPP, as distributed from the
  499.     usual DJGPP archives, will not successfully compile lynx.  You need to
  500.     "stubedit" your "cc1.exe" file.  The following parameters have worked
  501.     successfully:  minstack=800k, bufsize=64k.  To accomplish this, move to
  502.     the djgpp\bin directory and type the command:
  503.         "stubedit cc1.exe bufsize=64k minstack=800k".
  504.     Or do it interactively with the command: "stubedit cc1.exe".
  505.     (see "http://www.flora.org/lynx-dev/html/month0897/msg00145.html").
  506.  
  507.     Unpack the source code using a DOS program like UNZIP386.  If you are
  508.     using PKUNZIP to unpack the .zip archive, you must use the -d command
  509.     line switch to restore the directory structure contained in the archive,
  510.     i.e., do "pkunzip -d lynx-cur.zip".  No switch is required if you use
  511.     unzip386 or unzip.  If you are trying to compile the 386DOS port under a
  512.     Win95/NT DOS shell, be sure to unpack the source with a DOS program so
  513.     that all directories will be adjusted to the DOS 8.3 file format necessary
  514.     for compiling with DJGPP.  Do NOT use Winzip, because that will create
  515.     long filenames that will not be recognized by DJGPP tools.
  516.  
  517.     If you wish to compile with "USE_ZLIB" (recommended), you must have the
  518.     zlib library.  Get the source from "http://www.cdrom.com/pub/infozip/zlib/"
  519.     and compile it.  Put libz.a in the lib subdirectory of DJGPP, and put
  520.     zlib.h and zconf.h in the include subdirectory.
  521.  
  522.     In addition to the files in the Lynx distribution, you will need a
  523.     curses package and a TCP package.  You can use PDCurses (available at
  524.     "http://www.lightlink.com/hessling/") and the DJGPP port of WATTCP
  525.     (available in two different versions at "ftp://neonatal.sm.ic.ac.uk/"
  526.     and in "http://www.fdisk.com/doslynx/wlynx/source/djgpp.zip").
  527.     You can also use slang ("ftp://space.mit.edu/pub/davis/slang") as your
  528.     curses library.  It has not been fully ported to DOS yet, however.
  529.     See "http://www.flora.org/lynx-dev/html/month1097/msg00390.html".  You
  530.     need to compile these before you go any further. If you wish to use the
  531.     beta version of PDCurses 2.3, you need to first apply a patch (available at
  532.     "http://www.flora.org/lynx-dev/html/month0997/msg00441.html").
  533.     Most of the patch has already been applied if you get the latest
  534.     beta version. If you have trouble applying the patch, we recommend
  535.     that you use the "patch" program,
  536.     ("http://www.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/pat25b.zip").
  537.     The WATTCP TCPLIB sources also need to be patched prior to compilation.
  538.     See "http://www.flora.org/lynx-dev/html/month1197/msg00403.html".
  539.  
  540.     To read the Unix man style documentation, use, for example, "less"
  541.     ("http://www.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/lss332b.zip").
  542.     Compile or place your compiled PDCurses library in lynx2-*/curses, and
  543.     compile or place your compiled WATTCP library in lynx2-*/djgpp/tcplib.
  544.  
  545.     Move to the "lynx2-*/WWW/Library/djgpp" directory and do "make".  This
  546.     should compile libwww.a.  Next move to the "lynx2-*/src/chrtrans"
  547.     directory and do "make -f makefile.dos" to compile the character tables.
  548.     Then move to the "lynx2-*/src" directory and do "make -f makefile.dos".
  549.     If all goes well, you will have a lynx.exe file.  If you have trouble,
  550.     check to be sure djgpp.env is the way it came in the original package.
  551.  
  552.     To test Lynx_386 you must have a packet driver installed.  The simplest
  553.     method is to use a null packet driver that just allows Lynx to start up,
  554.     but doesn't do anything else.  One such executable driver has been posted,
  555.     uuencoded, to the lynx-dev mailing list:
  556.     "http://www.flora.org/lynx-dev/html/month0198/msg00057.html".
  557.     Start the dummy packet driver with "nullpkt 0x60", and take it out of
  558.     memory with "nullpkt -u".  You can also use slip8250.com.  See the CRYNWR
  559.     package "http://www.simtel.net/pub/simtelnet/msdos/pktdrvr/pktd11.zip".
  560.     Usage is "slip8250 0x60", but you may have to invoke it as, for example,
  561.     "slip8250  0x60 6 3 0x2F8" so that it uses COM2 and IRQ 3, in order to
  562.     avoid an IRQ conflict with a mouse or some other device.  Another packet
  563.     driver is slipper.exe, which is available from many sites, including
  564.     "ftp://jazz.trumpet.com.au/slipper".  To remove it from memory use
  565.     termin.com (usage "termin 0x60"), available in the CRYNWR package.  To
  566.     connect over a dialup PPP connection you need dosppp or klos' pppshare.
  567.     (Find at "http://www.simtel.net/pub/simtelnet/msdos/pktdrvr/dosppp05.zip"
  568.     and "ftp://ftp.klos.com/demo/pppshare.exe".)
  569.  
  570.     See "http://www.fdisk.com/doslynx/lynxport.htm" for more hints and some
  571.     precompiled libraries.  One problem you can run into is when editing
  572.     userdefs.h and lynx.cfg, which have unix-style end of lines.  You would be
  573.     well advised to use an editor that can handle end of lines terminated with
  574.     a single LF character.  You can also unpack the source code using unzip386
  575.     or unzip with the -a switch to convert unix LF to dos CRLF.  That will make
  576.     texts more readable under DOS.  If you compile lynx regularly, you may
  577.     automate the procedure by creating a batch file such as the following.
  578.  
  579.     cd djgpp\tcplib\obj
  580.     make
  581.     cd ..\..\www\library\djgpp
  582.     make
  583.     cd ..\..\..\src\chrtrans
  584.     make -f makefile.dos
  585.     cd ..\..\..\src
  586.     make -f makefile.dos
  587.     strip lynx.exe
  588.     cd ..
  589.  
  590.     This batch file expects the DJGPP port of WATTCP to be installed in the
  591.     lynx2-* directory.  Place a copy of this batch file, named "djgpp.bat",
  592.     in the lynx2-* directory, move to that directory and type "djgpp".  A more
  593.     complete batch file with error checking and annotation can be found at:
  594.     "http://www.flora.org/lynx-dev/html/month1197/msg00250.html".
  595.  
  596. -- 1997/9/29 - D. Kaufman <dkaufman@rahul.net>
  597. -- 1997/10/3 - B. Schiavo <Wschiavo@concentric.net>
  598.  
  599.  
  600. VI. General installation instructions
  601.  
  602.     Once you have compiled Lynx, test it out on "lynx_help/about_lynx.html".
  603.     You shouldn't need to install Lynx to test it.  Once you are satisfied
  604.     that it works, go ahead and install Lynx.  For Unix, type "make install".
  605.  
  606.     For VMS, you need to have the executable in a public place, make it
  607.     accessible, define it as a foreign command, and copy lynx.cfg to
  608.     "Lynx_Dir".  Look at lynx.com in the samples directory as a model for
  609.     installing Lynx.  To include lynx.hlp in the system HELP library, use
  610.     the command: "$ library/replace sys$help:helplib.hlb lynx.hlp".
  611.  
  612.     Local copies of the Lynx online help should be made accessible in response
  613.     to the Lynx 'h'elp command by defining HELPFILE in userdefs.h and/or
  614.     lynx.cfg to an appropriate file://localhost/path URL.  On Unix, all you
  615.     need to do is type "make install-help."  If you are installing manually,
  616.     copy the files "COPYHEADER" and "COPYING" into the lynx_help directory
  617.     BEFORE moving the lynx_help tree to its final location.  These files are
  618.     referenced hypertextually from help documents.  Find tips for installing
  619.     the help files at "http://www.irm.nara.kindai.ac.jp/lynxdev/README.help".
  620.  
  621.     If you have old, pre-existing bookmark files from earlier versions of
  622.     Lynx, those files may have to be updated.  Conversion may just consist
  623.     of adding one META line near the top, or may require creating new book-
  624.     mark files and editing in bookmarks from outdated files.
  625.  
  626.     IMPORTANT!  Be sure you have read the warnings about setting up an
  627.     anonymous account with Lynx if you plan to give public access to Lynx.
  628.  
  629.     After applying patches or editing files to correct for an unsuccessful
  630.     build, be certain to do a "make clean" (or "make distclean" for those
  631.     using auto-configure) before attempting to compile again.
  632.  
  633.     If something doesn't work, or you can't get Lynx to even compile, or you
  634.     don't understand what one of the defines means, read the PROBLEMS file,
  635.     and the README.defines and *.announce files in the docs subdirectory.
  636.     The docs/CHANGES* files record the entire development history of Lynx
  637.     and are an invaluable resource for understanding how Lynx should perform.
  638.  
  639.     If you still have difficulties, send an email message to the Lynx-Dev
  640.     mailing list (see the README file).  Try to include pertinent information
  641.     about your system, the OS you are using, the name and version of your
  642.     compiler, which curses library you are using and the compile-time errors.
  643.     Be sure to say what version and image-number (alternately the top date
  644.     of the CHANGES file) of Lynx you are trying to build.
  645.  
  646.  
  647. VII. Setting environment variables before running Lynx (optional)
  648.  
  649. 1. Unix and VMS
  650.     To set your site's NTTP server as the default host for news reading
  651.     and posting via Lynx, set the environment variable NNTPSERVER so that
  652.     it points to its Internet address.  The variable "NNTPSERVER" is used
  653.     to specify the host which will be used as the default for news URLs.
  654.  
  655.     UNIX
  656.         setenv NNTPSERVER "news.server.dom"
  657.  
  658.     VMS
  659.         define/system NNTPSERVER "news.server.dom"
  660.  
  661.     The environment variables "ORGANIZATION" or "NEWS_ORGANIZATION", if set,
  662.     will be used for the Organization: header in news postings.  (On Unix,
  663.     Lynx also checks for an /etc/organization file.)
  664.  
  665.     The environment variable "LYNX_CFG", if set, will override the default
  666.     location and name of the global configuration file (lynx.cfg) that was
  667.     defined via the constant "LYNX_CFG_FILE" in userdefs.h.  See userdefs.h
  668.     for more information.
  669.  
  670.     The environment variable "LYNX_TEMP_SPACE", if set, will override the
  671.     default path prefix for temporary files that was defined via the constant
  672.     "TEMP_SPACE" in userdefs.h.  See userdefs.h for more information.
  673.  
  674.     The environment variable "LYNX_SAVE_SPACE", if set, will override the
  675.     default path prefix for files saved to disk that was defined via the
  676.     constant "SAVE_SPACE" in lynx.cfg.  See lynx.cfg for more information.
  677.  
  678.     The variable "WWW_HOME", if set, will override the default startup
  679.     URL specified in any of the configuration files.
  680.  
  681.     Lynx still supports use of gateway servers, with the servers specified
  682.     via the variables "WWW_access_GATEWAY", where "access" is lower case
  683.     and can be "http", "ftp", "gopher" or "wais".  Most of the gateway
  684.     servers have been discontinued, but "http://www.w3.org:8001" is
  685.     available for wais searches (note that you do not include a terminal
  686.     '/' for gateways, but do for proxies; see below).
  687.  
  688.     Lynx version 2.2 and beyond supports the use of proxy servers that can
  689.     act as firewall gateways and caching servers.  They are preferable to
  690.     the older gateway servers.  Each protocol used by Lynx can be mapped
  691.     separately using PROTOCOL_proxy environment variables of the form:
  692.  
  693.         UNIX
  694.                 setenv http_proxy "http://some.server.dom:port/"
  695.                 setenv https_proxy "http://some.server.dom:port/"
  696.                 setenv ftp_proxy "http://some.server.dom:port/"
  697.                 setenv gopher_proxy "http://some.server.dom:port/"
  698.                 setenv news_proxy "http://some.server.dom:port/"
  699.                 setenv newspost_proxy "http://some.server.dom:port/"
  700.                 setenv newsreply_proxy "http://some.server.dom:port/"
  701.                 setenv snews_proxy "http://some.server.dom:port/"
  702.                 setenv snewspost_proxy "http://some.server.dom:port/"
  703.                 setenv snewsreply_proxy "http://some.server.dom:port/"
  704.                 setenv nntp_proxy "http://some.server.dom:port/"
  705.                 setenv wais_proxy "http://some.server.dom:port/"
  706.                 setenv finger_proxy "http://some.server.dom:port/"
  707.                 setenv cso_proxy "http://some.server.dom:port/"
  708.  
  709.         VMS
  710.                 define "http_proxy" "http://some.server.dom:port/"
  711.                 define "https_proxy" "http://some.server.dom:port/"
  712.                 define "ftp_proxy" "http://some.server.dom:port/"
  713.                 define "gopher_proxy" "http://some.server.dom:port/"
  714.                 define "news_proxy" "http://some.server.dom:port/"
  715.                 define "newspost_proxy" "http://some.server.dom:port/"
  716.                 define "newsreply_proxy" "http://some.server.dom:port/"
  717.                 define "snews_proxy" "http://some.server.dom:port/"
  718.                 define "snewspost_proxy" "http://some.server.dom:port/"
  719.                 define "snewsreply_proxy" "http://some.server.dom:port/"
  720.                 define "nntp_proxy" "http://some.server.dom:port/"
  721.                 define "wais_proxy" "http://some.server.dom:port/"
  722.                 define "finger_proxy" "http://some.server.dom:port/"
  723.                 define "cso_proxy" "http://some.server.dom:port/"
  724.                 (Encase *BOTH* strings in double-quotes to maintain
  725.          lower case for the PROTOCOL_proxy variable and for
  726.          the http access type; include /system if you want
  727.          proxying for all clients on your system.)
  728.  
  729.     If you wish to override the use of a proxy server for specific hosts or
  730.     entire domains you may use the "no_proxy" environment variable. Here is
  731.     an example use of "no_proxy":
  732.  
  733.         UNIX
  734.                 setenv no_proxy "host.domain.dom, domain1.dom, domain2"
  735.  
  736.         VMS
  737.                 define "no_proxy" "host.domain.dom, domain1.dom, domain2"
  738.  
  739.     You can include a port number in the no_proxy list to override use
  740.     of a proxy server for the host accessed via that port, but not via
  741.     other ports.  For example, if you use "host.domain.dom:119" and/or
  742.     "host.domain.dom:210", then news (port 119) URLs and/or any wais
  743.     (port 210) searches on that host would be excluded, but http, ftp,
  744.     and gopher services (if normally proxied) would still be included,
  745.     as would any news or wais services on other hosts.
  746.  
  747.     If you wish to override the use of a proxy server completely (i.e.,
  748.     globally override any existing proxy variables), set the value of
  749.     "no_proxy" to "*".
  750.  
  751.     Note that Lynx treats file URLs on the local host as requests for
  752.     direct access to the file, and does not attempt ftp if that fails.
  753.     It treats both ftp URLs and file URLs on remote hosts as ftp URLs,
  754.     and does not attempt direct file access for either.  If ftp URLs are
  755.     being proxied, file URLs on a remote host will be converted to ftp
  756.     URLs before submission by Lynx to the proxy server, so no special
  757.     procedure for inducing the proxy server to handle them is required.
  758.     Other WWW clients may require that the http server's configuration
  759.     file have "Map file:* ftp:*" in it to perform that conversion.
  760.  
  761.     The proxy and no_proxy variables also can be set at run time via
  762.     lynx.cfg.
  763.  
  764. 2. Win32 (95/NT) and 386 DOS (adapted from "readme.txt" by Wayne Buttles)
  765.  
  766.     HOME         Where to keep the bookmark file and personal config files.
  767.     LYNX_CFG     The full path and filename for lynx.cfg
  768.     TEMP or TMP  Bookmarks are kept here with no HOME.  Temp files here.
  769.     TERM         Set TERM=vt100 to stop that annoying terminal type message.
  770.     USER         Tells Lynx you are real instead of an anonymous user(?)
  771.  
  772.     386 version only:
  773.     WATTCP.CFG   Where to find the wattcp.cfg file.
  774.     (Depending on how you compiled libtcp.a, you may have to use WATCONF.)
  775.  
  776.     Define these in your batch file for running Lynx.  For example, if your
  777.     application line is "D:\win32\lynx.bat", lynx.bat may look like:
  778.     @ECHO OFF
  779.     set home=d:\win32
  780.     set temp=d:\tmp
  781.     set lynx_cfg=d:\win32\lynx.cfg
  782.     d:\win32\lynx.exe %1 %2 %3 %4 %5
  783.  
  784.  
  785. VIII. Acknowledgment
  786.  
  787.    Thanks to the many volunteers who offered suggestions for making this
  788.    installation manual as accurate and complete as possible.
  789.  
  790. -- 1998/01/22 - H. Nelson <lynx-admin@irm.nara.kindai.ac.jp>
  791.