184 lines
5.3 KiB
Plaintext
184 lines
5.3 KiB
Plaintext
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
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|