				EB-lite README

(1) What *is* EB-lite?
	It's a rewrite of the instant messaging client Everybuddy, with no 
attached user interface. Instead, the small, nearly-completely-ANSI core 
(it has a bit of POSIX thrown in - namely read(), write(), select(), and 
the networking functions) runs on its own. User interfaces connect to it 
via TCP, allowing any form of user interface in any language, for any 
platform, as well as multiple user interfaces connected at once.

(2) How do the internal gubbins work?
	The first place to check is the doc/ directory. It details the UI
communications protocol, and some of the internals. If those docs don't 
answer your question, look it up in the source, or email a developer!

(3) I compile it, and start the binary, and nothing happens!
	This is because the binary is only the core! As of the time of 
writing (11-03-2003), the only fully-featured user interface available is 
ebqt, located in the ebqt/ directory. This needs to be compiled 
separately, as it is a separate program. This one depends on Qt, but 
hopefully we will acquire some other user interfaces soon...


BUILD INFORMATION:

Autoconf is now the official build system, after Meredydd finally 
relenquished his own idiosyncratic Makefiles :-) However, for those who 
want a simpler build, a smaller download, or don't want to wrestle with 
autotools, versions with the alternative build system are available - see 
INSTALL_ABS in distributions which include it.

To build, if you've recently updated configure.ac, or configure.in, or any
of the Makefile.am files, then run ./gen first.

After that, ./configure, make, make install.

./configure --help will give you a list of options.


Things you'll need to know:

Works with autoconf 2.13+, and all corresponding versions of automake and
libtool (1.4 recommended for better error messages (1.4.2 required if you
are a developer and part of what you do includes making distribution 
tarballs that will run on Mac OS X))

The auto* scripts check for things like whether you're allowed to include
both sys/time.h and time.h (some systems don't allow it), and whether
dirent.h is present, etc.

It also uses libtool and libltdl, which means we can use shared libraries 
on all systems that support them.  Don't know how it will handle systems
where shared libraries don't exist, but libltdl is supposed to make this
transparent, so I suppose it should just be a matter of adding the plugins
to LIBOBJS or something like that.
[ Or just using the ABS, which works fine on such systems --Meredydd ]

On systems where shared libraries exist, but in a method unknown to libltdl,
we suggest statically linking the service plugins into eb-lite using the
--with-static-PLUGIN switch to configure.  Mac OS X is one such system. 
You can also use the --with-static-all option to compile them all 
statically.

The configure script should automatically detect this.

autoscripts tested to work on:

x86:
Debian 2.2 (Linux 2.4)
Redhat 6.0 (Linux 2.2)
Redhat 7.1 (Linux 2.4)
Redhat 7.3 (Linux 2.4)
FreeBSD 4.6 Stable
MS Windows (under Cygwin) (all static modules)
[ Really? I've had trouble with doing it with autotools win32. If you're 
having trouble, the ABS *will* work. --Meredydd ]

alpha:
Debian 3.0 (Linux 2.4)

ppc:
(RS/6000) Debian 3.0 (Linux 2.2)
Mac OS X (with all static modules and CPPFLAGS=-no-cpp-precomp)

sparc:
(Ultra 60) Debian 3.0 (Linux 2.4)
SunOS 5.8
Solaris 2.5!!
