Compiling Maria (on Unix-like platforms):

Prerequisites
-------------

To compile Maria, you will need:

- C and C++ compilers.  (The main development platform is Linux and GCC 2.95,
  and the code is occasionally also compiled with Compaq cxx v6.3.)
- A POSIX.1 compliant "make" utility, such as GNU Make or the native one
  of Digital UNIX 4.0.
- The GNU Readline library (unless you disable the HAS_READLINE option)
- GNU Bison 1.28 and flex 2.5.4 if you want to recompile the parsers

Basic compilation
-----------------

To invoke the compilation, type

	make -f Makefile.`uname`

where `uname` is the type of your system.  (Makefile.BSD is common for
FreeBSD, NetBSD, OpenBSD and IBM AIX.)  If there is no Makefile for
your system, make a copy of an existing file, adapt it, and send it to
me, so that it will be included in the next version.

Multi-processor compilation
---------------------------

On a multi-processor system, you may want to use the -j option of GNU
Make.  Determine the number of processors you want to use (try "uptime"
and "/usr/sbin/psrinfo" or "mpadmin -s"), and compile the files:

	nice make -f Makefile.`uname` depend
	nice make -f Makefile.`uname` -j 8

The target "depend" should be made on a single processor, since the
targets involving Bison and Flex interfere with the -j option.  The
argument of the -j option specifies the number of processors to be
utilised.

Installation
------------

To install Maria on a Unix-like system, use the pseudo-target
"install".  You may want to specify the target directory tree, like
below:

	make PREFIX=/usr/local install

If install(1) does not support the -c switch, you may need to adjust
the variables INSTALLBIN and INSTALLDATA in Makefile.

Other tools
-----------

You may wish to install also the following tools in order to fully use
the potential of Maria:

LBT, LTL to generalized Büchi automaton translator
	http://www.tcs.hut.fi/Software/maria/tools/lbt/
	http://www.tcs.hut.fi/Software/maria/src/lbt-1.2.1.tar.gz

GraphViz, the Graph Visualization Project of AT&T
	http://www.graphviz.org
	http://www.graphviz.org/pub/graphviz/
	http://www.research.att.com/sw/tools/graphviz/

The core features of Maria will work also without these tools.  The
GraphViz-based graphical user interface only works on Unix-like
platforms for the time being.

Recompiling with different options
----------------------------------

If you modify the HAS_READLINE compilation option, remove
parser/marde.tab.o and parser/cmdline.o and invoke make.

If you modify the USE_MMAP compilation option, touch Graph/file.h
and invoke make.

If you modify the BUILTIN_LTL compilation option, touch
Automata/Property.h, remove parser/marde.tab.o and invoke make.

If you modify other options, it is best to invoke "make clean" and
to compile everything from the scratch.

Marko Mäkelä (msmakela@tcs.hut.fi)
