INTRODUCTION
  This directory contains source code for the yabbs (yet another
  bulletin board system) client.  The most up to date version of
  the yabbs client should be available from ftp.phred.org in
  /pub/yabbs/yabbscli.tar.gz.  A mirror site is ftp.cs.cmu.edu in
  /afs/cs/user/arw/ftp/yabbs.  The yabbs server and client binaries
  for selected systems can be found in each of those directories
  as well.

  This file contains information on building yabbs for its supported
  systems (Unix and MS-DOS) and running yabbs once it has been built.

BUILDING YABBS ON UNIX
  Building the yabbs client on unix should be fairly straightforward.  
  Your makefile should have a section that looks something like:

  CC=cc
  CFLAGS=-O
  DEFINES=-DSGTTYB -DJOBCONTROL
  LINKFLAGS=
  LIBS=-ltermcap
  MAKE=make
  MFLAGS=
  STRSTR=strstr.o strsep.o
  PLATFORM=unix.o
  INTERFACE=socket.o

  The main option that could need changing is the -DSGTTYB shown above.
  If you are on a Linux or System V (USL) based system you should change
  that line to -DTERMIO.  In addition, if yabbs doesn't seem to compile
  correctly (complains about TIOCxxxxx be undefined) try changing the
  above option to -DTERMIO.  Either -DSGTTYB or -DTERMIO needs to be 
  specified.

  If your standard compiler (cc) doesn't support ANSI C, or you also have
  gcc installed, you might want to change CC=cc to CC=gcc.  An ANSI compiler
  is required to compile the yabbs client.

  The LIBS line should contain any libraries that are necessary to build
  termcap based programs.  This may include -lcurses, but normally -ltermcap
  should work okay.

  The STRSTR line is not needed if your compiler already includes strstr.o
  and strsep.o in its libraries.  If you don't know this leaving them in
  should not hurt anything (it may create a slightly larger binary).

  If you want to build the client statically add -static to the LINKFLAGS
  line.

  Once these options have been set you may want to skim through the rest
  of the Makefile to see if there are any other options that affect you.
  Finally doing "make" should build two binaries: yabbs and yahoo.  Yabbs
  is the main bbs client, yahoo is a client that will list the users 
  currently logged onto a yabbs server.

RUNNING YABBS ON UNIX
  The yabbs man page (yabbs.1) contains information on running yabbs with
  Unix systems.  To view this man page (if it was installed in a man 
  directory) do "man yabbs" or if that doesn't work try
  "nroff -man yabbs.1 |more" which should view the manpage correctly.

BUILDING YABBS ON MSDOS
  Currently yabbs supports using the DJGPP compiler (gcc for MS-DOS) to 
  build yabbs clients for MS-DOS machines.  To do this you need: DJGPP
  and TCPLIB (a TCP/IP library for DJGPP based on WATTCP).  To run the
  yabbs client you'll need a packet driver for your ethernet card and
  a WATTCP.CFG file that has been set up for your system.  Information
  on writing WATTCP.CFG files can be found in the documentation for
  TCPLIB.

  To build the yabbs client under MS-DOS uncomment the section of the
  Makefile that says it contains options for MS-DOS.  Then go into
  the yabbslib directory and change the lines that start with:
    INTERFACEOBJ=
  to
    INTERFACEOBJ=djsocket.o wasocket.o
  and 
    CFLAGS=
  to
    CFLAGS=-O2 -I/<djgpp>/include/tcp
  Where "<djgpp>" is the location of your DJGPP files (probably just
  djgpp).

  Run "make" in the yabbslib directory.

  "Cd .." and run "make".  This should create "yabbs.exe" and "yahoo.exe",
  the two yabbs clients.

  If you have any trouble building yabbs for MS-DOS mail alex@phred.org.  

RUNNING YABBS UNDER MSDOS
  Yabbs under MS-DOS is a lot like yabbs under Unix, but it has a few
  notable differences.  First, the yabbsrc file is called "yabbs.rc" and
  it is looked for in your root directory.  In addition yabbs requires
  that there is a directory called "\tmp" where it can write its temporary
  files.

  To run yabbs you need to have started a packet driver for your ethernet
  card (or SLIP connection) and created a WATTCP.CFG file containing 
  information on your connection.  The WATTCP.CFG looks something like:
    my_ip=<Your IP Address>
    netmask=<Your netmask>
    nameserver=<Your nameserver>
    nameserver=<Another nameserver>
    gateway=<Your Gateway>
    domainslist=<Your domain>.
  All of this information should be available from your local system
  administrator if you don't know it.  The environment variable WATTCP.CFG
  should point to the directory where your WATTCP.CFG file is saved (for
  instance "set WATTCP.CFG=c:\yabbs").

  Otherwise yabbs for MS-DOS acts just like Yabbs for Unix.  If you have
  any trouble running it (or have any questions) please email alex@phred.org.

PORTING THE CLIENT
  Porting the client to other platforms should be fairly simple.  All
  platform specific stuff is contained in its own file (two examples are
  unix.c and msdos.c).  In the yabbslib directory an interface file
  should be written containing code to access your network (two examples
  here are socket.c and djsocket.c).

  As an example timeframe, it took me about 6 hours to get a working and
  debugged port of the MS-DOS client starting from the Unix client.  This
  included learning my way around DJGPP and its TCP libraries.  

  If you have any questions or would like to do a port mail alex@phred.org
  and I'll help you out as much as I can.  I think it would be really
  nifty to have ports to VMS and Windows/Winsock.
