-*- mode: Text -*-

-------------------------------------------------------------------------------
				BUILDING FLICK
-------------------------------------------------------------------------------

In order to build Flick you will need:

	An ANSI C compiler	gcc 2.7.2 is our usual compiler; Flick has
				previously been built with gcc 2.6.3 and 2.5.8.
				(See note about gcc 2.5.8 below.)

	An ANSI C++ compiler	g++ 2.7.2 is our usual compiler; again, Flick
				has worked with g++ 2.6.3 / 2.5.8 in the past.

	GNU make		Versions 3.69, 3.74, and 3.75 have been tested.

	flex or lex		Flex versions 2.4.6, 2.5.2, and 2.5.4 have been
				tested.  Vendor-provided versions of lex should
				work, but this has not been extensively tested.

	bison or yacc		Bison version 1.25 has been tested; version
				1.22 is known *not* to work.  Vendor-provided
				versions of yacc should work, but have not been
				extensively tested.

	Disk space		You will need ~95MB of free disk space for a
				fully debuggable Flick object tree, and an
				additional 35--70MB in order to run the Flick
				tests.

NOTE that using gcc/g++ 2.5.8 may cause problems with debugging.  Flick's data
structures are not fully specified in the debugging information output by early
versions of g++.  This causes gdb not to examine many data structures fully.
We recommend that you use g++ 2.7.2 in order to avoid this problem.

Once you have those tools, you must unpack the Flick distribution tar file and
create a build tree to contain the object files.  If you create a build
directory called `obj', your directory setup would look as follows:

	~/flick-1.1		- the Flick source tree
	~/obj			- the Flick object tree

In that configuration, you would type the following commands in order to first
configure Flick for your operating system and then compile all of the Flick
tools:

	cd ~/obj
	../flick-1.1/configure
	make

(*** GNU-Win32 users: see `support/cygwin32/README' for help building Flick on
Windows 95/NT with the Cygwin32 library.)

If all goes well, links to the suite of Flick programs will be installed in
`~/obj/bin'.  See the instructions below to install the Flick tools in a place
outside of the Flick object tree.

*** NOTE: The various Flick runtime libraries are *not* built when you type
`make' in the root of the Flick object tree.  (Flick's `configure' script
cannot yet detect which runtime libraries are appropriate for the platform on
which you are building.)  To build and/or install a runtime library, you must
navigate to the library's directory and type `make' there.  For example, to
build and install the IIOP runtime, you would type the following commands:

	cd ~/obj/runtime/libraries/link/iiop
	make
	make install

A `make' in the root of the Flick object tree will *not* test the generated
Flick tools.  See the instructions below to test the Flick tools against the
provided set of test IDL inputs.

We have successfully built and tested this release of Flick on the following
platforms:

    FreeBSD 2.2.6-BETA		(Intel Pentium II, gcc/g++ 2.7.2.1)
    Linux 2.0.30		(Intel i486, gcc/g++ 2.7.2.1)
    SunOS 5.5.1 (Solaris)	(SPARCstation SS10/514, gcc/g++ 2.7.2)
    SunOS 4.1.3			(Sun 4m SS10, gcc/g++ 2.7.2)
    HP-UX 9.03			(HP 9000/712 PA-RISC 1.1, gcc/g++ 2.7.2.2.f.2)
    AIX 4.1.4			(IBM RS6000 PowerPC 604, gcc/g++ 2.7.2)
    4.3+ BSD			(HP 9000/J210XC PA-RISC 1.1, gcc/g++ 2.7.2)
    Windows 95			(gcc/g++ 2.7.2, w/Cygnus' GNU-Win32 Tools b18)
    Windows NT 4.0		(gcc/g++ 2.7.2, w/Cygnus' GNU-Win32 Tools b18)

FreeBSD and HP BSD are our current development platforms.  Flick-generated
stubs have also been tested on Mach/Lites and our Fluke OS.

If you build Flick on a platform other than these, we'd love to hear about it.
Of course, if the build fails, we'd like to know about that, too.  Send build
reports, bug reports, praise and damnation to <flick-bugs@cs.utah.edu>.


-------------------------------------------------------------------------------
			       INSTALLING FLICK
-------------------------------------------------------------------------------

You can install the Flick binaries and header files in a ``standard'' place on
your system by typing the following command in the root directory of the Flick
object tree (`~/obj' in our example configuration):

	make install

By default, the root installation directory is `/usr/local'.  You can change
this default by specifying the `--prefix' option to `configure', e.g.:

	../flick-1.1/configure --prefix=/usr/local/flick

	make		# to build Flick
	make install	# to install Flick under `/usr/local/flick'

Note that as described previously, the individual runtime libraries must be
built and installed separately.  It is not necessary to ``install'' Flick in
order to run the provided tests (see below) or to build your own stubs.


-------------------------------------------------------------------------------
				 TESTING FLICK
-------------------------------------------------------------------------------

Flick comes with a set of test IDL inputs and example programs; these are in
the `test' subdirectory of the distribution.  Refer to the `test/README' file
in the Flick source tree for instructions on building the various tests.

The test programs (in `test/programs/*') illustrate how client and server code
can use Flick's IIOP, ONC/TCP, Mach 3, and Trapeze runtime libraries in
conjunction with Flick-generated stubs.  Read the `doc/usersguide/user.ps' file
for instructions for using Flick to compile your own IDL files.

Note that most of the example application programs in `test/examples' are out
of date and may not compile at all.  The exception is `test/examples/phone',
which is the example developed in the Flick user's guide.  The `phone' example
is implemented for both CORBA and ONC RPC.

-------------------------------------------------------------------------------

## End of file.

