X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=INSTALL;h=28da68d669d3de582699f898ec4473105940e6d5;hb=c27ee1dba86042cb431c298699c19ed3fcd70026;hp=ddc79bdc66bca231fa931d442fd0d468b747b1f5;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/INSTALL b/INSTALL index ddc79bd..28da68d 100644 --- 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,16 +60,38 @@ 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 host lisp = CMU CL host lisp = SBCL itself - os = OpenBSD 2.6 + os = OpenBSD 2.6, 2.7, 2.8, 2.9, and 3.0 + host lisp = SBCL itself + 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 -It is known not to build under CLISP, because CLISP doesn't support -MAKE-LOAD-FORM. Reports of other systems that it works on, or help in -making it run on more systems, would be appreciated. + 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 +appreciated. CAUTION CAUTION CAUTION CAUTION CAUTION SBCL, like CMU CL, overcommits memory. That is, it @@ -83,20 +122,34 @@ making it run on more systems, would be appreciated. problem with quotas, I don't know.) To build the system binaries: + 0. If you want to be on the bleeding edge, you can update your + sources to the latest development snapshot (or any previous + development snapshot, for that matter) by using anonymous CVS + to SourceForge. (This is not recommended if you're just using SBCL + as a tool for other work, but if you're interested in working on + SBCL itself, it's a good idea.) Follow the "CVS Repository" link on + for instructions. 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. - This will probably be reduced somewhat in some later version - by allowing cold load of byte-compiled files, so that the cold - image can be smaller.) - 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. - 3. If you like, you can edit the base-features.lisp-expr file - to customize the resulting Lisp system. By enabling or disabling - features in this file, you can create a smaller system, or one - with extra code for debugging output or error-checking or other things. + 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, 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 + LIST))) + (This is the preferred way because it lets local changes interact + cleanly with CVS changes to the main, global source tree.) 4. Run "sh make.sh" in the same directory where you unpacked the tarball. If you don't already have a SBCL binary installed as "sbcl" in your path, you'll need to tell make.sh what Lisp @@ -110,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