diff options
Diffstat (limited to 'INSTALL')
-rw-r--r-- | INSTALL | 467 |
1 files changed, 0 insertions, 467 deletions
diff --git a/INSTALL b/INSTALL deleted file mode 100644 index d75cc57a4..000000000 --- a/INSTALL +++ /dev/null @@ -1,467 +0,0 @@ -Guile Installation Guide -Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. - - Permission is granted to anyone to make or distribute verbatim copies - of this document as received, in any medium, provided that the - copyright notice and permission notice are preserved, - and that the distributor grants the recipient permission - for further redistribution as permitted by this notice. - - Permission is granted to distribute modified versions - of this document, or of portions of it, - under the above conditions, provided also that they - carry prominent notices stating who last changed them, - and that any new or changed statements about the activities - of the Free Software Foundation are approved by the Foundation. - - -Brief Installation Instructions =========================================== - -To build Guile on unix, there are two basic steps: - - 1. Type "./configure", to configure the package for your system. - 2. Type "make", to build the package. - -Generic instructions for configuring and compiling GNU distributions -are included below. (For instructions how to install SLIB, the scheme -procedure library, see below.) - - -Guile can use a number of external packages such as `readline' when -they are available. Guile expects to be able to find these packages -in the default compiler setup, it does not try to make any special -arrangements itself. For example, for the `readline' package, Guile -expects to be able to find the include file <readline/readline.h>, -without passing any special `-I' options to the compiler. - -If you installed an external package, and you used the --prefix -installation option to install it somewhere else than /usr/local, you -must arrange for your compiler to find it by default. If that -compiler is gcc, one convenient way of making such arrangements is to -use the --with-local-prefix option during installation, naming the -same directory as you used in the --prefix option of the package. In -particular, it is not good enough to use the same --prefix option when -you install gcc and the package; you need to use the ---with-local-prefix option as well. See the gcc documentation for -more details. - - -Special Instructions For Some Systems ===================================== - -We would like Guile to build on all systems using the simple -instructions above, but it seems that a few systems still need special -treatment. If you can send us fixes for these problems, we'd be -grateful. - -SunOS 4.1: Guile's shared library support seems to be confused, but - hey; shared libraries are confusing. You may need to configure - Guile with a command like: - ./configure --disable-shared - For more information on `--disable-shared', see below, "Flags - Accepted by Configure". - -HP/UX: GCC 2.7.2 (and maybe other versions) have trouble creating - shared libraries if they depend on any non-shared libraries. GCC - seems to have other problems as well. To work around this, we - suggest you configure Guile to use the system's C compiler: - CC=cc ./configure - -NetBSD: Perry Metzger says, "Guile will build under NetBSD only using - gmake -- the native make will not work. (gmake is in our package - system, so this will not be a problem when we packagize 1.3.)" - - -Flags Accepted by Configure =============================================== - -If you run the configure script with no arguments, it should examine -your system and set things up appropriately. However, there are a few -switches specific to Guile you may find useful in some circumstances. - - ---enable-maintainer-mode - - If you have automake, autoconf, and libtool installed on your - system, this switch causes configure to generate Makefiles which - know how to automatically regenerate configure scripts, makefiles, - and headers, when they are out of date. The HACKING file says which - versions of those tools you will need. - - ---with-threads --- Build with thread support - - Build a Guile executable and library that supports cooperative - threading. If you use this switch, Guile will also build and - install the QuickThreads non-preemptive threading library, - libqthreads, which you will need to link into your programs after - libguile. When you use `guile-config', you will pick up all - neccessary linker flags automatically. - - Cooperative threads are not yet thoroughly tested; once they are, - they will be enabled by default. The interaction with blocking I/O - is pretty ad hoc at the moment. In our experience, bugs in the - thread support do not affect you if you don't actually use threads. - - ---disable-linuxthreads --- Disable pthread compatability hack on Linux - - If you experience problems on GNU/Linux that are related to - pthreads, you might try this option. Guile with then not link with - the pthreads library, but will also not try to be compatible to - programs that use both libguile and libpthread. - - ---with-modules --- Specify statically linked `modules' - - Guile can dynamically load `plugin modules' during runtime, using - facilities provided by libtool. Not all platforms support this, - however. On these platforms, you can statically link the plugin - modules into libguile when Guile itself is build. XXX - how does - one specify the modules? - - ---enable-deprecated=LEVEL --- Control the inclusion of deprecated features. - - You can select between different behaviours via the LEVEL argument: - a value of "no" will omit all deprecated features and you will get - "undefined reference", "variable unbound" or similar errors when you - try to use them. All other values will include all deprecated - features. The LEVEL argument is used to determine the default value - for the environment variable GUILE_WARN_DEPRECATED. See the README - for more information. - - The default is to get a vague warning at program exit if deprecated - features were used: - - --enable-deprecated=yes - --enable-deprecated=summary - - To get a detailed warning at first use of a deprecated feature: - - --enable-deprecated=detailed - - To get no warnings: - - --enable-deprecated=shutup - - To omit deprecated features completely and irrevokably: - - --enable-deprecated=no - - ---disable-shared --- Do not build shared libraries. ---disable-static --- Do not build static libraries. - - Normally, both static and shared libraries will be built if your - system supports them. - - ---enable-debug-freelist --- Enable freelist debugging. - - This enables a debugging version of SCM_NEWCELL(), and also - registers an extra primitive, the setter - `gc-set-debug-check-freelist!'. - - Configure with the --enable-debug-freelist option to enable the - gc-set-debug-check-freelist! primitive, and then use: - - (gc-set-debug-check-freelist! #t) # turn on checking of the freelist - (gc-set-debug-check-freelist! #f) # turn off checking - - Checking of the freelist forces a traversal of the freelist and a - garbage collection before each allocation of a cell. This can slow - down the interpreter dramatically, so the setter should be used to - turn on this extra processing only when necessary. - - ---enable-debug-malloc --- Enable malloc debugging. - - Include code for debugging of calls to scm_must_malloc/realloc/free. - - Checks that - - 1. objects freed by scm_must_free has been mallocated by scm_must_malloc - 2. objects reallocated by scm_must_realloc has been allocated by - scm_must_malloc - 3. reallocated objects are reallocated with the same what string - - But, most importantly, it records the number of allocated objects of - each kind. This is useful when searching for memory leaks. - - A Guile compiled with this option provides the primitive - `malloc-stats' which returns an alist with pairs of kind and the - number of objects of that kind. - - ---enable-guile-debug --- Include internal debugging functions ---disable-arrays --- omit array and uniform array support ---disable-posix --- omit posix interfaces ---disable-networking --- omit networking interfaces ---disable-regex --- omit regular expression interfaces - - -Cross building Guile ===================================================== - -As of guile-1.5.x, the build process uses compiled C files for -snarfing, and (indirectly, through libtool) for linking, and uses the -guile executable for generating documentation. - -When cross building guile, you first need to configure, build and -install guile for your build host. - -Then, you may configure guile for cross building, eg: - - ./configure --host=i686-pc-cygwin --disable-shared - -Two special options for cross building are available: - ---with-cc-for-build --- native C compiler, to be used during build - defaults to: `PATH=/usr/bin:$PATH cc' - ---with-guile-for-build --- native Guile executable, to be used during build - defaults to: `guile', assuming you just - installed this guile natively. - - -Using Guile Without Installing It ========================================= - -If you want to run Guile without installing it, set the environment -variable `GUILE_LOAD_PATH' to a colon-separated list of directories, -including the directory containing this INSTALL file. If you used a -separate build directory, you'll need to include the build directory -in the path as well. - -For example, suppose the Guile distribution unpacked into a directory -called `/home/jimb/guile-snap' (so the full name of this INSTALL file -would be `/home/jimb/guile-snap/INSTALL'). Then you might say, if -you're using Bash or any other Bourne shell variant, - - export GUILE_LOAD_PATH=/home/jimb/guile-snap - -or if you're using CSH or one of its variants: - - setenv GUILE_LOAD_PATH /home/jimb/guile-snap - -You will additionally need to set your `LTDL_LIBRARY_PATH' environment -variable to the directory in which the compiled SRFI support modules -are created if you want to use the modules for SRFI-4, SRFI-13 or -SRFI-14 support. Similar to the example above, this will be, - - export LTDL_LIBRARY_PATH=/home/jimb/guile-snap/srfi/.libs - -or if you're using CSH or one of its variants: - - setenv LTDL_LIBRARY_PATH /home/jimb/guile-snap/srfi/.libs - - -Installing SLIB =========================================================== - -In order to use SLIB from Guile you basically only need to put the -`slib' directory _in_ one of the directories on Guile's load path. - -The standard installation is: - - 1. Obtain slib from http://www-swiss.ai.mit.edu/~jaffer/SLIB.html - - 2. Put it in Guile's data directory, that is the directory printed when - you type - - guile-config info pkgdatadir - - at the shell prompt. This is normally `/usr/local/share/guile', so the - directory will normally have full path `/usr/local/share/guile/slib'. - - 3. Start guile as a user with write access to the data directory and type - - (use-modules (ice-9 slib)) - - at the Guile prompt. This will generate the slibcat catalog next to - the slib directory. - -SLIB's `require' is provided by the Guile module (ice-9 slib). - -Example: - - (use-modules (ice-9 slib)) - (require 'primes) - (prime? 7) - - -Generic Instructions for Building Auto-Configured Packages ================ - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. - - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure - -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: - CPU-COMPANY-SYSTEM - -See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the host type. - - If you are building compiler tools for cross-compiling, you can also -use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. |