Beginning of implementation of a ctypes-based interface to libboard, which is a much cleaner set of Go routines than I hacked together originally. Including a copy of gnugo 3.8 so we can build a dynamic version of libboard.
This commit is contained in:
183
gnugo/WINDOWS
Normal file
183
gnugo/WINDOWS
Normal file
@ -0,0 +1,183 @@
|
||||
Building GNU Go on Windows Platforms
|
||||
|
||||
==========================
|
||||
|
||||
|
||||
BUILDING WITH OLDER VISUAL STUDIO
|
||||
|
||||
The distribution directories contain some .dsp and .dsw files with
|
||||
GNU Go. These have been brought up to date in the sense that they
|
||||
should work if you have the older VC++ with Visual Studio 6
|
||||
but the distributed .dsp and .dsw files will only be of use with
|
||||
older version of Visual Studio.
|
||||
|
||||
In most cases (unless you are building in Cygwin) the preferred way
|
||||
to build GNU Go on Windows platforms is to use CMake. CMake
|
||||
understands about many versions of Visual C/Visual Studio, and will
|
||||
generate project/solution files for the tools installed on your
|
||||
system. So even if you have Visual Studio 6 you may use CMake
|
||||
and dispense with the distributed .dsp and .dsw files.
|
||||
|
||||
==========================
|
||||
|
||||
BUILDING WITH VISUAL STUDIO PROJECT FILES
|
||||
|
||||
Before you compile the GNU Go source, you need to run CMake first, to
|
||||
generate the build files you'll give to Visual Studio.
|
||||
|
||||
From the cmd.exe command prompt, CD into the GNU Go source directory.
|
||||
To confirm you're in the right place, you should see the file
|
||||
'CMakeLists.txt' in the top-level directory of the GNU Go code (as well
|
||||
as others in lower subdirectories).
|
||||
|
||||
Direct CMake to generate the new Visual Studio build files by typing:
|
||||
|
||||
cmake CMakeLists.txt
|
||||
|
||||
Compile the code by invoking the newly-created Solution file:
|
||||
|
||||
vcbuild GNUGo.sln
|
||||
|
||||
This will take a few moments, as CMake generates 4 debug/retail targets:
|
||||
|
||||
debug
|
||||
release
|
||||
minsizerel
|
||||
relwithdebinfo
|
||||
|
||||
For each of these targets, Visual Studio is generating a version of
|
||||
gnugo.exe:
|
||||
|
||||
interface\debug\gnugo.exe
|
||||
interface\release\gnugo.exe
|
||||
interface\minsizerel\gnugo.exe
|
||||
interface\relwithdebinfo\gnugo.exe
|
||||
|
||||
Additionally, there is an 'Install' target available, that will copy the
|
||||
the gnugo.exe into the %ProgramFiles% directory. To do this, type:
|
||||
|
||||
vcbuild INSTALL.vcproj
|
||||
|
||||
This should result in copying GNU/Go into:
|
||||
|
||||
"%ProgramFiles%\GNUGo\bin\gnugo.exe" --options
|
||||
|
||||
In addition to command line use, CMake also has a GUI version. Users of
|
||||
the Visual Studio GUI might prefer to use that.
|
||||
|
||||
==========================
|
||||
|
||||
BUILDING WITH NMAKE MAKEFILES
|
||||
|
||||
GNU Go will also build using NMake makefiles. Optionally, instead of
|
||||
Visual Studio project/solution files, you may direct CMake to generate
|
||||
NMake makefiles. To generate the makefiles:
|
||||
|
||||
cmake -G "NMake Makefiles" CMakeLists.txt
|
||||
|
||||
The default rule for the makefile is 'all'. Use the 'help' rule to show
|
||||
a list of available targets.
|
||||
|
||||
nmake -f Makefile help
|
||||
|
||||
To compile GNU Go:
|
||||
|
||||
nmake -f Makefile all
|
||||
|
||||
On some systems, GNU GO may fail to build when using NMake makefiles. It
|
||||
only fails the first time run, run NMake again with the 'clean all'
|
||||
targets, and it will compile the second and subsequent times.
|
||||
|
||||
nmake -f Makefile clean all
|
||||
|
||||
Which will successfully generate a gnugo.exe.
|
||||
|
||||
interface\gnugo.exe --options
|
||||
|
||||
==========================
|
||||
|
||||
BUILDING WITH MINGW MAKEFILES:
|
||||
|
||||
GNU Go can be built on Windows systems using MinGW.
|
||||
|
||||
This development environment uses: the GCC compiler (gcc.exe, not
|
||||
cl.exe), the Microsoft C runtime libraries (MSCRT, not GLibC), the GNU
|
||||
Make build tool (mingw32-make.exe, not NMake), all from the Windows
|
||||
shell (cmd.exe, not sh/bash).
|
||||
|
||||
For CMake to work, in addition to the base MinGW installation, the C++
|
||||
compiler (g++.exe) and GNU Make (mingw32-make.exe) need to be installed.
|
||||
This was tested using GCC v3, not the experimental v4. To debug, use
|
||||
GDB, as the GCC-generated symbols won't work with NTSD/Windbg/Visual Studio.
|
||||
|
||||
To create the makfiles, run CMake with the MinGW generator option:
|
||||
|
||||
cmake -G "MinGW Makefiles" CMakeLists.txt
|
||||
|
||||
To build GNU Go, from a cmd.exe shell, run GNU Make (against the
|
||||
newly-created 'Makefile' and it's default 'all' target):
|
||||
|
||||
mingw32-make
|
||||
..\interface\gnugo.exe --options
|
||||
|
||||
==========================
|
||||
|
||||
BUILDING WITH MSYS MAKEFILES (MinGW)
|
||||
|
||||
GNU Go can be built on Windows systems using MSYS.
|
||||
|
||||
This development environment uses: the GCC compiler (gcc.exe, not
|
||||
cl.exe), the Microsoft C runtime libraries (MSCRT, not GLibC), the GNU
|
||||
Make build tool (make, not NMake), all from the GNU Bash (sh.exe, not
|
||||
cmd.exe).
|
||||
|
||||
To create the makfiles, run CMake with the MSYS generator option:
|
||||
|
||||
cmake -G "MSYS Makefiles" CMakeLists.txt
|
||||
|
||||
Start MSYS's Bash shell, either clicking on a shortcut on from the
|
||||
command line:
|
||||
|
||||
cd /d c:\msys\1.0
|
||||
msys.bat
|
||||
|
||||
To build GNU Go, from a Bash shell, run GNU Make (against the
|
||||
newly-created 'Makefile' and it's default 'all' target):
|
||||
|
||||
make
|
||||
../interface/gnugo.exe --options
|
||||
|
||||
To debug, use GDB, as the GCC-generated symbols won't work with
|
||||
NTSD/Windbg/Visual Studio.
|
||||
|
||||
==========================
|
||||
|
||||
BUILDING ON CYGWIN
|
||||
|
||||
With Cygwin, you should be able to
|
||||
|
||||
tar zxvf gnugo-3.8.tar.gz
|
||||
cd gnugo-3.8
|
||||
env CC='gcc -mno-cygwin' ./configure
|
||||
make
|
||||
|
||||
==========================
|
||||
|
||||
Testing on Windows:
|
||||
|
||||
Regress.cmd is a simplified cmd.exe-centric port of the main gnugo Unix
|
||||
shell script regress.sh. It can be used to help verify that the
|
||||
generated binary might be operational. Read the script's comment header
|
||||
for more information. For access to the full GNU Go tests, use Unix, not
|
||||
Windows.
|
||||
|
||||
To test:
|
||||
|
||||
cd regression
|
||||
regress.cmd ..\interface\gnugo.exe
|
||||
|
||||
==========================
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user