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.
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.
The user manual is available online and is also available as PDF and PostScript.
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:
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
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.
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.
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.
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
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
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.
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 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=mywould install the program as "mygurgle".