WL#5665: Removal of the autotools-based build system
Affects: Server-5.6 — Status: Complete — Priority: Medium
The autotools-based build system has been superseded and should be removed in order to ease the maintenance burden on developers tweaking the build system.
One important aspect is that this removal will break third-party tools that rely on autotools-specific files. For example, some tools parse configure.in to extract the server version. Since configure.in is going to be removed, those tools need to be upgraded to extract this information from a new and specific file (i.e. VERSION). Places that need to be checked and updated: 1) CMake based version extraction. cmake/mysql_version.cmake 2) Packing of autotools scripts in the source distribution. 3) CMake's based configure wrapper. 4) Wiki page http://forge.mysql.com/wiki/CMake 5) Documentation. Suggestion from Kristian Nielsen: "It might be useful to convert the emulation layer into a documentation file describing for each old autoconf option how (and if) the same effect is obtained with CMake."
In order to support tools that need to extract the server version, a new top-level file, named VERSION, is introduced. The file contains the individual components of the server version (major, minor, patch and extra). The file contents are human and machine-readable. The format is: MYSQL_VERSION_MAJOR=5 MYSQL_VERSION_MINOR=5 MYSQL_VERSION_PATCH=7 MYSQL_VERSION_EXTRA=-rc Also, a makefile target that prints the server version is added: show-dist-name: @echo "$(PACKAGE)-$(VERSION)" where PACKAGE is "MySQL" and VERSION is a concatenation of the above version fields. List of files removed (does not apply for storage/ndb): - Makefile.am files. - config/ac-macros/*.m4 and config/ as a whole. - configure.in files (there were some in plugin/). - plug.in files. - win/configure.js, win/create_manifest.js, win/mysql_manifest.cmake, win/README. - support-files/SCO/
Copyright (c) 2000, 2017, Oracle Corporation and/or its affiliates. All rights reserved.