		    SWI-Prolog Distribution Directory

** Last update: Tue Jan 26 13:57:32 1999 (3.2.0)

AUTHOR
======
	Jan Wielemaker
	SWI
	University of Amsterdam
	Roetersstraat 15
	1018 WB  Amsterdam
	The Netherlands
	E-mail: jan@swi.psy.uva.nl

DIRECTORIES
===========

The SWI-Prolog source tree consists of the following directories:

./src		C sources
./boot		Prolog system predicates defined in Prolog
./library	Prolog user's library
./include	Include files.  Mostly for handling foreign-code
./man		Manual (LaTeX)
./lisp		GNU-Emacs Lisp sources for a better Prolog-mode
		(See swi-prolog19.el for using Emacs-19)


BUILDING SWI-Prolog
===================

Unix
----

SWI-Prolog configuration under  Unix  is   driven  by  the  GNU-autoconf
package. Please check INSTALL for the   generic installation options and
INSTALL.notes for some SWI-Prolog specific things.

SWI-Prolog should compile using any Unix-type   system with 32 or larger
(64) word-length and an ANSI-compliant C-compiler.

If SWI-Prolog crashes during the installation,  the most likely cause is
that  the  detection  of  mmap()   for  stack-memory  management  wasn't
configured properly. If you are knowledgeable   in  mmap() issues, check
src/test/mmap.c and src/pl-setup.c. Otherwise, run   configure using the
option below to use malloc() based stacks.

	./configure --disable-mapped-stacks


MS-Windows
----------

Unless there is a special reason, please  use the binary distribution on
MS-Windows.

If you insist using the sources, the windows version is build using MSVC
5.0. If you have this version, load src\pl.dsw and recompile those parts
of the system you  need.  The  executables   are  created  in  the `bin'
directory, the import-libraries in the `lib'  directory. They can be run
from  this  location.  It  is  adviced  to   copy  them  into  a  binary
distribution to arrive at a properly configured system.


GNU-EMACS INTERFACE
===================

In the directory ./lisp, you'll  find   an  interface to GNU-EMACS.  The
file README.SWI provides installation directives.    In  consists of the
Quintus Prolog gnu-emacs interface with an additional file swi-prolog.el
that redefines and adds some things.   See also the swi-prolog19.el file
for using Emacs-19.


MODIFYING SWI-Prolog
====================

You are free to modify SWI-Prolog under   the licence terms specified in
the  file  LICENCE.  You  may  wish  the  other  users  can  share  your
improvements.  For  code  to  be  accepted   as  part  of  the  official
distribution, it should be written in the same  style as the rest of the
SWI-Prolog sources. I do not claim this  style to be the best available,
but I want the entire source to have a consistent style. Please document
the modifications and if reasonably indicate  them using #if ... #endif.
Please do not send `diff' files to me,   I probably do not have the same
version of the sources, so complete   files,  with the changes indicated
with #if ... #endif are easier to incorporate.

If your change is accepted, you will  be propriately acknowledged in the
distribution.

PROLOG PROGRAMS

Additions to the library and other stand alone Prolog programs have less
strick conditions.  Add comments such that   other  users can understand
the program or library module and   ensure  the files provide sufficient
documentation on its origin, waranty  and distribution conditions.  Such
contributions are copied verbatim and not maintained by me.
