
/*
 * Copyright (c) 1993, 1994, 1995 Carnegie Mellon University.
 * All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software and
 * its documentation for any purpose and without fee is hereby granted, 
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation, and that the name of CMU not be
 * used in advertising or publicity pertaining to distribution of the
 * software without specific, written prior permission.  
 * 
 * CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
 * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
 * CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
 * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
 * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 * SOFTWARE.
 *
 */


Argus and its supporting routines have been developed on Sparc
architectures under SunOS 4.1.x, and have been successfully ported
to Solaris 2.3 and SGI IRIX5.2.  No claim is made as to the portability
of Argus to other platforms.  If you make any modifications to support
installing and running Argus in any other environment, please send us
comments and/or patches.  We will be most grateful.

Argus is dependant on the public domain packages libpcap and tcp_wrappers.
Libpcap provides the packet capture facility for Argus, and tcp_wrappers
provides remote access control.  At this time, the lastest versions are
libpcap-0.0.6 and tcp_wrappers-7.2.  We recommend installing these
packages at the same directory level as Argus, as the installation
configuration scripts look for these packages.  Please see below for
more details.  To get copies of libpcap and tcp_wrappers:

LIBPCAP 0.0.6
Lawrence Berkeley Laboratory
Network Research Group
libpcap@ee.lbl.gov
ftp://ftp.ee.lbl.gov/libpcap-*.tar.Z
 - Steve McCanne (mccanne@ee.lbl.gov)
   Craig Leres (leres@ee.lbl.gov)
   Van Jacobson (van@ee.lbl.gov)


tcp_wrappers.7.2
Wietse Venema (wietse@wzv.win.tue.nl)
Department of Mathematics and Computing Science
Eindhoven University of Technology
P.O. Box 513
5600 MB Eindhoven
The Netherlands
ftp://ftp.win.tue.nl/pub/security
ftp://info.cert.org/pub/tools


Again since Argus is dependant on these pacakges, you will need
to have installed them prior to building Argus.  Please refer to
the individual packages for installation instructions.  We highly
recommend putting the root directories for these packages, in
the same parent directory as Argus's root directory, so that the
automated configuration procedures can find them.

We have borrowed libpcap-0.0.6's automatic configuration strategy, which
should make building Argus on Sun and SGI platforms easier.

The program, ./configure, will scan the file system, looking for
the libpcap and tcp_wrapper directories and libraries and make
assumptions about the platform which will allow ./configure to choose
between gcc, acc, cc, flex, lex, bison and yacc.  The choice of
libpcap interface, whether it is bpf, pf, enet, snit, nit, snoop or
dlpi, will be made automatically.

Configure will create links for the libpcap.a and libwrap.a libraries
in ./lib, and will create links to the distribution directories as
./libpcap and ./wrapper.  Configure will attempt to find the libpcap
and tcp_wrappers distribution directories, and their corresponding
libraries, and fail if it cannot do so.  The path used to find
these dependancies is ./libpcap, ./wrapper, /usr/lib, /usr/local/lib,
../libpcap, ../wrapper, ../tcp_wrappers, ../libpcap-[0-9]*.[0-9ab]*,
and ../tcp_wrappers[-.][0-9]*.[0-9ab]*.

Because of major changes between tcp_wrappers-6 and tcp_wrappers-7,
./configure needs to discover the tcp_wrappers version number.  It
does this by scanning the patchlevel.h file in the tcp_wrapper
distribution, as a result, ./configure will attempt to find establish
a link to your tcp_wrappers distribution directory.

Again, we recommend that you install your libpcap and tcp_wrappers
distribution directories, or links to them, in either the same
directory as the Argus distribution, or as the directories
./libpcap and ./wrapper, in the Argus directory.

Configure will determine what interface will be used by Argus, by
scanning the libpcap.a library.  The resulting Argus server will be
named with an interface specific label.  This is done to assist those
who will build multiple versions of Argus from a single machine.

So, after all that, to build Argus on a Sun or SGI platform, first run
./configure.  ./configure will determine your system attributes and
generate subdirectories and the appropriate Makefiles from the Makefile.in
files found in the distribution.  After this, run "make".  If everything
goes well, appropriate libraries and binaries will be found in the ./bin
and ./lib subdirectories.  So, ....

   % ./configure
   % make

Argus will be found as ./bin/argus_"libpcapInterfaceName".  So for
a libpcap.a that is built to support the /dev/snit interface, argus
will be named ./bin/argus_snit.

The libpcap-0.0.6 package library determines the interface type, so if
you want to make argus for another interface, you will have to make
the appropriate libpcap.a for that interface, and install that library
in the appropriate place before remaking Argus.



So, at this point you should have all the execuables needed.  But,
if you are having problems, it may be related to your compiler or
the flex and bison utilities.  So, ...

You will need an ANSI C compiler to build argus.  If your compiler
is not ANSI compliant, we highly recommend using the GNU C compiler,
available via anonymous ftp:

	ftp://prep.ai.mit.edu/pub/gnu/gcc-*.tar.gz


Argus, uses lex and yacc.  If you use flex, version 2.4.6
or higher is recommended, and with it, you must use bison.  The
current version of flex and bison are available via anonymous ftp:

	ftp://ftp.ee.lbl.gov/flex-*.tar.Z
        ftp://prep.ai.mit.edu/pub/gnu/bison-*.tar.gz



Now, if you are still having problems, ..., well its hard to say
from here what it might be.  So, you may want to send us some
mail.


Any comments, patches, bug reports or additions should be sent to 
argus@sei.cmu.edu.

Carter Bullard
Software Engineering Institute
Carnegie Mellon Univeristy
wcb@sei.cmu.edu

Chas DiFatta
Software Engineering Institute
Carnegie Mellon Univeristy
chas@sei.cmu.edu
