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