Move Scheme introduction (Guile-independent) to its own chapter
[bpt/guile.git] / README
diff --git a/README b/README
index bea40de..90914e1 100644 (file)
--- a/README
+++ b/README
@@ -33,6 +33,8 @@ Guile depends on the following external libraries.
 - libintl
 - libltdl
 - libunistring
+- libgc
+- libffi
 It will also use the libreadline library if it is available.  For each
 of these there is a corresponding --with-XXX-prefix option that you
 can use when invoking ./configure, if you have these libraries
@@ -49,16 +51,19 @@ names (where that is supported), makes it impossible to later move the
 built executables and libraries to an installation location other than
 the one that was specified at build time.
 
-Another possible approach is to set CPPFLAGS and LDFLAGS before
-running configure, so that they include -I options for all the
+Another possible approach is to set CPPFLAGS and LDFLAGS on the
+configure command-line, so that they include -I options for all the
 non-standard places where you have installed header files and -L
 options for all the non-standard places where you have installed
 libraries.  This will allow configure and make to find those headers
-and libraries during the build.  The locations found will not be
-hardcoded into the build executables and libraries, so with this
-approach you will probably also need to set LD_LIBRARY_PATH
-correspondingly, to allow Guile to find the necessary libraries again
-at runtime.
+and libraries during the build.  E.g.:
+
+  ../configure [...] CPPFLAGS='-I/my/include' LDFLAGS='-L/my/lib'
+
+The locations found will not be hardcoded into the build executables and
+libraries, so with this approach you will probably also need to set
+LD_LIBRARY_PATH correspondingly, to allow Guile to find the necessary
+libraries again at runtime.
 
 
 Required External Packages ================================================
@@ -68,12 +73,12 @@ Guile requires the following external packages:
   - GNU MP, at least version 4.1
 
     GNU MP is used for bignum arithmetic.  It is available from
-    http://swox.com/gmp
+    http://gmplib.org/ .
 
-  - libltdl from libtool, at least from libtool version 1.5.6
+  - libltdl from GNU Libtool, at least version 1.5.6
 
     libltdl is used for loading extensions at run-time.  It is
-    available from http://www.gnu.org/software/libtool/
+    available from http://www.gnu.org/software/libtool/ .
 
   - GNU libunistring
 
@@ -81,6 +86,32 @@ Guile requires the following external packages:
     `utf*->string' procedures.  It is available from
     http://www.gnu.org/software/libunistring/ .
 
+  - libgc, at least version 7.0
+
+    libgc (aka. the Boehm-Demers-Weiser garbage collector) is the
+    conservative garbage collector used by Guile.  It is available
+    from http://www.hpl.hp.com/personal/Hans_Boehm/gc/ .
+
+  - libffi
+
+    libffi provides a "foreign function interface", used by the
+    `(system foreign)' module.  It is available from
+    http://sourceware.org/libffi/ .
+
+  - pkg-config
+
+    Guile's ./configure script uses pkg-config to discover the correct
+    compile and link options for libgc.  If you don't have pkg-config
+    installed, or you have a version of libgc that doesn't provide a
+    .pc file, you can work around this by setting some variables as
+    part of the configure command-line:
+
+    - PKG_CONFIG=true
+
+    - BDW_GC_CFLAGS=<compile flags for picking up libgc headers>
+
+    - BDW_GC_LIBS=<linker flags for picking up the libgc library>
+
 
 Special Instructions For Some Systems =====================================