INSTALLATION 63 KB

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