\documentstyle[rfc,fancyheadings,cerndoc]{cernman}
\lhead[]{June 1993}
\chead{Line-mode guide}
\rhead[June 1993]{}
\lfoot[\thepage]{Berners-Lee}
\rfoot[Berners-Lee]{\thepage}
\cfoot{}
\pagestyle{fancy}
\begin{document}
% First page special
\thispagestyle{plain}
\begin{tabular*}{\textwidth}{@{}l@{\extracolsep{\fill}}r@{}}
Tim Berners-Lee, CERN\\[0.5cm]
\end{tabular*}

\begin{center}
\Large\bf\sf
Line Mode Guide\\[1cm]
\large A Guide to the Line Mode Browser\\[1cm]
\end{center}
% --------------------------------------------------------





\chapter{WWW Line Mode Browser User Guide}This document is a short user's guide
to the WWW Line Mode Browser. It
has been generated automatically
from the online hypertext documentation,
so the considerations "Paper from
Hypertext" below apply.\par 
The Line Mode Browser, called "www",
is a program whoch allows you to
access a wealth of information on
the global internet.   This document
contains details of 
\begin{itemize}
\item How to use www if you have it
\item How to customize www for your site
\item How to install www if you don't have
it
\end{itemize}Technical details of how www works,
including protocols and data formats,
are not covered here but in the online
documentation and other printed manuals.





\section{About documents generated from hypertext}Paper manuals generated from hypertext
are made for convenience, for example
for reading when one has no computer
to turn to.  We have tried to make
the hypertext into fairly conventional
paper documents, but they may seem
a little strange in some ways.\par 
All the links have been removed.
Therefore, it is worth looking at
the table of contents to see what
there is in the manual.  Something
which is not explained in place may
be explained in detail elsewhere.\par 
We have tried to keep related matter
together, but sometimes necessarily
you might have to check the table
of contents to find it.\par 
Please remember that these are for
the most part "living documents".
That is, they are constantly changing
to reflect current knowledge. If
you see a statement such as "Product
xxx does not support this feature",
remember that it was the case when
the document was generated, and may
not be the same now.   So if in doubt,
check the online version. Of course,
the living document may be out of
date too, in which case it is helpful
to mail its author.
Tim BL






\chapter{WWW Line Mode Browser}The World-Wide Web line-mode browser
allows you to find information by
following references and/or by using
keywords.\par 
References are numbers in \lbrack brackets\rbrack 
after particular phrases. Type the
number and RETURN for more information
on the phrase.\par 
Some documents are indexes. These
contain little text, but allow you
to search for information with keywords.
Type "find" or "f" (space) and the
keywords. For example, "f sgml examples"
searches the index for items with
keywords SGML and EXAMPLE. You can
only use the "find" command when
it is present in the prompt. You
can omit the "f" if the first keyword
doesn't conflict with existing commands
.\par 
Futher information:  command line
syntax , shortcuts , installation
, customization , deeper details
.\par 
Please send any bugs and suggestions
to www-bug@info.cern.ch.
Tim BL






\section{Line Mode Browser Status}This program gives WWW readership
to anyone with a dumb terminal. Although
it cannot be as flashy as a windows
implementation, it  covers a wide
class of users who do still not have
window facilities.
\begin{DL}{allow this much space}
\item[Authors
] NP , TBL
\item[Status:
] Undergoing steady feature
addition, but basically stable. Try
it by telnet info.cern.ch (no user
or password)
\item[Platforms
] Almost anything. All unix
systems, VMS with any flavour of
TCP/IP, VM/CMS, PC (any reasonable
socket library), MVS, (even the Mac).
\item[Next target:
] See features list for
ongoing history. 
\item[More information:
] User Documentation
, Prioritzed list of things to be
done , Internals .
\end{DL}








\section{Command line syntax}The syntax is:
\begin{verbatim}
		www [options]  [docaddress [keywords]]

\end{verbatim}
With no arguments, the www shell
command allows you to browse from
the system default page, /usr/local/lib/WWW/default.html.\par 
Options should be specified before
other arguments. Currently available
options are:-
\begin{DL}{allow this much space}
\item[-n 
]Non-interactive mode.  Outputs
the formatted document to the standard
output, then exits.  Pages are delimited
with form feed (FF) characters.
\item[-
] A minus sign with no trailing characters
indicates that the program will accept
HTML format input from the standard
input. This allows www to be used
as a filter from html to plain text
for example. Relative links in the
input are parsed as though the address
of the document was that of the home
page (or  docaddress if specified).
Implies non-interactive mode.
\item[-listrefs
] Implies non-interactive.
Adds a list of the addresses of all
documents references to the end.
\item[-pn
] where n is a number, specifies
the page length. Without a number,
makes the page length infinite. Default
is 24. 
\item[-r file
]Rule file (configuration file).
 If this is specified, a rule file
may be used to map URLs, and to set
up other aspects of the behaviour
of the browser.  Many rule files
may be given with successive -r options.
 One rule file name may be given
using the WWW\_CONFIG  environment
variable.
\item[-source
] Display the original source
of a document instead of parsing
it. Has effect for HTML from w3 servers,
and news articles. (v1.2a or later)
\item[-v
] Verbose mode: Gives a running
commentary on the program's attempts
to read data in various ways.
\item[-wn
] where n is a number, specifies
the page width in columns. The default
is 78, 79 or 80 depending on the
system. (v1.0 or later)
\item[-na
] Hides anchor positions in the
text. Useful, when printing out the
document.
\item[-a  format
] Specifies the printf-style
format string to be used when printing
references. Must contain the two
characters "\%d" where the numbers
should occur.  Be sure to escape
or quote any special characters you
use.  For example under unix:
\end{DL}

\begin{verbatim}
				www -a \<%d\>
				www -a " (Type %d)"

\end{verbatim}

\begin{DL}{allow this much space}
\item[-version
] Prints out the version number
of the software, and the version
number of the WWW library, and exits.
\end{DL}
If present, the next argument (docaddress)
is the hypertext address , of  the
document at which you want to start
browsing. You may want to define
an alias for www followed by name
of your favourite index.\par 
Any further command line arguments
are taken as keywords. The first
argument must refer to an index in
this case. The index is searched
for entries matching the keywords,
and a list of matching entries is
displayed.
Tim BL







\section{Commands}The following commands are available
at the prompt within www . Some are
disabled when not applicable. All
commands may be abbreviated. Case
is not significant.
\begin{DL}{allow this much space}
\item[Help
] Gives a list of available commands
depending on the context, the version
number of the www program, and the
hypertext address , (or UDI) of the
document you are reading.
\item[Manual
]Jumps directly to the master
source of the online manual.
\item[$<$Return$>$
] Just hitting Return displays
the next page of the current document.
\item[$<$number$>$
] Typing a number by itself
follows the corresponding reference
from the currently displayed document.
\item[Find $<$keywords$>$
] Queries the current
index with the supplied keywords
(separated by blanks). The interpretation
of the keywords depends on the particular
information server you're looking
at. In most cases, it will search
a database for entries matching the
keywords, and will display the results
with possibly links to further details.
For more complex queries, instructions
should be present in the cover page.
The "Find" command can be omitted
if the first keyword does not conflict
with another www command.
\item[Back
] Goes back to the document you
were reading before.
\item[Home
] Goes back to the first document
you were reading.
\item[Recall
] Without a parameter, gives
a numbered list of the documents
you have visited.  To select one,
type "Recall" followed by the number.
\item[List
] Gives a numbered list of the
links from the current document,
giving the title of the target documents
(or addresses if no title). To follow
a link, type the number by itself
as above.
\item[Next, Previous
] Goes to the next or
previous document in the list of
pointers from the document that led
to the current one. This is better
explained with an example: suppose
you are reading a document which
looks like a menu, and you want to
read all entries in turn. You first
type "1" to read the first referred
document (by following the first
link), and then you type "next" or
just "n" to read the next one from
the menu, without actually coming
back to the menu and typing "2",
etc.
\item[Go $<$address$>$
] Goes to the document
represented by the given hypertext
address , which is interpreted relatively
to the current document.
\item[Up, Down
] Scrolls up or down one page
in the current document.
\item[Source
] Followed by another command,
causes raw source to be generated
for that command. Useful for printing
postscript files without formatting,
with SOURCE PRINT.  See examples
.
\item[Top, Bottom
] Goes to the top or the
bottom of the current document.
\item[Verbose
] Toggles verbose mode (for
maintenance purposes).
\item[Quit
] Leaves the application.
\end{DL}
On Unix versions, the following extra
commands are available:
\begin{DL}{allow this much space}
\item[Print
] Prints the current document,
without the numbered document references.
A background www is launched to do
that, and its output is piped to
the command defined by the environment
variable WWW\_PRINT\_COMMAND ("lpr"
by default).
\item[$>$ file, $>$$>$ file
] Saves or appends
the current document to the given
file, without the numbered document
references. A background www is launched
to do that.
\item[$|$ command
] Pipes the current document
to the given command, without the
numbered document references. A background
www is launched to do that.
\item[! command
] Executes the given shell
command without leaving www.
\item[CD (or LCD) directory
] Changes the
local working directory. "! cd directory"
won't do this because it applies
to a subshell.
\end{DL}

Tim BL



\subsection{Using the "SOURCE" prefix}Note: Version 1.3 and later.  The SOURCE (S) prefix to a command within
www qualifies the execution of that command.  It make the command
generate raw unformatted text instead of formatting it. Som examples
of use are:
\subsubsection{Printing Poscscript documents}Currently, a postscript document comes up on the screen in its postscript
form.  Printing the display from the screen, formatted, is not a good
idea as the postscript is damages by being formatted. Use with PRInt
to send the document to the printer directly:
\begin{verbatim}			SOURCE PRINT

\end{verbatim}
You must have a postscript printer for this to work.
\subsubsection{Looking at SGML source code}If you want to see the SGML source of a document, prefix the FIND
or jump command with SOURCE.
\begin{verbatim}
			SOURCE > temp.html

\end{verbatim}
saves the current document in a file temp.html.
\begin{verbatim}			SOURCE 1

\end{verbatim}
Follows the first link from the current document, displaying the source
of the destination document.   Note that while the raw data is retrieved
without interpretation, it is formatted for display on your terminal
in this case.
\subsubsection{What it won't do}SOURCE won't change the format of a document already loaded, so SOURCE
by itself won't display the source of the current document.\par 
SOURCE only works for documents from W3 servers and, to a certain
extent, news articles. You can't get original source for for example
file directories.


\section{Shortcuts}To save having always to go through the www default page, you can
use a shortcut to get to an index. On the central CERN nodes for example,
the following shell commands are predefined:
\begin{DL}{allow this much space}
\item[yellow
] The CERN yellow pages telephone directory.
\item[xfind
] The CERN computer center documentation keyword index
\item[vmnews
] The CERN computer centre news service: all news articles, in
reverse chronological order.
\end{DL}
You can search an index which has a shortcut command by giving the
keywords as parameters, e.g.
\begin{verbatim}
			yellow taxes


\end{verbatim}
To make your own shortcuts, you can define your own commands. On Unix
(with csh), use an alias (see VMS equivalent ) :
\begin{verbatim}
			alias  z  www  address

\end{verbatim}
where address is the hypertext address of the document you want to
jump into. You can find the hypertext address of a node from HELP
command when you are in www.\par 
An alternative method uses a shell script.





\subsection{VMS shortcut command}On VMS, to make a shortcut command
, use a symbol:
\begin{verbatim}		$ Z :== 'WWW'  """address"""


\end{verbatim}
substituting Z with the shortcut
command name, and the word "address"
with the actual hypertext address.\par 
Note that you MUST use single quotes
around WWW, and THREE DOUBLE QUOTE
CHARACTERS each side of the address.
(That's DCL syntax for you!)
Tim BL







\chapter{Customizing www}Customizing www 's behaviour is done
with environment variables or their
equivalent.\par 
" Environment variable " is a unix
term. On VMS you should use a logical
name . Under VM/CMS use a global
variable .\par 
You can also customise www by defining
your own "www" command to invoke
www with certain command line options
set, such as the page length. See
also how to make shortcut commands
(aliases) , and how to set up gateways.\par 
A list of things you can customize
with environment variables (or local
equivalents) are as follows:-
\section{WWW\_HOME}The address of the first document
to start with if you run www without
a document name on the command line.
For example, you can set it to
\begin{verbatim}
	    http://info.cern.ch/hypertext/WWW/LineMode/Defaults/default.html

\end{verbatim}
if you want to always use the home
page on the CERN information server.\par 
As the line mode browser is installed,
it comes with a default copy of that
home page, frozen at the time when
the distribution was made. That page
has (right at the bottom) a link
back to the current version on our
server.  If you are installing www
without privileges, you may not be
able to install the home page, and
so you will have to set WWW\_HOME
to point to a local copy of the file,
or to our server.\par 
You can customize www to start at
a page of your choice. You can write
your own page, or use someone else's.
All you have to do is to set the
environment variable WWW\_HOME to
the www address of your preferred
home page. (When you are using www,
you can see what an address looks
like by typing help when you are
reading a document - it tells you
the address of that node).
\section{WWW\_CONFIG}If defined, must be the name of a
local file which contains configuration
information including rules, presentation
recipes, etc.  If  configuration
files are also specified using the
-r option, they are loaded first.
\section{NNTPSERVER}See how to set up the news server's
address .
\section{WWW\_PRINT\_COMMAND}Unix only. A quoted printf-style
format string for the system command
you wish to invoke with the www PRINT
command.  This should contain one
\%s marker where www should put the
name of the document to be printed.
The default is
\begin{verbatim}
			www -n -na -p66 '%s' | lpr

\end{verbatim}
(The single quotes around the \%s
are necessary in case the address
contains shell metacharacters. When
you define this variable, you may
of course have to enclose the whole
thing in double quotes, e.g.
\begin{verbatim}
	setenv WWW_PRINT_COMMAND "www -n -na -p66 '%s' | lpr"
\end{verbatim}

Tim BL



\section{News Server address}To be able to read news, the www program needs the address of a news
server. This is a machine which runs the NNTP protocol.  If you already
use internet news on your site, you will have one of these. There
are several ways you can tell www which news server to use.\par 
Note you may also have your machine enabled as being authorised to
pick up news from the news server by that server's system manager.
\subsection{Exception}
\begin{DL}{allow this much space}
\item[On a NeXT
] The NeXT defaults are read, looking for a value for "NewsHost"
for application name "WorldWideWeb", then for a global default, then
for application named "News". 
\end{DL}

\subsection{All other cases}
\subsubsection{Set an environment variable}You can set the environment variable NNTPSERVER to be the internet
address of the server. You can do this in your .login file. (On VMS,
use a logical name, on  VM/CMS, the CENV globalv table).
\subsubsection{Use a file}The file /usr/local/lib/rn/server will be read if it exists and no
environment variable is defined.  It should contain the single line
containing the name of the news server.  This filename may be overridden
at compile time by defining the SERVER\_FILE symbol to be the quoted
string.
\subsubsection{At compile time}If you are installing www for several people, you can set the default
by defining the variable DEFAULT\_NEWS\_HOST to be the quoted string
of the server name on the command line fo the compilation of the HTNews.c
module  For example, use the option (check your own compiler's command
line syntax)
\begin{verbatim}
			-DDEFAULT_NEWS_HOST="mynewshost.domain"

\end{verbatim}

\subsubsection{Use a domain name alias}If  no other deafult news host is found, the software looks for a
machine with name or alias "news" in the local domain. If your domain
has a single news server which you would like to use as a default,
and the person in charge of the domain name registration agrees, then
make an alias "news" for the server. This will have the managemnt
advantage that the administration can move the news server without
any trouble later.  (This is the way it is done at CERN).


\section{Environment variabales}Under unix, environment variables are used to pass information to
programs to modify how they should run.  They are used for customizing
www for a particular user's requirements.\par 


\subsection{Global Variables under VM/CMS}(These are the equivalent of environment variables under unix.)\par 
 A particular GLOBALV table (CENV) is used to hold the C environment.
The command to set a variable VVVV to a value XXXX is
\begin{verbatim}		GLOBALV SELECT CENV SET VVVV XXXX

\end{verbatim}
for example
\begin{verbatim}		GLOBALV SELECT CENV SET WWW_HOME http://info.cern.ch/junk.html

\end{verbatim}
Beware of the fact that CMS puts everything into upper case.  It is
not obvious how to get around this problem without writing a little





\chapter{Installing WWW}This section describes how to install
the World-Wide Web line-mode browser
called "www". First of all,
\begin{itemize}
\item If you have a VAX/VMS machine, then
see the special instuctions for VMS
\item If you have not already got hold
of the files, see the section on
getting them .
\item If you have a VM mainframe, see special
instructions .
\end{itemize}The browser has already been ported
to many machines. Check the list
of machine types for your machine.
If your machine is not one of those,
see the section on porting .
\section{If the binary is available}If you found your machine type, check
in the anonymous FTP archive for
the subdirectory of /pub/www/bin
for your machine. If that directory
exists and contains a file named
www with some version number appended,
then select binary mode and take
the file, calling your copy www.
Otherwise, go to "compiling from
source " .
\begin{itemize}
\item Copy www into an apropriate directory
which appears in your path. If you
can be superuser, this can be /usr/local/bin/www
(typically) so that everyone can
use www. If you cannot be superuser,
see how to use www without being
superuser ).
\item If you type "rehash", you will be
able to use www. It will start at
a default home page which is at CERN.
\item To make your own home page, take
the tar file WWWLineModeDefaults.tar.Z.
Unwrap it and put the files into
a directory /usr/local/lib/WWW. Now
skip to make yourself at home below.
\end{itemize}
\section{Compiling from source}If a binary is not available, see
instructions for compiling from source.
\begin{itemize}
\item You must get, uncompress and untar
BOTH the WWWLineMode* product AND
the WWWLibrary* product source tar
files.
\item Find the subdirectory of WWW/LineMode
named after your machine type. cd
to it.
\item Check the directory definitions in
the Makefile, and change them if
necessary. See the definition of
the macros in the file Implementation/CommonMakefile
.
\item Type "make lib". You should get a
file WWW/Library/libwww.a
\item Type "make". You should get a binary
of WWW/LineMode/www.
\end{itemize}
\section{Installing}
\begin{itemize}
\item Become superuser (su root).  If you
can't do this, see how to do it without
being superuser ).
\item Type "make install". A reference
copy of the executable is made and
copied into the system.
\end{itemize}The "make install" step creates a
copy in your system directories of
the www executable and the basic
documenattion. If you wish to just
soft link them to the files on the
WWW tree, say "make link" instead.
After either of these, "make clean"
will remove intermediate files.
\section{Make yourself at home}You must now check that the default
"Home" page works, and customize
it if it is not what you want. The
default home page just a place to
start. The cern.html file (distributed
at the same time) is an example of
a customized home page. You may wish
to chose one of these as a basis.
\section{Setting up news}To read Internet news, you must have
first defined the news server's address
.
Tim BL






\section{Installing www if you are not superuser}So you want to install www, but you
do not have the privilege to become
super-user.   No problem: you can
install it for your own use.\par 
You have found (or built if it did
not exist ) a subdirectory of WWW/LineMode/Implementation
for your type of machine.\par 
You have modified the Makefile in
that directory to reflect the directory
name. Don't worry about BINDIR, the
name of the installation directory,
because you aren't making a system-wide
installation.\par 
Type
\begin{verbatim}			make


\end{verbatim}
This should generate the executable
file called "www". There are two
ways you can make this available.
\par 
One is, if in your " path " there
is a directory to wrich you do have
write access, then you put move www
into that directory. You may have
to then "rehash" to regenerate the
list of commands.\par 
If there isn't a writable directory
on your path, then you can put an
alias command into a login shell
script (.login or .cshrc) to define
www as being a file in the directory
where it is.\par 
Now if you run www it will complain
that it can't find the default home
page, /usr/local/bin/WWW/default.html.
 You will find a copy of a default
page in the distribution WWW/LineMode/Defaults/default.html.\par 
In your login shell script ,  set
the environment variable WWW\_HOME
to  the full pathname of default.html
as distributed, or to the w3 address
of the copy on our server. See customization
about how to set environment variables.
Tim BL





\subsection{Unix "path"}This is the set of directories which
the system looks in for executable
files.  You can find out what your
path is by the command
\begin{verbatim}			echo $path

\end{verbatim}
Normally the path is set by a command
in your login shell script . Remember
that if you change your path, then
you must type
\begin{verbatim}			rehash

\end{verbatim}
so that the shell rebuilds the set
of executable files which it will
accept as commands.
Tim BL





\subsection{Your login script}Under unix, when you start your shell,
a login script is executed. Use the
manual page for your shell to find
out more about this.  If you are
using csh, then files .login and
.cshrc in your home directory are
both executed.\par 
\lbrack Remember that ls -a displays also
filenames which start with a dot,
whereas ls normally hides them...\rbrack 





\section{Installation under VMS}To install under VMS, get the files
WWW.EXE and SETUP.COM from sources
described below. To set up the commands,
put the command
\begin{verbatim}			$ @[...]SETUP

\end{verbatim}
into your LOGIN.COM, or the system
SYLOGIN.COM.  This command file assumes
you have left all the distributed
files  in the same directory as itself.
\subsection{Customization using logical names}Under VMS,  the home page may be
defined using the logical name WWW\_HOME.
You should define this to be the
full address of the document which
you want to be displayed when www
is invoked without parameters. For
example,
\begin{verbatim}        $ DEFINE/SYSTEM WWW_HOME "file://myvax/sys$library/default.html"

\end{verbatim}
Note that the www address you must
set it to is still in unix-like format
(with slashes instead of :: : \lbrack .\rbrack )Users
may of course override the system
logical name with their own. If no
logical name is defined, the VMS
browser will default to picking up
the default page from our server,
 document http://info.cern.ch./default.html.\par 
The other customization variables
may be defined in the same way.\par 
Accessing VMS files\par 
If you are making you own home page,
or any other documentation, you will
probably want to store it on your
VMS machine. The www program has
the ability, if running under VMS,
 to access VMS files. the document
name for a VMS file is simply the
filename, but:\par 
The host name must be the name of
the machine WITHOUT any domain name
on it, e.g. //vxcrna/\par 
The filename is written with each
punctuation converted into a single
slash. Examples are
\begin{verbatim} Document identifier           			Filename

 file://vxcrna/sys$www_home			vxcrna::sys$home

\end{verbatim}

\subsection{Availability of .EXE files}Versions are available for any of
the following implementations of
TCP/IP which you may have installed
on your system: Digital's UCX, Wollongongs's
WIN/TCP, or SRI's Multinet.  If you
are on the High Energy Physics DECnet,
the versions are currently (Jan 92)
available compiled in directories
as follows:
\begin{DL}{allow this much space}
\item[Wollongong WIN\_TCP
] none - see recompiling
.
\item[Multinet
] vxcrna::disk\$oc1:\lbrack timbl.www.multinet.works\rbrack 
\item[Digital's UCX
] vxcrna::disk\$oc1:\lbrack timbl.www.ucx.works\rbrack 
\item[CMU TCP
] none - see recompiling .
\end{DL}
If you are not on HEPnet, but can
pick up binary files from info.cern.ch
using FTP,  then you will find executables
in the /pub/www/bin/vms, as files
www\_ucx.exe or www\_multinet.exe.
Remember to transfer in binary mode.
Pick one and rename it to www.exe
\subsection{Rebuilding from source}You may have to do this if your sharable
libraries are not compatible with
those for which the .EXE file was
built. If there is a version incompatability,
then you get an explicit message
about sharable library versions when
you try to run www.\par 
If you have utilities for uncompressing
and untarring the main source file,
then you could remake the distribution
from source.\par 
Another way of getting the sources
up can be used if you happen to have
access to an untrix machine on the
same DECnet as your vax. FTP the
source tar file over to the ultrix
machine, uncompress it and untar
it, then copy over the descrip.mms
in LineMode/Implementation/vms. In
there you'll find all the commands
to copy the sources from a unix machine
(PRIAM:: in that instance $--$ you'll
have to edit it) and rebuild the
.exe. \par 
When you remake the exe, you must
specifify
\begin{verbatim}
			MMS/MACRO=(MULTINET=1)
		or

			MMS/MACRO=(WIN_TCP=1)
		or

			MMS/MACRO=(UCX=1)

\end{verbatim}
to get the right version for Multinet,
Wollongong TCP or DEC/UCX respectively.
Tim BL


\subsection{Recompiling  for VMS}This is how to get the sources for www and recompile them.  You need
to do this if you have a shareable library incompatibility with the
distributed executable. The tar file is, on info.cern.ch, /pub/www/src/WWWLineMode\_v.vv.tar.Z,
 v.vv being the version - get the latest.  If you are on the HEP DECnet,
then the files can be found under
\begin{verbatim}			vxcrna::disk$oc1:[timbl.www.*]

\end{verbatim}

\subsubsection{Changing to a new TCP/IP version}Do this bit if your TCP/IP system is not  SRI/Multinet, DEC/UCX or
whatever they call it now, or Wollongong TCP/IP.\par 
You might need to change something in tcp.h which is the system specific
include file, and in descrip.mms, the makefile. If you do, please
mail me the changes.\par 
Look for all occurences of "MULTINET", "UCX" or "WIN\_TCP" and add
a "CMU\_TEK" or whatever where necessary.  The same goes for decsrip.mms.
This will need to pass the CMU\_TEK option onto the c compiler in the
CFLAGS macro, and also use different libraries for the link. Changes
to other files will probably not be necessary.\par 
\lbrack The program uses the socket library in a very standard way - no tricks.
You just have to get the include files from the right place and fix
the macros for NETREAD etc to whatever CMU-TEK calls the socket read()
function. It can't call it read() because that's in the VMS unix library
already for file access. You notice that under some systems the read
does a socket\_read or a real read depending on whether the socket
number is small (unix) or large (VMS channel=socket).  I don't know
what CMU-TEK does but I'm interested to know  If you don't know either,
try compiling for say WIN\_TCP and see what's undefined and mail me\rbrack \par 
If you do this, let me know how you get on, please!
\subsubsection{Compiling}One way, if you have a unix (sultrix?) system with DECnet is to unwrap
the tar file on that system.\par 
Then copy WWW/LineMode/Implementation/vms/descrip.mms across to VMS.
Edit descrip.mms so that all the references to \$(U)"/userd/tbl/hypertext
are changed to point to the decnet address of the files you have unwrapped
on the unix system. Then run mms with /macro=(u=HOST::, cmu\_tek=1)
$--$ whatever your unix HOST is $--$ and it will pickup all the files
from your unix system.\par 
The other way is to uncompress/untar it on under VMS, if you have
a tool to do that, and just run mms/macro=(cmu\_tek=1).
Tim BL






\section{Getting the WWW files}Read this if you have not yet got
the WWW files you need, and you cannot
NFS mount a directory on which they
reside.\par 
 The source and binary of CERN WWW
project files are currently available
(see copyright ) by anonymous FTP
from node info.cern.ch.  This node
is currently 128.141.201.74 but THIS
MAY CHANGE. The files are compressed
tape archive files (.tar.Z).  To
get  a file using anonymous FTP,
use user name "anonymous", and your
email address as a password:-
\begin{verbatim}			> ftp info.cern.ch
			Enter user name: anonymous
			Password: me@myhost.edu
			ftp> cd /pub/www/src
			ftp> binary
			ftp> get WWWLineMode_vvv.tar.Z
			ftp> quit
			>

\end{verbatim}
The file name will depend on the
product you want.  Here vvv is the
version number of the software.\par 
Once you have the compressed tar
file, you must uncompress it and
unwrap it.
\begin{verbatim}			uncompress WWWLineMode_vvv.tar.Z

\end{verbatim}
This will make a rather larger file
with the name without the ".Z". To
unwrap it,
\begin{verbatim}			tar xvf WWWLineMode_vvv.tar

\end{verbatim}
Now you should install the line mode
browser , install the server , install
Viola , etc.
Tim BL



\section{Porting to a new machine}Read this secion if the browser has not already been ported to a binary-compatible
machine.We assume you have a unix-like environment, including some
sort of C (either Kernigan and Ritchie or ANSI) compiler, and a socket
library supporting TCP/IP communications.  The browser has been ported
to many systems, and so you should not have much trouble with a new
one.
\begin{itemize}
\item Make a new subdirectory under WWW/LineMode for your combination of
machine and operating system. 
\item Copy the Makefile from another (similar) machine's subdirectory.
\item Modify the Makefile as necessary to compile and install on your system.
This involves selecting the compiler command, flags, etc, to be used,
and specifying directory names. See the file Implementation/CommonMakefile
which is included in the Makefile. Type  "make" to generate an executable
file.
\item Mail the Makefile, and any other changes you found were necessary,
back to us for the use of others. This is mandatory
\end{itemize}Now install the software .
Tim BL


\subsection{Machine types}The W3 code is distributed with machine-specific files for certain
platforms.
\begin{itemize}
\item Binaries, where they exists, are in subdirectories of the /pub/www/bin
distribution directory.
\item Machine-specific Makefiles and other sources are in subdirectories
of the Implementation (src) directory for a product.
\end{itemize}The subdirectory names are as follows.  Please consider all trademarks
to be acknowledged as such.
\begin{DL}{allow this much space}
\item[apollo\_m68k
] Apollo unix machines based on the M680x0 series CPU. (i.e.
not HP snake)
\item[decstation
] Digital DECstations.  (MIPS-based workstations)
\item[mac
] The Macintosh range from Apple.
\item[next
] NeXT $--$ all machines (non-RISC)
\item[pc-nfs
] IBM-PC compatible, with socket library from the PC-NFS product.
\item[rs6000
] IBM's rs6000 range of AIX workstations
\item[sgi
] Silicon Graphics Inc's workstations.
\item[snake
] HP700 and HP800 series.
\item[sun3
] The sun-3 (M68k based) series of workstations.
\item[sun4
] The sun4 (RISC) series of worksations.
\item[vax\_ultrix
] VAX machines running ultix for which gcc exists.
\item[vax\_ultrix\_cc
] VAX machines tunning ultrix, using the native cc compiler.
\item[vms
] The VMS operating system for DEC's VAX range.
\item[unix
] Generic unix source: if your machine is not listed, check these
Makefiles for necessary changes fro yoru system then run them. If
you need to make changes please mail back the new file to www-bug@info.cern.ch
for inclusions in future releases.
\end{DL}

Tim BL
\end{document}
