# Building SP

You will need a C++ compiler with good template support to build this. Support for exceptions is not required.

In most cases you should be able to port to a new compiler just by editing `include/config.h`.

## Unix

To build on Unix, edit the Makefile, and do a make. You can also build in a different directory. This requires GNU make or another make that implements VPATH. Copy or link the top-level Makefile to the build directory, change srcdir in the Makefile to point to the original directory, and do a make in the build directory.

`make install` installs the programs.

You can use the following compilers:

gcc
  gcc 2.95.1 works.

  With gcc 2.6.3/SunOS 4, you'll need to compile with `-Dsig_atomic_t=int`, and, if you want to compile with -DSP_HAVE_SOCKET, you'll need to make netdb.h and arpa/inet.h C++ compatible.

Sun C++
  To compile with Sun C++ 4.0.1, run first sunfix.sh. Also in the top-level Makefile, change set libMakefile to Makefile.lib.sun. This makes the library build use the -xar option.

Nelson Beebe has ported SP to a variety of other Unix systems and has produced some notes about his experiences.

## Windows

The following compilers have been tested:

Visual C++ 6.0
  Make sure the msdev directory is in your path, by using a command similar to:

      path c:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;%path%

  Then build SP using the command

      msdev SP.dsw /make "all - release" /norecurse