PGOPHER <Prev Next>

Compiling From Source

PGOPHER is mainly written in Pascal, using the object oriented extensions originally available from the Borland Pascal compiler and now also available in the Free Pascal compiler (not GNU Pascal). The program is distributed as a zip file. Unpack this in a directory on its own, which will create several sub-directories.

Microsoft Windows

The current version is compiled with Embarcadero (originally Borland, then Codegear) Delphi 2007 (32 bit version) and XE8 (64 bit version), though it should compile with any recent version (2006 or later), possibly with minor modifications. The mkpgopher.bat file in the pgopher directory will compile it from the command line. Alternatively install the utils/PutilsU.dpk and wutils/PcontrolsU.dpk packages into the IDE (utils/Putils.dpk and wutils/Pcontrols.dpk for Delphi 2007 or earlier), after which the pgopher/Pgopher.dpr project can be loaded and compiled in the IDE. Note that various open source graphics libraries are required for a complete build; these are included in the GraphicEx directory. The files with "orig" in the name are the files as distributed with the library.

Compilation using the open source Free Pascal ( and Lazarus ( packages is also possible under Windows. Installing the current Lazarus snapshot gives a good starting point though the development version may be required for correct operation, particularly for Lazarus. There is a helpful wiki page on the Lazarus site at on installing both the compiler and Lazarus. Once the Lazarus IDE and the PGOPHER source are installed, the instructions are as for Linux below.


The current version is compiled the using the open source Free Pascal compiler ( and Lazarus ( packages. The development versions may be required for correct compilation and operation; the current version requires at least version 3 of the compiler. There is a helpful wiki page on the Lazarus site at on installing both the compiler and Lazarus. If you have a recent compiler and Lazarus  installed, then the the Lazarus IDE can be used to compile PGOPHER and pgo:
  1. Start the IDE using the startlazarus shortcut
  2. Install the Pcontrols package by:
    1. Go to "Package", "Open Package File" and open the Putils.lpk file in the utils directory.
    2. Similarly, open the gutils.lpk and then Pcontrols.lpk packages in the wutils directory
    3. Click "Use, Install" on the Pcontrols package window , and accept the rebuild of Lazarus.
  3. Repeat steps 1 and 2 of the the previous step for the lutils.lpk package in the lutils directory and the lforms.lpk package in the lforms directory
  4. Use "Project", "Open Project" to load pgopher.lpi in the pgopher directory.
  5. Compile and run with "Run", "Build All"
Steps 2 and 3 are only required on initial installation of Lazarus. For the command line version open the project file pgo.lpi instead at step 4. When the IDE is set up as above the program can be built from the command line with:
lazbuild pgopher.lpi
or, for the command line version:
lazbuild pgo.lpi
If you don't have a recent Lazarus install, then try the makesvn script which will download and compile the current development version of the compiler and IDE, and then set up the IDE to compile PGOPHER, and use it to compile PGOPHER. It requires a bootstrap version of the compiler to start with, and the pgopher_source zip file, both in your home directory. The simplest way of obtaining this bootstrap compiler is probably to install the version of Lazarus using your distribution's package system, copy the core compiler (ppc386 or ppcx64) to your home directory and then uninstall Lazarus (to avoid confusion between versions). Alternatively, extract the file from a download for your system from Given this, run the makesvn script.

Modifications and subsequent compilations can be made through the Lazarus IDE; use startlazarus to launch it. On first starting it you may receive a message about upgrading configurations on starting the IDE - just accept the upgrade. You may also see a message about configuration, which again can be accepted. On opening the PGOPHER project or an individual form, you may see the message "Unable to find the component class "TSettingsForm"" - select "Ignore, use TForm as ancestor".


Compilation on the Mac is similar to the process on Linux. See the "Installing Free Pascal under Mac OS X" section in the Lazarus wiki page at:

for more details. Compiling PGOPHER is then as for Linux.


PGOPHER uses slightly modified versions of selected parts of the LAPACK library to diagonalize matrices. Precompiled versions of these (using g77 or gfortran) are included with the source distribution, as these do not normally need to be recompiled. For systems other than Microsoft Windows this can normally be accomplished using the command:

	make -f GNUmakefile
in the utils/blas and utils/lapack directories. The modifications are mainly so that the fortran run time library is not required.