0.8.9.7:
[sbcl.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index be9e1c4..28da68d 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,10 +1,13 @@
 IF YOU HAVE A BINARY DISTRIBUTION:
 
-The two files that SBCL needs to run are sbcl and sbcl.core.
+The two files that SBCL needs to run, at minimum, are sbcl and sbcl.core.
 They are in 
        src/runtime/sbcl
 and
        output/sbcl.core
+In addition, there are a number of modules that extend the basic sbcl
+functionality, in
+        contrib/
 
 sbcl is a standard executable, built by compiling and linking an
 ordinary C program. It provides the runtime environment for the
@@ -17,24 +20,38 @@ stuff.
 In order to get a usable system, you need to run sbcl in a way that
 it can find sbcl.core. There are three ways for it to find
 sbcl.core:
-  1. by default, in /usr/lib/sbcl.core or /usr/local/lib/sbcl.core
+
+  1. by default, in /usr/lib/sbcl/sbcl.core or /usr/local/lib/sbcl/sbcl.core
+     (depending on the SBCL_HOME C preproccessor #define at compile-time)
   2. by environment variable: 
-     $ export SBCL_HOME=/foo/bar/
+     $ export SBCL_HOME=/foo/bar/lib/sbcl
      $ sbcl
   3. by command line option:
      $ sbcl --core /foo/bar/sbcl.core"
-The usual, recommended approach is method #1. Method #2 is useful if
-you're installing SBCL on a system in your user account, instead of
-installing SBCL on an entire system. Method #3 is mostly useful for
-testing or other special cases.
+
+The usual, recommended approach is method #1.  Method #2 is useful if
+you're installing SBCL on a system in a non-standard location (e.g. in
+your user account), instead of installing SBCL on an entire system.
+Method #3 is mostly useful for testing or other special cases.
 
 So: the standard installation procedure is
   1. Copy sbcl.core to /usr/lib or /usr/local/lib.
   2. Copy sbcl to /usr/bin or /usr/local/bin.
-  3. Optionally copy sbcl.1 to /usr/man/man1 or /usr/local/man/man1.
-The script install.sh does these for you (choosing the /usr/local
-subdirectory) in each case.
+  3. Copy the contrib modules that you're using (if any) to the same place
+      as sbcl.core
+  4. Optionally copy sbcl.1 to /usr/man/man1 or /usr/local/man/man1.
+
+The script install.sh does all of this for you, including compilation
+of all contrib modules it can find, and installation of all those that
+pass their tests.  You should set the INSTALL_ROOT environment
+variable to /usr or /usr/local as appropriate before starting
+install.sh: e.g.
 
+   # INSTALL_ROOT=/usr/local sh install.sh
+or
+   $ INSTALL_ROOT=/home/me/sbcl sh install.sh
+(if your INSTALL_ROOT is XYZ, SBCL_HOME should be set to
+XYZ/lib/sbcl).
 
 IF YOU HAVE A SOURCE DISTRIBUTION:
 
@@ -43,6 +60,7 @@ This software has been built successfully on these systems:
                os = Debian GNU/Linux 2.1 with libc >= 2.1
                        host lisp = CMU CL 2.4.17
                        host lisp = SBCL itself
+                       host lisp = CLISP CVS as of end of April
                os = RedHat Linux 6.2
                        host lisp = SBCL itself
                os = FreeBSD 3.4 or 4.0
@@ -50,11 +68,26 @@ This software has been built successfully on these systems:
                        host lisp = SBCL itself
                os = OpenBSD 2.6, 2.7, 2.8, 2.9, and 3.0
                        host lisp = SBCL itself
-It is known not to build under CLISP because of (as of early June 2002)
-bugs in the CLISP garbage collector, and it is known not to build under
-other systems like OpenMCL because of (as of early June 2002) remaining
-dependencies of SBCL bootstrapping on CMUCLisms like the representation
-of BYTE. 
+       cpu = alpha
+               os = Debian GNU/Linux 2.2 with libc >= 2.1
+                       host lisp = SBCL itself
+               os = Tru64 5.1
+                       host lisp = SBCL itself
+       cpu = sparc
+               os = Debian GNU/Linux 2.2 with libc >= 2.2
+                       host lisp = SBCL itself
+               os = Solaris 8
+                       host lisp = SBCL itself
+       cpu = powerpc
+               os = Debian GNU/Linux 2.2 with libc >= 2.1
+                       host lisp = OpenMCL 0.12
+                       host lisp = SBCL itself
+               os = MacOS X.2
+                       host lisp = OpenMCL 0.13.6
+                       host lisp = SBCL itself
+       cpu = mips and mipsel
+               os = Debian GNU/Linux 3.0
+                       host lisp = SBCL itself
 
 Reports of other systems that it works on (or doesn't work on, for
 that matter), or help in making it run on more systems, would be
@@ -99,16 +132,18 @@ To build the system binaries:
   1. Make sure that you have enough RAM+swap to build SBCL, as
      per the CAUTION note above. (As of version 0.6.0, the most
      memory-intensive operation in make.sh is the second call to
-     GENESIS, which makes the Lisp image grow to nearly 128 Mb RAM+swap.
-  2. If the GNU make command is not available under the name "gmake",
-     then define the environment variable GNUMAKE to a name where it can
-     be found.
+     GENESIS, which makes the Lisp image grow to around 128 Mb RAM+swap.
+  2. If the GNU make command is not available under the names "gmake"
+     or "make", then define the environment variable GNUMAKE to a name
+     where it can be found.
   3. If you like, you can tweak the *FEATURES* set for the resulting
      Lisp system, enabling or disabling features like documentation
-     strings or extra debugging code. The preferred way to do this is
-     by creating a file "customize-target-features.lisp", containing
-     a lambda expression which is applied to the default *FEATURES*
-     set and which returns the new *FEATURES* set, e.g.
+     strings, threads, or extra debugging code (see
+     "base-target-features.lisp-expr" for a list of recognized
+     *FEATURES*).  The preferred way to do this is by creating a file
+     "customize-target-features.lisp", containing a lambda expression
+     which is applied to the default *FEATURES* set and which returns
+     the new *FEATURES* set, e.g.
        (LAMBDA (LIST)
          (ADJOIN :SB-SHOW
                  (REMOVE :SB-DOC
@@ -128,9 +163,7 @@ To build the system binaries:
        13 hours on a 133MHz Pentium (P54C) with 48Mb RAM, running OpenBSD 2.6.
      Around the 48Mb mark, the build process is starved for RAM:
      on my 48Mb OpenBSD machine with nothing else running, it
-     spent about 2/3 of its wall clock time swapping. Anything which 
-     substantially increases memory use, like running X11, Emacs, or, 
-     God forbid, Netscape, can increase the build time substantially.
+     spent about 2/3 of its wall clock time swapping. 
 
 Now you should have the same src/runtime/sbcl and output/sbcl.core
 files that come with the binary distribution, and you can install