[plt-scheme] Building 3-99.0.23 on Cygwin

From: Eddie Sullivan (eddieSull at hotmail.com)
Date: Tue May 6 11:51:21 EDT 2008

I just built the 3-99.0.23 release of DrScheme from source on Cygwin running
on Windows XP (without X-Windows). I was able to make it work, but it took
some doing, and I wonder if I've ended up with a subtly broken system. I
tested it on a few simple scripts and it does seem to be working.

Here's what I did. Hopefully others will find this useful, or be able to
correct any missteps I may have made.


* I kept getting a linker error complaining of an undefined reference to
_scheme_require_from_original_env. I noticed that function was not defined,
but also not called anywhere in the C source. I deleted the references to
it, and it built. This of course scares me a bit.

* I modified collects/setup/unixstyle-install.ss so it wouldn't try to copy
the doc directory, since that directory is not there in the tarball I
downloaded.

* There is a problem in collects/setup/variant.ss. It assumes that the
executable file name is "mzscheme" on a Unix-style system. Under Cygwin,
this is not true: it is actually called "mzscheme.exe".

* I had to set LIBRARY_PATH to the .libs directory before "make install"
would work (this is using tcsh):

setenv LIBRARY_PATH /cygdrive/c/src/plt-3.99.0.23/src/mzscheme/.libs/

* Building documentation ran out of memory. I think because Cygwin uses CGC
for garbage collecting, which seems to have troubles with this (as discussed
at
http://article.gmane.org/gmane.lisp.scheme.plt/24577/match=scribble+memory)
I didn't build the documentation.


* My configure command was:
/configure --enable-shared --prefix=/usr/local/plt --disable-mred


* My make command was:
make MAKE='make --unix' --unix
make MAKE='make --unix' --unix plain-install
mzscheme -l setup -- -D -n


* I was using the following versions:

~>uname -srv
CYGWIN_NT-5.1 1.5.25(0.156/4/2) 2007-12-14 19:21

~>gcc --version
gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)

-Eddie



Posted on the users mailing list.