summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Jerram <neil@ossau.uklinux.net>2009-07-04 00:33:05 +0100
committerNeil Jerram <neil@ossau.uklinux.net>2009-07-04 00:33:05 +0100
commit9f6b657549280f0bd23e2f285d69370151d40549 (patch)
tree676ef4f244c61cf991fb5e765ca9a4d109832734
parent51f465a9489f659aa9d6270a699f96d7345b9561 (diff)
downloadguile-9f6b657549280f0bd23e2f285d69370151d40549.tar.gz
Update `NEWS' and `README' to cover MinGW cross-compiling
Also - removed the completely content-free `Special Instructions For Some Systems' section from `README' - changed the version number in `README' to 1.8.7.
-rw-r--r--NEWS8
-rw-r--r--README41
2 files changed, 33 insertions, 16 deletions
diff --git a/NEWS b/NEWS
index 0c21225f9..7d5119817 100644
--- a/NEWS
+++ b/NEWS
@@ -30,6 +30,14 @@ module binding).
** Have `scm_take_locale_symbol ()' return an interned symbol (bug #25865)
** Fix potential deadlocks when running on multiple threads
+** Fix problems building with the i586-mingw32msvc cross-compiler
+
+It's now possible to build Guile for Windows by using the
+i586-mingw32msvc cross-compiler on GNU/Linux. This kind of build
+produces DLLs and a main program that can be copied to and used on a
+Windows PC. For how to do this, see the `Cross building Guile'
+section in `README'.
+
Changes in 1.8.6 (since 1.8.5)
diff --git a/README b/README
index 4891a64d6..32300a866 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-This is version 1.8.5 of Guile, Project GNU's extension language
+This is version 1.8.7 of Guile, Project GNU's extension language
library. Guile is an interpreter for Scheme, packaged as a library
that you can link into your applications to give them their own
scripting language. Guile will eventually support other languages as
@@ -50,15 +50,6 @@ Guile requires the following external packages:
available from http://www.gnu.org/software/libtool/
-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.
-
- <none yet listed>
-
Guile specific flags Accepted by Configure =================================
If you run the configure script with no arguments, it should examine
@@ -188,14 +179,32 @@ switches specific to Guile you may find useful in some circumstances.
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.
+Guile can be cross-compiled for Windows using the i586-mingw32msvc
+cross-compiler. To do this, you first need to cross-build Guile's
+prerequisites - GNU MP and libtool/libltdl (as described above) - and
+then cross-build Guile itself.
+
+For each of these steps, configure using an invocation like this:
+
+CPPFLAGS=-I/usr/local/i586-mingw32msvc/include \
+LDFLAGS=-L/usr/local/i586-mingw32msvc/lib \
+GUILE_FOR_BUILD=/usr/local/bin/guile \
+./configure --prefix=/usr/local/i586-mingw32msvc --host=i586-mingw32msvc
+
+Then run `make' - which should complete without any errors - and `sudo
+make install'. (`make check' doesn't work when cross-compiling,
+because the built DLLs and program cannot be run on GNU/Linux.)
+
+The `GUILE_FOR_BUILD=...' setting is needed because some later steps
+of the build process use Guile itself. In the non-cross-compiling
+case this is the version of Guile that has just been built. When
+cross-compiling, you have to set GUILE_FOR_BUILD to tell the build
+where it can find a native version of Guile, to use for these steps.
-When cross building guile, you first need to configure, build and
-install guile for your build host.
+Cross-compiling for other hosts may also work, using the following
+instructions; but this has not been recently tested.
-Then, you may configure guile for cross building, eg:
+To configure Guile for cross building, for example for Cygwin:
./configure --host=i686-pc-cygwin --disable-shared