PLplot has several build systems, suited for different platforms:
- The system based on autotools, meant for UNIX, Linux and such platforms
- The system for building the PLplot library on Windows, using the
(compiler, linker, batch files, nmake)
This was necessary, because the autotools do not run on basic Windows
(you need Cygwin or MinGW to get the right environment).
Several months ago, Alan started porting PLplot to the CMake build system
and given the success we have had in adapting it for all platforms we
support, this "CBS" will be the default build system for PLplot 5.7.0 which
is due in a few days/weeks. The autotools build system will no longer be
supported (or at least not as intensively as it used to).
This raises the question whether the Windows-specific build system should
be deprecated as well. And this is what I wanted to consult you all about.
Let me review the advantages and disadvantages of both systems:
- Nothing needed except the MSVC 6.0 compiler and the tools that come
- Limited support for more modern versions of the MS Visual C/C++
(you need to build a project for it yourself)
- Limited support for Fortran (there is a preliminary makefile to
Fortran wrapper library), only suitable for Compaq Visual Fortran
- No support for the scripting (dynamic) languages (Perl, Python and
- Currently no support for external libraries, such as GD to make PNG,
JPEG and GIF files.
- No support for antialiasing fonts
- (From a maintainer's point of view) Separate sources that need to be
adjusted to reflect general development, separate driver (win3) that
looks a lot like the wingcc driver that is used for Cygwin and MinGW
- Further developing this build system will be a time-consuming affair.
All the nice extra features (antialiasing fonts, more programming
extra drivers) require considerable updates of the makefiles, as
only an ad hoc method to configure them.
- Generation of makefiles or project files or solutions, depending on your
preferences and the available tools
- Support for other C/C++ compilers than MSVC 6.0
- Support for other builds than the release build (creating a debuggable
library is easy)
- Support for Fortran (several compilers) and Tcl.
- Automatic builds for all sets of examples (C, C++, Fortran, Tcl)
- (From a maintainer's point of view)
- The source code is _exactly_ the same as for the UNIX-like
including the driver (wingcc)
- It is much easier to expand the supported languages and compilers
(For Java and Python this has not been done yet. The wrappers are
created via SWIG and the procedure is well established for
- You will need to install CMake - that is easy enough, but it is an
- The system is new, it has only been tested by the maintainers and a
- There are still a few quirks that need to be solved (this has to do
location of the generated DLLs and other output files, but the old
does not provide much support there either)
- With CBS it will be much easier to incorporate developments from the
other platforms. The main problems have to do with _finding_ the
external libraries as under Windows there is no particular
standard location for
_libraries_ (as opposed to applications).
- The deployment component CPack in CMake may be helpful in providing
binary versions of the libraries. We have no experience with it at
but it looks like a good solution for people who can not or do not
build the library themselves.
So, here are my primary questions:
Is there a need to continue maintaining the old build system, based on
and Windows-specific source code? Would the use of CBS mean that PLplot
becomes inaccessible for you?
I realise that the above description is rather biased towards CBS, but
a much better build system, from a maintainer's point of view at the very
Awaiting your replies,