	Compilation and installation instructions for Mindy.

Compiling Mindy currently requires the use of an ANSI C compiler.  We
highly recommend gcc (GNU CC) if it is available.

To configure Mindy for your system, simply type ``./configure'' and
wait for configure to figure things out.  When that is done, begin the
compilation by typing ``make'' (or ``gmake'' if you have GNU make).
After Mindy has been compiled, type ``make install'' to install it.
(Note: you will need write permission for the directories that files
are being installed to; see below)

The default installation directory for executables is /usr/local/bin;
for libraries it is /usr/local/lib/mindy.  You can change the prefix
for these paths from /usr/local to whatever by typing ``configure
--prefix=whatever''.  (It is not a good idea to specify the path name
using a tilda (~) because tilda has a special meaning only in csh.
make uses sh, so tildas probably won't do what you want them to)

If you want to build Mindy in one-place while the sources are
kept in another-place, then type ``cd one-place;
another-place/configure --srcdir=another-place'' and configure will
construct the appropriate directories and Makefiles.

Other options may be provided directly to make:

	CC	specifies the C compiler to use
	CCOPTS	specifies options to pass to the C compiler
	YACC	specifies the parser generator
	LEX	specifies the lexer generator
	LFLAGS	specifies the flags passed to LEX

The default C compiler options (CCOPTS) are ``-g -O4
-finline-functions -Wall'' if you are using gcc, ``-g -O'' otherwise.
If you are not using gcc, we *highly* recommend you read the man page
for your compiler and supply the flags that ask for the maximum
optimization.  (Note that on many compilers, -g, "generate debugging
information", and -O, "optimize", are mutually exclusive.  If you have
to choose between the two, go with optimization.)

Options can be passed to make by using environment variables: Using
/bin/sh, ``VARNAME=option make -e'' (-e tells make to look at the
environment variables).  Under gmake, options can also be passed via
the command line: ``gmake VARNAME=option''.

You can clean up any previously made object files and executables 
with ``make clean''.

Here's what a sample installation might look like:
        /bin/sh           # Need the Bourne shell to pass options to make
	./configure --srcdir=/usr/bob/mindy/src --prefix=/usr/bob/mindy
	CCOPTS="-g -O3" make -e
	make install
	exit              # exit the shell you just launched
This would install binaries to /usr/bob/bin, and library files to
/usr/bob/lib/mindy.
	
Mindy has been successfully built on the following platforms:
	Hardware	OS		Compiler
	--------	--		--------
	HP Apollo	HPUX 9.03	gcc
	DEC pmax 	Mach 2.6	gcc
	DEC pmax	Ultrix 4.x	gcc
	SGI 		IRIX 4.0.5 	gcc and sgi-cc
	SGI 		IRIX 5.2 	sgi-cc
	Sun 		SunOS 4.11	gcc
	PC clone 	Linux 1.2.0     gcc

If you have successfully compiled Mindy on another architecture,
please send mail to
	gwydion-bugs@cs.cmu.edu
and we will add that architecture to the list.  Please include the
operating system version and what compiler you used.  If changes were
required, please send diffs as well.

Mindy can *not* be built out of the box on the DEC Alpha.  If you
would like to port Mindy to the Alpha or any other architecture where
Mindy does not easily compile, send mail to
gwydion-bugs@cs.cmu.edu and we will try to provide as much help as we
can.


                    Mindy Trouble Shooting Tips             


+ When I went to `make install' I got permission denied errors.

  You need to be the super user to install into /usr/local. Become the
  super user, or ask you system admin to do it for you, or pick an
  unprivileged  location, eg your home directory, and do the install
  there with `prefix=$HOME make -e install'. 

+ When I tried `prefix=$HOME make -e install' the shell said
  `prefix=$HOME: Command not found'.

  You're running a C shell, while our instructions tell you how to pass
  local environment bindings using the Bourne shell (/bin/sh).  You can
  run the standard /bin/sh and repeat the procedure, or you may set the
  environments globally with the C shell `setenv' command before running
  make.

+ When I went to `make install' I got `cannot unlink' errors.

  The install.sh script is trying to rename the files rather than
  copying them.  Try `MVPROG=cp make install'. 

+ When I went to `make' the compiler choked making compat/sigaction.o.

  Your machine does not have a POSIX signal handling package, and the
  default fallback to BSD signal handling didn't work either.  You can
  try the System V emulation by adding -DUSG_SIGNALS to the options used
  to compile sigaction.o.  Alternatively, there may be some magic word
  that is needed to open up the BSD compatability on your system.  Look
  in /usr/include/signal.h and see if it gives any clues.

+ Everything went fine until the final linking step for mindy or
  mindycomp, then I got a message about undefined symbols.

  You've found a hole in our compat library.  It could be easy or
  difficult to fix.  Send mail to
	gwydion-bugs@cs.cmu.edu
  Please include the operating system version and what compiler you
  used.

+ I'm compiling Mindy, and I get this error:
	ld: driver.o: relocation format botch (symbol type))
	collect2: ld returned 4 exit status

  There is a bug in some versions of gcc for the Sun.  Try recompiling
  driver.o with a different compiler or with optimizations off.
