Instructions for building from source with GCC and GNU make:

1. Edit the Makefile.
   In most cases it should suffice to set three variables: DEBUG; ASSEMBLER;
   ARCH.

2. Edit sr5sieve.h.
   Set BASE=0 for a general version of sr2sieve, BASE=2 for a fixed base 2
   version of sr2sieve (for SoB or RieselSieve projects), or BASE=5 for
   sr5sieve (for the S/R Base 5 projects).

3. Run 'make'.
   This should produce one executable: sr5sieve. Rename the executable as
   appropriate.

4. Run 'make check' (GMP libraries required).
   This will perform a test of the core modular arithmetic functions.
   If all is well then the message 'All tests passed' will appear.


When compiling bsgs.c for x86 architectures with ASSEMBLER=yes, warnings
similar to the following are normal and can be ignored:
  /tmp/ccM6vgA2.s: Assembler messages:
  /tmp/ccM6vgA2.s:585: Warning: missing operand; zero assumed


I use these commands (from Debian Linux) to make binaries for distribution:
  x86-64 Linux:  make realclean; make ARCH=x86-64 CC="gcc -V3.4"
  x86 Linux:     make realclean; make ARCH=x86-amd CC="gcc -V3.4"
                 make realclean; make ARCH=x86-intel CC="gcc -V3.4"
  x86 Windows:   make realclean; make ARCH=x86-amd CC=i586-mingw32msvc-gcc
                 make realclean; make ARCH=x86-intel CC=i586-mingw32msvc-gcc
