GURGLE - GNU REPORT GENERATOR LANGUAGE

The GURGLE program reads record and field information from a dBase3+ file, delimited ascii text file or from an SQL query to a RDBMS and produces a report listing. Although the program was originally designed to produce TeX/LaTeX formatted output, plain ascii text, troff, PostScript, HTML, XML, shell scripts or any other kind of ascii based output format can be produced just as easily.

The program is ideal for generating large bodies of text where small parts of that text are substituted with information from a database. So its great for generating mainly static web pages which have small amounts of dynamic content.

The formatting process is controlled by a definition file which holds the report, page, and record layouts, what fields to display, and where. Other useful functions supported in the definition file include sorting, filtering, and data manipulation of records in the databases.

Below is a summary of the main features of GURGLE.

TUTORIAL

There is an online tutorial to get you started using gurgle.

There is also an archive of useful functions that you can include into your gurgle definition files.

DOCUMENTATION

The user manual is available online and is also available as PDF and PostScript.

DOWNLOAD

The URL for the current release is:

Alternatively goto the GNU home page at:

You can also get the current release in RPM format built for the Scientific Linux 5 distribution (although should also work on any other recent RPM based distribution such as Fedora12) and various databases as below:

UNPACK

To unpack do:

  tar xvzf gurgle-1.61.tar.gz
  cd gurgle-1.61

If your tar command does not have compression support do:

  gunzip -c gurgle-1.61.tar.gz | tar xvf -
  cd gurgle-1.61

CONFIGURATION

The program can be built with no RDBMS support or it can be built to include support for one (and only one) RDBMS. It can also be built with support for GUILE. See one of the specific installation sections below.

DEFAULT INSTALLATION

To compile, build and install the default version of GURGLE which has support for delimited text files and dBase3+ (.dbf) files but no support for a RDBMS do the following:

  ./configure
  make
  make install

If you want support for a RDBMS or you want support for GUILE see the specific installation sections below.

GNUSQL RDBMS INSTALLATION

To compile, build and install a version of GURGLE which also has support for the GNUSQL RDBMS do the following:

  ./configure --enable-gnusql
  make
  make install

The gsqlc program (part of the GNUSQL distribution) will be required to pre-process the driver source and must be in your path.

POSTGRESQL RDBMS INSTALLATION

To compile, build and install a version of GURGLE which also has support for the PostgreSQL RDBMS do the following:

  ./configure --enable-postgres
  make
  make install

MYSQL RDBMS INSTALLATION

To compile, build and install a version of GURGLE which also has support for the MySQL RDBMS do the following:

  ./configure --enable-mysql
  make
  make install

You may need to do the following before the ./configure so that the MySQL libraries are correctly found and used during compilation:

  export LDFLAGS=-L/usr/lib/mysql

INGRES RDBMS INSTALLATION

To compile, build and install a version of GURGLE which also has support for the CA-Ingres RDBMS do the following:

  ./configure --enable-ingres
  make
  make install

You may need to set the II_SYSTEM environment variable as appropriate to your local installation of CA-Ingres before the build so that the esqlc program (part of the CA-Ingres distribution) and libraries can be found.

GUILE INSTALLATION

To compile, build and install a version of GURGLE which also has support for embedded GUILE equate processing do the following:

  ./configure --enable-guile
  make
  make install

The "--enable-guile" option can also be used in combination with any one of the specific RDBMS installations above.

OTHER CONFIGURATION OPTIONS

Other standard configuration options are supported, to set a non-default installation path for example. See the INSTALL file for details on these.

You may want to prefix the final program name based on the RDBMS name it has been built with, so for MySQL for example:

 
   ./configure --enable-mysql --program-prefix=my
would install the program as "mygurgle".