How to download source code for the development version of gnuplot

Source code for the development version of gnuplot is kept on SourceForge. However, the best way to get the complete set of source is to install the cvs tools on your own machine and use them to access the SourceForge site.

Creating a copy of the CVS source tree on your local machine

This will create a subdirectory named ./gnuplot, and copy the cvs source tree into it.
csh version
setenv CVS_RSH ssh
setenv CVSROOT ':pserver:anonymous@gnuplot.cvs.sourceforge.net:/cvsroot/gnuplot'
cvs login
        (hit <cr> - no password needed for anonymous)
cvs -z3 checkout gnuplot

bash version
export CVS_RSH=ssh
export CVSROOT=:pserver:anonymous@gnuplot.cvs.sourceforge.net:/cvsroot/gnuplot
cvs login

cvs -z3 checkout gnuplot

If you just want to build the current version without patching

If you don't have any patches to apply, at this point you can build the current CVS version using the following sequence of commands:
cd ./gnuplot
./prepare
./configure
make
If you want to explore the possible configuration options, you can get a list by typing
./configure --help
By default the CVS version has all options turned on, but you might want to specify some particular prefered external libraries. The only extra option I use myself is:
./configure --with-readline=gnu

Applying the patches

Download the patches you want. I will assume you are getting patches from this site, but you may also want to look at the much longer list of submitted patches at SourceForge. I recommend renaming your local copy of the source directory before patching, so that later on you can update your copy of the CVS source without overwriting or colliding with your local patched copy. To apply the patches and reconfigure the patched source for your local setup:
mv ./gnuplot ./gnuplot-patched
cd ./gnuplot-patched
patch -p1 < ../patch1.patch
patch -p1 < ../patch2.patch
./prepare
./configure --help      (to see the configuration options)
./configure --enable-datastrings --enable-histograms
make
The downloaded patches are not always a perfect match to the current CVS code, because the code keeps getting updated (that's the whole point!). So you may see warning messages from the patch commands. You can ignore most of these, but if you see messages like:
2 out of 5 hunks FAILED -- saving rejects to file src/unset.c.rej
then you have a problem and will have to fix this particular file by hand. If you want to test patch compatibility before actually applying it, you can use the command
patch -p1 --dry-run < ../patch1.patch


Ethan A Merritt
15 Feb 2005