SWI-Prolog Distribution Directory
** Last update: Fri Dec 18 13:57:18 1992 (1.6.7)
Mon Jun 28 14:42:06 1993 (1.7.0)
Mon Nov 22 15:23:54 1993 (1.8.5)
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
./src/gnu GNU-Emacs unexec() sources (MODIFIED VERSION)
./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
===================
Using gcc
The C-compiler used for some architecture is defined in md-<machine.h>
using the macro M_CC
When available, please use the GNU-C compiler gcc. SWI-Prolog has been
developed with this compiler. Do not use version 2.0, as this compiler
crashes on pl-wam.c. Version 2.1 is ok. Versions 2.5.[123] have a
broken optimiser. When nothingelse is available, recompile pl-wam.c
without optimisation as a work-around. SWI-Prolog makes use of GCC-2's
facilities to deal with label addresses, improving performance with
about 10%.
INSTALLATION
============
Readline
The current version of SWI-Prolog uses the GNU library readline to allow
for editing input lines. The library itself is *not* part of prolog.
It is available from may ftp sites as well as from the file
librl-11.tar.z in the SWI-Prolog ftp distribution directory.
If you don't have it, compile and install this library according to the
instructions there. If it is not installed in one of the default paths,
edit the definitions of M_LDFLAGS and M_CFLAGS in md.h.
The readline-1.1.tgz (or similar named) is a bit outdated and does not
compile on all machines. If you have trouble, check the readline as
supplied with GDB. If you're desparate and using SWI-Prolog as a
GNU-Emacs inferior process anyway drop the O_READLINE flag from md.h.
SWI-Prolog
First, make a directory for the specified machine using the SETUP
script. The argument to SETUP describes the machine you are running.
This machine is described in the file src/md-MACHINE.h. To get a list
of architectures run SETUP without arguments.
Next, edit config.h:
M_SYSTEMHOME absolute path pointing to this directory
M_DEFSTARTUP Personal startup file base-name
M_BINDIR Installation directory for executables
M_PROLOG Name of the resulting program
Next, check src/md-MACHINE.h for things specific to your machine.
Next:
1) cd ./MACHINE
2) make
Installation:
1) cd ./MACHINE
2) make install
Cleanup
1) cd ./MACHINE
2) make clean
Automount filesystems; symbolic links
When the installation directory is on an automount filesystem or
symbolic links provide multiple absolute pathnames for the
installation directory, the Unix environment variable CANONICAL_PATHS
may be set to a ':' separated list of `canonical paths. For example,
Prolog is installed in /home/languages/pl. Typing 'pwd' in this
directory yields /tmp_mnt/home/languages/pl. Correct installation may
be achieved by typing
% setenv CANONICAL_PATHS /home/languages/pl
Prepare for static loading (runtime environment, PCE)
When Prolog is to be mixed with C-code using static loading (such as
for the graphical environment XPCE), the runtime environment has to be
created. After the installation, do
1) cd ./MACHINE
2) make runtime
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.
PROBLEMS BUILDING SWI
=====================
SunOs 3.x
---------
Ancient users of SunOs 3.x should set the corresponding flag in
md-sun3.h. Dynamic stacks are not provided under SunOs 3.x.
SunOs 4
-------
This is the development platform. Should compile ok, but SWI-Prolog
does *not* compile with the System-V environment.
AIX (RS6000)
------------
Saved states are not very robust. It has been reported that the states
restore ok until the system is rebooted. The trouble is that it appears
impossible to force *static linking* with AIX.
SGI
---
While compiling pl-load.c, some architectures report an error regarding
the symbol N_TXTOFF. If this happens, drop O_FOREIGN to 0 in md-sgi.h
and recompile.
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 possible 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 appropriately 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.
|