forked from kurtchen/Lynx
-
Notifications
You must be signed in to change notification settings - Fork 1
/
INSTALLATION
1499 lines (1199 loc) · 63.7 KB
/
INSTALLATION
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Lynx Installation Guide
This file describes how to compile and install Lynx. A description of Lynx
can be found in the README file. Lynx has been ported to UN*X, VMS, Win32
and 386DOS. The procedures for compiling these ports are quite divergent
and are detailed respectively in Sections II, III, IV and V. General
installation, problem solving and environment variables are covered in
Sections VI and VII. There is also a PROBLEMS file in the same directory
as INSTALLATION which contains advice for special problems people have
encountered, especially for particular machines and operating systems.
If you still have difficulties, send an e-mail message to the Lynx-Dev mailing
list (see the README file). Try to include information about your system,
the name and version of your compiler, which curses library you are using
and the compile-time errors. Be sure to say what version and image-number
of Lynx you are trying to build (alternately the top date of the CHANGES file).
If you don't understand what one of the defines means, try the README.defines
and *.announce files in the docs subdirectory. The docs/CHANGES* files record
the entire development history of Lynx and are an invaluable resource for
understanding how Lynx should perform.
First, you must configure Lynx for your system regardless of the port you use.
Follow the instructions given immediately below to configure for your system,
and then go to the respective section concerning the port you wish to compile.
-------------------------------------------------------------------------------
I. General configuration instructions (all ports).
Step 1. Compile-time Variables.
There are a few variables that MUST be defined if Lynx is to build
and there are others you may want to change.
Lynx MUST be able to find lynx.cfg at start-up: using configure
(e.g. with UNIX or Cygwin), its location is best set with --sysconfdir ;
you can check in lynx_cfg.h after configure has run, if you wish.
otherwise, you can use LYNX_CFG_FILE in userdefs.h ,
environment variable LYNX_CFG or the -cfg command-line option.
If you are using configure, you need not make any changes in userdefs.h .
There are a few variables you can't define with configure --options
but can define in userdefs.h , e.g. numbering fields as well as links.
Many variables which can be defined with configure or userdefs.h
can also be defined in lynx.cfg or via the Options Menu.
Lynx implements Native Language Support. Read "ABOUT-NLS", if you want
to build an international version of Lynx or tailor status-line prompts,
messages and warnings to the requirements of your site.
Step 2. Run-time Variables.
Read lynx.cfg thoroughly, as many Lynx features and how to use them
are explained there, in some cases ONLY there. Set up local printers,
downloaders, assumed character set, key mapping and colors in lynx.cfg .
Also see the sample mime.types, mailcap and jumps files
in the samples subdirectory.
Step 3. Alternative Character Sets.
You may skip this, if you are not interested in special characters
and all local files or WWW pages you will view will use the ISO-8859-1
"ISO Latin 1" Western European character set.
If you will be running Lynx in an environment with different incompatible
character sets, configure CHARACTER_SET (the Display character set)
and ASSUME_LOCAL_CHARSET to work correctly before creating bookmark files
and other such items: read lynx.cfg for detailed instructions.
Additional character sets and their properties may be defined with tables
in the src/chrtrans directory: see the README.* files therein.
Step 4. News.
Set NNTPSERVER in lynx.cfg to your site's NNTP server
or set the environment variable externally. For posting to be enabled,
NEWS_POSTING must be TRUE in userdefs.h or lynx.cfg.
Also define LYNX_SIG_FILE in userdefs.h or lynx.cfg ,
so that it points to users' signature files for appending to messages.
Step 5. Anonymous Accounts *** VERY IMPORTANT!!!!! ***
If you are building Lynx for personal use only, you can skip this.
If you are setting up anonymous accounts to use Lynx captively,
i.e. making Web access publicly available to users who should not
be allowed any other type of access to your system,
you are STRONGLY advised to use the -anonymous command-line option:
if you do not use this option, users may be able to gain access
to all readable files on your machine!
Many implementations of telnetd allow passing of environment variables,
which might be used to modify the environment in anonymous accounts,
allowing mischief or damage by malicious users, so make sure the wrapper
uses the -cfg and -homepage switches to specify lynx.cfg and start-file,
rather than relying on variables LYNX_CFG, LYNX_CFG_FILE and WWW_HOME.
-------------------------------------------------------------------------------
II. Compile instructions -- UNIX
1a. Auto-configure. The auto-configure script uses autoconf2.13 to generate a
Bourne shell script, configure, which creates "makefile" and "lynx_cfg.h".
If you are on a UNIX platform, the easiest way to build Lynx is to type:
./configure
and
make
NOTE: Configure has a number of useful options. Please see below.
NOTE: The 'configure' script generates auxiliary files "config.status"
"config.cache" and "config.log". Normally you will not notice these;
they are created automatically and removed by a "make distclean".
+ If you wish to rebuild Lynx with a new host, or change ANY of the
parameters which are stored in config.cache, you MUST first remove
the config.cache file before running configure; its options do NOT
override the settings in that file.
+ The config.status file is a script which creates (or regenerates)
the files created by the configure script.
Please report problems in the configure/make process by including a copy
of config.status, config.cache and config.log, as well as the pertinent
compiler diagnostics.
See the note in aclocal.m4 for special instructions if you must modify the
configure script.
NOTE: Lynx is a curses-based application, so you must have a curses
library available to link to. Native curses (on the system when it was
installed) are often broken, so you may get superior performance if you
have either
"ncurses" ("ftp://ftp.invisible-island.net/ncurses") or
"slang" ("ftp://space.mit.edu/pub/davis/slang").
If you install these libraries in your home directory or a non-default
location, you may need to set the CPPFLAGS (full path to include files) and
LIBS (full path to library files) environment variables BEFORE running
configure. See "1d. Environment". Use the "--with-screen=ncurses" or
"--with-screen=slang" option.
Note that while lynx will build with a variety of versions of curses and
ncurses, some will be less satisfactory. Versions of ncurses before
1.9.9g will not render color properly. Some other versions of curses do
not display color at all. Likewise, lynx may not build with old versions
of slang, e.g., before 0.99-38, because slang's interfaces change
periodically.
Note compiler/system specific problems below. See also:
https://invisible-island.net/ncurses/ncurses.faq.html
1b. Platforms. Configure should work properly on any Unix-style system.
It has been tested on the following platforms.
AIX 3.2.5 (cc w/ curses) BeOS 4.5 (gcc w/ ncurses)
CLIX (cc w/ curses & ncurses) DGUX
Digital Unix 3.2C and 4.0 (gcc & cc w/ curses, ncurses & slang)
FreeBSD 2.1.5, 3.1 (gcc 2.6.3 w/ curses & ncurses)
HP-UX (K&R and ANSI cc, gcc w/ curses, ncurses & slang)
IRIX 5.2 and 6.2 (cc & gcc w/ curses, ncurses & slang)
Linux 2.0.0 (gcc 2.7.2 w/ curses, ncurses & slang)
MkLinux 2.1.5 (gcc 2.7.2.1) NetBSD
NEXTSTEP 3.3 (gcc 2.7.2.3 w/ curses)
OS/2 EMX 0.9c (ncurses) SCO OpenServer (cc w/ curses)
Solaris 2.5, 2.6 & 2.7 (cc & gcc w/ curses, ncurses & slang)
SunOS 4.1 (cc w/ curses, gcc w/ ncurses & slang)
OS390 and BS2000.
NOTE: SunOS and HP-UX come with a bundled K&R compiler, which is only
useful for compiling with the bundled curses. Both ncurses and slang
require a compiler that recognizes prototypes.
1c. Options
To get a list of the configure script's options, type "./configure --help".
Below is an alphabetical listing of the Lynx-specific options. The actual
order shown by the -help option is different. See "docs/README.defines"
for information on defines for which there are no option switches.
--datadir
Defines the location where you want the documentation files installed.
The configure script constructs makefile actions to install lynx.cfg
modified to reflect this in the HELPFILE setting. (For platforms which
do not support a configure script, such as MS-DOS, Win32 and VMS, you
must edit lynx.cfg).
--disable-addrlist-page (prevent defining USE_ADDRLIST_PAGE)
Turn off code that displays an alternative list-page, bound to 'A'
rather than 'l', which always lists URLs rather than titles.
--disable-alt-bindings (prevent defining USE_ALT_BINDINGS)
Compiles-in an alternative set of line-edit bindings, in addition
to the default bindings.
--disable-bibp-urls (define DISABLE_BIBP)
Disable (do not compile code) support for bibp: URLs.
--disable-cjk (define CJK_EX)
Disable logic for supporting CJK documents.
--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-japanese-utf8 (define USE_JAPANESEUTF8_SUPPORT)
use Japanese UTF-8 logic, which uses iconv to convert pages with
charset euc-jp, shift_jis to utf-8.
--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-chinese-utf8 (define EXP_CHINESEUTF8_SUPPORT)
use Chinese UTF-8 logic, which uses iconv for converting pages with
charset gb2312 (aliased to euc-cn), big5 to utf-8. The Korean charset
euc-kr happens to work with this setting.
--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-kbd-layout (define EXP_KEYBOARD_LAYOUT)
Disabled by default, this option allows you to use translation
tables on the input keystrokes. Current tables include
ROT13'd keyboard layout
JCUKEN Cyrillic, for AT 101-key kbd
YAWERTY Cyrillic, for DEC LK201 kbd
--enable-local-docs
On install, modify link from help-page to point to the local
doc-directory, e.g., with README files. Normally this points
to the current release directory.
--enable-nested-tables (define EXP_NESTED_TABLES)
Extends TRST to format nested tables, as well as be smarter about
<BR> and <P> tags in table cells.
--enable-nls (several definitions)
use Native Language Support (i.e., gettext).
This relies upon external programs (msgfmt and xgettext) to format
the message catalogs:
+ Unless you set the environment variables MSGFMT and XGETTEXT to
the full pathnames of these utilities, the configure script will
search for the GNU versions of these utilities.
It will also search for the GNU version of the corresponding
gettext() runtime function. On some platforms (such as Solaris),
this search gives misleading results.
+ If you set those environment variables to full pathnames, the
configure script will warn if they are not the GNU versions of
the utilities.
--enable-nsl-fork (define NSL_FORK)
Disabled by default, this allows interruption of NSL requests,
so that `z' will stop the `look-up' phase of a connection.
--enable-stdnoreturn (define HAVE_STDNORETURN_H)
Check for C11 _Noreturn feature, using that rather than gcc-specific
__attribute__((noreturn)), to improve compiler diagnostics.
--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-wcwidth-support (define EXP_WCWIDTH_SUPPORT)
use experimental wcwidth/UTF-8 logic.
--enable-widec
Use this option to allow the configure script to look for wide-curses
features. If you do not specify the option, the configure script
will look for these features if --with-screen=ncursesw is given.
For this release of Lynx, we recommend the ncursew library built from
ncurses 5.5.
--sysconfdir (affect LYNX_CFG_FILE)
Defines the location where you want the lynx.cfg file installed.
The configure script defines the symbol LYNX_CFG_FILE to correspond
with the $sysconfdir environment variable. (For platforms which do not
support a configure script, such as MS-DOS, Win32 and VMS, you must
edit userdefs.h if you wish to specify the location of lynx.cfg).
--with-Xaw3d
This option allows you to specify the X libraries used if you
are configuring lynx to use PDCurses on a Unix platform.
--with-XawPlus
This option allows you to specify the X libraries used if you
are configuring lynx to use PDCurses on a Unix platform.
--with-build-cc=XXX
If cross-compiling, specify a host C compiler, which is needed to
compile a utility which generates tables for lynx.
If you do not give this option, the configure script checks if the
$BUILD_CC variable is set, and otherwise defaults to gcc or cc.
--with-build-cpp=XXX
This is unused by lynx.
--with-build-cflags=XXX
If cross-compiling, specify the host C compiler-flags. You might need
to do this if the target compiler has unusual flags which confuse the
host compiler.
--with-build-cppflags=XXX
If cross-compiling, specify the host C preprocessor-flags. You might
need to do this if the target compiler has unusual flags which confuse
the host compiler.
--with-build-ldflags=XXX
If cross-compiling, specify the host linker-flags. You might need to
do this if the target linker has unusual flags which confuse the host
compiler.
--with-build-libs=XXX
If cross-compiling, the host libraries. You might need to do this if
the target environment requires unusual libraries.
--with-bzlib[=XXX] (define USE_BZLIB)
Use libbz2 for decompression of some bzip2 files.
The optional value XXX specifies the directory in which the library
can be found, and may be either the path of the "lib" directory,
or one level above. In either case, the corresponding header files
are assumed to be in the parallel "include" directory.
--with-charsets=list (define ALL_CHARSETS)
Limit the number of charsets that are compiled-in to the specified
list of comma-separated MIME names.
--with-cfg-file (define LYNX_CFG_FILE)
Specify the default configuration file's name. Use --without-cfg-file
to force the user to specify the configuration file on the command
line. The filename can be overridden by using the LYNX_CFG environment
variable.
--with-cfg-path (define LYNX_CFG_PATH)
Specify the default configuration file(s) directory search-list. Use
--without-cfg-path to limit this to the location of the lynx.cfg file.
The search-list can be overridden using the LYNX_CFG_PATH environment
variable.
--with-curses-dir
Specify directory under which curses/ncurses is installed. This
assumes a standard install, e.g., with an include and lib subdirectory.
--with-dbmalloc
use Conor Cahill's dbmalloc library
--with-destdir=XXX
set DESTDIR variable in makefiles. This is prefixed to all directories
in the actual install, but is not really part of the compiled-in or
configured directory names. It is convenient for packaging the
installed files. If you do not provide the option, the configure
script uses your $DESTDIR environment variable.
--with-dmalloc
use Gray Watson's dmalloc library
--with-gnutls[=XXX] (define USE_SSL, USE_GNUTLS_INCL)
Use this option to configure with the GNU TLS library.
See docs/README.ssl for additional information.
The optional value XXX specifies the directory in which the library
can be found, and may be either the path of the "lib" directory,
or one level above. In either case, the corresponding header files
are assumed to be in the parallel "include" directory. The default
is /usr/local/gnutls.
See the "--enable-gnutls-compat" option.
--with-included-gettext
not supported in this package. The configure script uses macros which
are bundled together with more useful features.
See the "--enable-nls" option.
--with-libiconv-prefix=DIR
search for libiconv in DIR/include and DIR/lib
--with-lss-file{=path} (define LYNX_LSS_FILE)
Specify the default style-sheet file's name. Use --without-lss-file
to make the default behavior match the non-color-style (if no --lss
option is given, and no COLOR_STYLE setting is in lynx.cfg).
--with-mime-libdir=list (define MIME_LIBDIR)
Use this option to specify the system directory containing the
mime.types and mailcap files.
--with-neXtaw
This option allows you to specify the X libraries used if you
are configuring lynx to use PDCurses on a Unix platform.
--with-nls-datadir=DIR
Use this option to override the configure script's NLS data directory,
under which the locale (i.e., language) files are installed. The
default value is derived at configure time, and depends on whether GNU
or native gettext is used.
--with-nss-compat[=XXX] (define USE_NSS_COMPAT_INCL)
Use this option to configure with the NSS library's OpenSSL-compatible
interface.
See docs/README.ssl for additional information.
The optional value XXX specifies the directory in which the library
can be found, and may be either the path of the "lib" directory,
or one level above. In either case, the corresponding header files
are assumed to be in the parallel "include" directory.
--with-pkg-config[=XXX]
Use pkg-config, if available, to tell how to build with certain
libraries, e.g., openssl and gnutls. If pkg-config is not used,
or if those libraries are not known to pkg-config, then the configure
script will search for the libraries as described in the --with-ssl
and --with-gnutls options.
The optional value XXX specifies the pathname for pkg-config, e.g.,
"/usr/local/bin/pkg-config".
Note: The pkg-config program is used only if no explicit directory
parameter is provided for the --with-ssl or --with-gnutls options.
--with-screen=XXX
Use this option to select the screen type. The option value, XXX
must be one of curses (the default), ncurses, ncursesw, pdcurses or
slang. Specifying a screen type causes the configure script to
look in standard locations for the associated header and library
files, unless you have preset the $CFLAGS and $LIBS variables.
--with-screen=ncursesw (define NCURSES, WIDEC_CURSES)
--with-screen=ncurses (define NCURSES)
--with-screen=pdcurses (define PDCURSES)
--with-screen=slang (define USE_SLANG)
Note that some systems may have a default curses library which
does not support color, while on others, ncurses is installed as
the curses library. The variant ncursesw is the wide-character
version of ncurses. See also the --enable-widec option.
For the ncurses/ncursesw options, the script also accepts variants
such as "ncursesw6", which helps it to find a specific ncurses config
script.
The pdcurses selection supported by the configure script is a UNIX-only
library which uses X11. If you are configuring with DJGPP, the likely
choice is "curses", since that is how PDCurses is normally installed.
--with-socks[=XXX] (define SOCKS)
Use this option to configure with the socks library.
The optional value XXX specifies the directory in which the library
can be found, and may be either the path of the "lib" directory,
or one level above. In either case, the corresponding header files
are assumed to be in the parallel "include" directory.
--with-socks5[=XXX] (define USE_SOCKS5, SOCKS)
Use this option to configure with the socks5 library.
The optional value XXX specifies the directory in which the library
can be found, and may be either the path of the "lib" directory,
or one level above. In either case, the corresponding header files
are assumed to be in the parallel "include" directory.
If you make a SOCKSified lynx, you may have trouble accessing FTP
servers. Also, instead of SOCKSifying lynx for use behind a firewall,
you are better off if you make it normally, and set it up to use a
proxy server. You can SOCKSify the proxy server, and it will handle
all clients, not just Lynx. If you do SOCKSify lynx, you can turn off
SOCKS proxy usage via a -nosocks command line switch.
--with-ssl[=XXX] (define USE_SSL)
Use this option to configure with the OpenSSL library, or SSLeay.
See docs/README.ssl for additional information.
The optional value XXX specifies the directory in which the library
can be found, and may be either the path of the "lib" directory,
or one level above. In either case, the corresponding header files
are assumed to be in the parallel "include" directory.
--with-system-type=XXX
For testing, override the derived host system-type which is used to
decide things such as special compiler options. This is normally
chosen automatically based on the type of system which you are
building on. We use it for testing the configure script.
--with-textdomain[=XXX] (define NLS_TEXTDOMAIN)
Set the NLS textdomain to the given value. This is normally "lynx".
--with-zlib[=XXX] (define USE_ZLIB)
Use zlib for decompression of some gzip files.
The optional value XXX specifies the directory in which the library
can be found, and may be either the path of the "lib" directory,
or one level above. In either case, the corresponding header files
are assumed to be in the parallel "include" directory.
1d. Environment variables
The configure script looks for programs and libraries in known/standard
locations. You can override the behavior of the script by presetting
environment variables. If they are set, the script will try to use these
values rather than computing new ones. Useful variables include:
CC - the C compiler. If you do not override this, configure
will try to use gcc. For instance, setting CC=cc and
exporting this value will cause configure to use cc instead.
CFLAGS - the C compiler options. These also include C
preprocessor options (such as -I), since the $CFLAGS and
$CPPFLAGS variables are maintained separately.
CPPFLAGS - the C preprocessor options. For some configuration
tests, you may need to set both $CFLAGS and $CPPFLAGS if
you are compiling against header files in nonstandard
locations.
LDFLAGS - linker/loader options.
LIBS - the libraries to be linked, with -L and -l options. If
you are linking against libraries in nonstandard locations
unrelated to the install prefix (that you can specify in
the configure script) you may have to specify these via
the $LIBS variable.
Lynx has compiled-in the pathnames of various programs which it executes.
Normally the full pathnames are given, rather than the program name
alone. These may be preset in the environment by the capitalized version,
e.g., INSTALL for "install". The corresponding internal definitions
are suffixed "_PATH", e.g., "INSTALL_PATH".
-- 1997/7/27 - T. Dickey <[email protected]>
1e. Examples
If you are compiling Lynx for your personal use and are restricted to your
home directory, a simple method for building would be to choose some
directory, say ".lynx", and then type:
./configure --prefix=~/.lynx --exec-prefix=~/.lynx
and
make install
Now you only need to add "~/.lynx/bin" to your PATH and edit "~/.lynx/lib/
lynx.cfg" as described above.
I personally use the following csh shell script to set environment
variables and configure options rather than type them each time.
#!/bin/csh -f
setenv CPPFLAGS "-I$HOME/slang -I$HOME/.usr/include"
setenv LIBS "-L$HOME/.slang/lib -L$HOME/.usr/lib"
./configure --exec-prefix=$HOME --bindir=$HOME/.lynx \
--mandir=$HOME/.usr/man --sysconfdir=$HOME/.usr/lib \
--with-screen=slang --with-zlib
CPPFLAGS in this example defines the full path to the slang and zlib
header files, which are not kept in standard directories. Likewise, LIBS
defines the nonstandard locations of libslang.a and libz.a. Setting the
option --bindir tells the configure script where I want to install the
lynx binary; setting --mandir tells it where to put the lynx.1 man page,
and setting --sysconfdir tells it (while at the same time defining
LYNX_CFG_FILE) where to put the configuration file "lynx.cfg", when I type
"make install". The --with-screen=slang and --with-zlib options are
explained above.
2. Wais support (optional)
To add direct WAIS support, get the freeWAIS distribution from
"ftp://ftp.cnidr.org/pub/NIDR.tools/freewais", and compile it. The
compile process will create the libraries you will need, wais.a and
client.a. Edit the Makefile in the top level directory and add the
library locations under the DIRECT WAIS ACCESS heading. Edit the Makefile
for the WWW Library in "WWW/Library/Implementation/makefile" to point to
the include directory for the freewais distribution. Precompiled
libraries are available for many platforms if you don't wish to compile
one yourself.
-------------------------------------------------------------------------------
III. Compile instructions -- VMS
Step 1. Downloading binary files.
Lynx must handle all IO as streams, and on VMS, output files are always
created with Stream_LF format via the C RTL's fopen(). The file headers
indicate Implied Carriage Control, even when the transfer was in binary
mode, which can confuse downloading software and cause corruption of
the file contents. To deal with this, you should define the symbol
USE_FIXED_RECORDS as TRUE in userdefs.h and/or lynx.cfg. This will
instruct Lynx to correct the header information to indicate FIXED 512
records, with No Implied Carriage Control. If Lynx fails to do the
conversion (because the file wasn't mapped to a binary MIME type) you can
execute FIXED512.COM externally to correct the header information. The
command file uses Joe Meadow's FILE utility, or the SET FILE/ATTRIBUTES
command on current versions of VMS, to modify the headers. See the
comments in FIXED512.COM, userdefs.h and lynx.cfg for more information.
Step 2. Passive FTP
If your system requires the PASV FTP code instead of the standard PORT FTP
code (e.g., to deal with a firewall) then set the FTP_PASSIVE option in
lynx.cfg
Step 3a.
Lynx uses the VMS port of gzip for uncompressing streams which have
Content-Encoding headers indicated compression with gzip or the
Unix compress. If you do not have gzip installed on your system
you can get it from "ftp://ftp.wku.edu/" in the fileserv directory.
The command Lynx uses to uncompress on VMS is "gzip -d".
If you are using the SOCKETSHR library, read SOCKETSHR.announce and
make sure you have defined SOCKETSHR and SOCKETSHR_LIBRARY as explained
therein.
A "build.com" and "build-slang.com" script for building Lynx with curses
or slang is in the top level directory. All you have to do is type
"@build" or "@build-slang" and answer its prompt for your system's TCP-IP
software. Current choices are:
MULTINET (default)
UCX
WIN_TCP
CMU_TCP
SOCKETSHR_TCP
TCPWARE
It will autosense whether you have VAXC, DECC or GNUC on VAX or AXP and
build appropriately. If a WWWLib already exists for that TCP-IP software,
it will prompt you for whether you want to rebuild it. If you want to
build a WWWLib separately, you can type "@libmake.com" with your default
directory set to [.WWW.Library.vms] instead doing it via "build.com" in
the top directory. You may need to modify "build-slang.com", as described
in its header, so that it can find slang.olb on your system. If you have
both DECC and VAXC, it will use DECC to benefit from the newer and more
efficient memory management functions.
Step 3b. (optional compilation method)
If you have and want to use MMS, read the header of descrip.mms in the
top directory and be sure you include the appropriate macro definitions
when you invoke it:
$ MMS /Macro = (MULTINET=1) for VAXC - MultiNet
$ MMS /Macro = (WIN_TCP=1) for VAXC - Wollongong TCP/IP
$ MMS /Macro = (UCX=1) for VAXC - UCX
$ MMS /Macro = (CMU_TCP=1) for VAXC - OpenCMU TCP/IP
$ MMS /Macro = (SOCKETSHR_TCP=1) for VAXC - SOCKETSHR/NETLIB
$ MMS /Macro = (TCPWARE=1) for VAXC - TCPWare TCP/IP
$ MMS /Macro = (MULTINET=1, DEC_C=1) for DECC - MultiNet
$ MMS /Macro = (WIN_TCP=1, DEC_C=1) for DECC - Wollongong TCP/IP
$ MMS /Macro = (UCX=1, DEC_C=1) for DECC - UCX
$ MMS /Macro = (CMU_TCP=1, DEC_C=1) for DECC - OpenCMU TCP/IP
$ MMS /Macro = (SOCKETSHR_TCP=1,DEC_C=1) for DECC - SOCKETSHR/NETLIB
$ MMS /Macro = (TCPWARE=1, DEC_C=1) for DECC - TCPWare TCP/IP
$ MMS /Macro = (MULTINET=1, GNU_C=1) for GNUC - MultiNet
$ MMS /Macro = (WIN_TCP=1, GNU_C=1) for GNUC - Wollongong TCP/IP
$ MMS /Macro = (UCX=1, GNU_C=1) for GNUC - UCX
$ MMS /Macro = (CMU_TCP=1, GNU_C=1) for GNUC - OpenCMU TCP/IP
$ MMS /Macro = (SOCKETSHR_TCP=1,GNU_C=1) for GNUC - SOCKETSHR/NETLIB
$ MMS /Macro = (TCPWARE=1, GNU_C=1) for GNUC - TCPWare TCP/IP
If you just type "MMS" it will default to the MULTINET and VAXC
configuration. MMS will build the WWW library and Lynx sources, and
link the executable. However, not all of the header dependencies are
specified. If you are not a developer, and need a clean build, you
should use build.com instead of the MMS utility.
If you want SOCKS support on VMS, you must add SOCKS as a compilation
definition, and the SOCKS library to the link command. However, instead
of SOCKSifying Lynx for use behind a firewall, you are better off if you
build Lynx normally, and set up Lynx to use a proxy server (see below).
You instead can SOCKSify the proxy server, and it will handle all clients,
not just Lynx.
-------------------------------------------------------------------------------
IV. Compile instructions -- Win32 (Windows95/98/NT)
Borland C:
---------
Simplified:
----------
Sources:
Download the current sources (choose a zip-file) from
https://lynx.invisible-island.net/
and unzip them into a directory where you will build Lynx.
Compiler:
Download the Borland C/C++ 5.51 compiler from
http://forms.embarcadero.com/forms/BCC32CompilerDownload
This is a file named "freecompilertools.exe".
Run that to install the compiler, e.g., in
c:\app\bcc55
Do not install into a directory with spaces in its name, such as
c:\program files
Libraries:
Download these "setup" files from http://gnuwin32.sourceforge.net
libiconv-1.9.2-1.exe (libiconv)
libintl-0.14.4.exe (libintl)
openssl-0.9.8h-1-setup.exe (openssl)
pdcurses-2.6.exe (pdcurses)
zlib-1.2.3.exe (zlib)
Install all of the packages in the same directory, "c:\app\GnuWin32".
A fix is needed in GnuWin32 include/zconf.h: change line reading
#if 1 /* HAVE_UNISTD_H -- this line is updated by ./configure */
to
#ifdef HAVE_UNISTD_H
Prepare import-libraries using Borland's implib program. The ".lib"
files that it uses are a different format than the import libraries
distributed with GnuWin2. From Lynx's source directory run
bcblibs