On Fri, Jun 28, 2013 at 8:48 AM, Jan Moringen <jmoringe@techfak.uni-bielefeld.de> wrote:

On Fri, 2013-06-28 at 08:34 -0600, Elliott Slaughter wrote:
> Just FYI: I'm going to be away from my Windows box for the next couple of
> months (through September or so), so if anyone else wants to test the
> Windows build, now would be a great time to step in.

I have access to a Windows 7 virtual machine which could do automated
building and testing. However, I have never built SBCL for Windows and
don't know how to do that. Can you point me to documentation on how to
build SBCL under Windows?

I know of no formal documentation, but here are the steps (off the top of my head):

Install MinGW if you don't already have it. This version should work: http://www.mingw.org/wiki/Getting_Started . You need at a minimum GCC, Make, and MSYS. (I don't remember the exact package names, but there aren't very many of them. There is one called "additional development tools" or something similarly vague. I always install that one too.)

Install Git, e.g. here: http://git-scm.com/ . In order to use Git from the same prompt as MinGW, you need to put it on PATH. (It's one of the checkboxes in the installer.) But be careful not to put the whole shell environment on PATH, because that will mess with MSYS.

Install WiX 3.7 from http://wixtoolset.org/ . This is for building the installer. Note that you *have* to keep the default installation path for this program, otherwise SBCL can't find it.

Open your MinGW/MSYS shell and clone SBCL:

git clone git://git.code.sf.net/p/sbcl/sbcl

Now run the build:

sh make.sh &> build.txt
tail -n20 build.txt

The tail command prints the end of the build log; check to make sure everything built properly. Notably, I think sb-concurrency might still be broken, unless someone fixed it in the last month.

Now you can build an installer:

sh make-windows-installer.sh

It might spew some warnings, but as long as you find a file called sbcl-XXXX.msi in the output directory, it worked.

Normally I uninstall my current version of SBCL and install the new one to test that everything is working. Afterwards I make sure to switch back to my original version though, so I'm not on some inter-release version of SBCL.

Hope that helps.

Elliott Slaughter

"Don't worry about what anybody else is going to do. The best way to predict the future is to invent it." - Alan Kay