There has been a lot of buzz about the MySQL
5.5 GA release and its new
features and other user-visible improvements. In this blog post,
I'd like to touch on a less noticeable, but still important change.
CMake has already been used to
build the MySQL Server on Windows for a long time, while the GNU
autotools were used on all other platforms. Since MySQL 5.5, all
builds on all platforms are now performed using the same tool chain.
With the latest release of MySQL 5.5, we've made an important step to
clean up and simplify the MySQL build system: the support for
autoconf/automake has now been removed completely. We've been
performing the release builds of MySQL 5.5 using CMake exclusively
for quite some time already. It became obvious that maintaining two
separate build systems simply had become too much of a burden for our
engineers, especially since the autotools-based builds were no longer
exhaustively tested. This change was outlined in WorkLog#5665
- Removal of the autotools-based build system. We've made this
step in close
cooperation with our community of packagers (e.g. the maintainers
of MySQL packages on the various Linux distributions).
By moving to CMake, we are giving our developers one common build
mechanism for all platforms and there is a lot of new useful
functionality such as out-of-source builds or a GUI for configuring
the build options. And they can now build MySQL in the very same way
that we do it for our own binaries! I've covered the advantages in my
previous blog post about Building
MySQL Server with CMake on Linux/Unix
already. We've also created a general article about CMake
and MySQL as well as an
Autotools
to CMake Transition Guide on the MySQL Forge Wiki. The
description of the source build process in the reference
manual has also been updated to reflect this change.
A big “thank you” should to go to Vladislav Vaintroub
and Davi Arnaut for implementing and pushing the transition to CMake
forward, and to Paul DuBois for creating and improving the
documentation! Wearing my former build and release engineer hat, I am
very happy about this change.
Other CMake-related articles that are worth reading: