Start new section for post-1.0 changes.
[bpt/guile.git] / INSTALL
CommitLineData
30d14d55 1To build Guile on unix, there are two basic steps:
0196b30a
JB
2
3 1. Configure the package by running the configure script.
4 2. Build the package by running make.
5
6Generic instructions for configuring and compiling GNU distributions
7are included below. Here is an illustration of commands that might be
8used to build Guile. The voluminous output of the commands is not shown.
9
d096089a 10 % tar xvfz guile-snap.tar.gz # unpack the sources
cd2e9eb5 11 % cd guile-snap
30d14d55
JB
12 % ./configure
13 % make
14
15The `configure' script examines your system, and adapts Guile to
16compile and run on it.
17
18The `make' command builds several things:
19- An executable file `guile/guile', which is an interactive shell for
20 talking with the Guile Scheme interpreter.
21- An object library `guile/libguile.a', containing the Guile Scheme
22 interpreter, ready to be linked into your programs.
23- An object library `gtcltk-lib/libgtcltk.a', containing a simple
24 interface between Guile and Tcl/Tk. This is only built if the
25 configure script notices that you have the appropriate version of
26 Tcl/Tk installed on your system already. If it is installed, `make'
27 will automatically include Tcl/Tk and the interface in the guile
28 shell. If the interface were documented, we'd include a pointer to
29 it here.
30
31To install Guile, type `make install'. This installs the executable
32and libraries mentioned above, as well as Guile's header files and
33Scheme libraries.
34
35If you want to run Guile without installing it, set the environment
36variable `SCHEME_LOAD_PATH' to a colon-separated list of directories,
37including the directory containing this INSTALL file. For example, if
38you unpacked Guile so that the full filename of this file is
cd2e9eb5 39`/home/jimb/guile-snap/INSTALL', then you might say
30d14d55 40
cd2e9eb5 41 export SCHEME_LOAD_PATH=/home/jimb/my-scheme:/home/jimb/guile-snap
0196b30a 42
30d14d55 43if you're using Bash or any other Bourne shell variant, or
0196b30a 44
cd2e9eb5 45 setenv SCHEME_LOAD_PATH /home/jimb/my-scheme:/home/jimb/guile-snap
0196b30a 46
30d14d55 47if you're using CSH or one of its variants.
0196b30a
JB
48
49
50 Generic Instructions for Building Auto-Configured Packages
51 ==========================================================
52
53
54To compile this package:
55
561. Configure the package for your system. In the directory that this
57file is in, type `./configure'. If you're using `csh' on an old
58version of System V, you might need to type `sh configure' instead to
59prevent `csh' from trying to execute `configure' itself.
60
61The `configure' shell script attempts to guess correct values for
62various system-dependent variables used during compilation, and
63creates the Makefile(s) (one in each subdirectory of the source
64directory). In some packages it creates a C header file containing
65system-dependent definitions. It also creates a file `config.status'
66that you can run in the future to recreate the current configuration.
67Running `configure' takes a minute or two.
68
69To compile the package in a different directory from the one
70containing the source code, you must use GNU make. `cd' to the
71directory where you want the object files and executables to go and
72run `configure' with the option `--srcdir=DIR', where DIR is the
73directory that contains the source code. Using this option is
74actually unnecessary if the source code is in the parent directory of
75the one in which you are compiling; `configure' automatically checks
76for the source code in `..' if it does not find it in the current
77directory.
78
79By default, `make install' will install the package's files in
80/usr/local/bin, /usr/local/lib, /usr/local/man, etc. You can specify
81an installation prefix other than /usr/local by giving `configure' the
82option `--prefix=PATH'. Alternately, you can do so by changing the
83`prefix' variable in the Makefile that `configure' creates (the
84Makefile in the top-level directory, if the package contains
85subdirectories).
86
87You can specify separate installation prefixes for machine-specific
88files and machine-independent files. If you give `configure' the
89option `--exec_prefix=PATH', the package will use PATH as the prefix
90for installing programs and libraries. Normally, all files are
91installed using the same prefix.
92
93`configure' ignores any other arguments that you give it.
94
95If your system requires unusual options for compilation or linking
96that `configure' doesn't know about, you can give `configure' initial
97values for some variables by setting them in the environment. In
98Bourne-compatible shells, you can do that on the command line like
99this:
100 CC='gcc -traditional' DEFS=-D_POSIX_SOURCE ./configure
101
102The `make' variables that you might want to override with environment
103variables when running `configure' are:
104
105(For these variables, any value given in the environment overrides the
106value that `configure' would choose:)
107CC C compiler program.
108 Default is `cc', or `gcc' if `gcc' is in your PATH.
109INSTALL Program to use to install files.
110 Default is `install' if you have it, `cp' otherwise.
111INCLUDEDIR Directory for `configure' to search for include files.
112 Default is /usr/include.
113
114(For these variables, any value given in the environment is added to
115the value that `configure' chooses:)
116DEFS Configuration options, in the form '-Dfoo -Dbar ...'
117LIBS Libraries to link with, in the form '-lfoo -lbar ...'
118
119If you need to do unusual things to compile the package, we encourage
120you to teach `configure' how to do them and mail the diffs to the
121address given in the README so we can include them in the next
122release.
123
1242. Type `make' to compile the package.
125
1263. Type `make install' to install programs, data files, and
127documentation.
128
1294. You can remove the program binaries and object files from the
130source directory by typing `make clean'. To also remove the
131Makefile(s), the header file containing system-dependent definitions
132(if the package uses one), and `config.status' (all the files that
133`configure' created), type `make distclean'.
134
135The file `configure.in' is used as a template to create `configure' by
136a program called `autoconf'. You will only need it if you want to
137regenerate `configure' using a newer version of `autoconf'.