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