On Thu, Jul 21, 2005 at 09:09:00PM -0600, Warren Young wrote:
> >I should automate this for you, since I suggested it. :-)
>
> Your mission, should you choose to accept it, Mr. Frey, is to find out
> if the version string from configure.in is available as a variable that
> autoconf can substitute into Doxygen.in and mysql++.h.in files.
Well, it's possible. I haven't figured out an easy way to consolidate the
3 version formats into a single spot, but at least all version numbers are
in one file: configure.in. And they are in 3 lines close to each other,
so pretty easy to update, and hard to miss.
The only version numbers that have to be updated manually besides configure.in
are in the history files: Changelog, and the history log stuff in mysql++.spec.
The version at the top of mysql++.spec is handled automatically.
I haven't committed this to svn yet, since it has some file renames, etc,
and might as well let people protest first. :-)
Here's the patch.
- Chris
Index: configure.in
===================================================================
--- configure.in (revision 994)
+++ configure.in (working copy)
@@ -15,8 +15,15 @@
dnl Standard autotools stuff
-AC_INIT(lib/mysql++.h)
-AM_INIT_AUTOMAKE(mysql++, 2.0.0) # Bump in mysql++.spec & lib/Makefile.am, too!
+dnl Version bumping: don't forget:
+dnl Changelog
+dnl History in mysql++.spec
+dnl
+AC_INIT(mysql++, 2.0.0, plusplus@stripped)
+AC_SUBST(PACKAGE_LIB_VERSION, [2:0:0])
+AC_SUBST(PACKAGE_HEADER_VERSION, [0x020000])
+
+AM_INIT_AUTOMAKE
AM_CONFIG_HEADER(config.h)
AC_PROG_MAKE_SET
AC_DISABLE_STATIC
@@ -85,6 +92,6 @@
#
# Done with checks!
#
-AC_OUTPUT(Makefile lib/Makefile examples/Makefile)
+AC_OUTPUT([Makefile mysql++.spec lib/mysql++.h lib/Makefile lib/Doxyfile
examples/Makefile])
./makemake.sh simple gcc
Index: mysql++.spec.in
===================================================================
--- mysql++.spec.in (revision 994)
+++ mysql++.spec.in (working copy)
@@ -1,6 +1,6 @@
Summary: C++ wrapper for the MySQL C API
-Name: mysql++
-Version: 2.0.0
+Name: @PACKAGE_NAME@
+Version: @PACKAGE_VERSION@
Release: beta2
Copyright: LGPL
Group: Development/Databases
Index: lib/mysql++.h.in
===================================================================
--- lib/mysql++.h.in (revision 994)
+++ lib/mysql++.h.in (working copy)
@@ -40,6 +40,8 @@
#if !defined(MYSQLPP_MYSQLPP_H)
#define MYSQLPP_MYSQLPP_H
+#define MYSQLPP_LIB_VERSION @PACKAGE_HEADER_VERSION@
+
// This #include order gives the fewest redundancies in the #include
// dependency chain.
#include "connection.h"
Index: lib/Doxyfile.in
===================================================================
--- lib/Doxyfile.in (revision 994)
+++ lib/Doxyfile.in (working copy)
@@ -23,7 +23,7 @@
# This could be handy for archiving the generated documentation or
# if some version control system is used.
-PROJECT_NUMBER = 2.0
+PROJECT_NUMBER = @PACKAGE_VERSION@
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
Index: lib/Makefile.am
===================================================================
--- lib/Makefile.am (revision 994)
+++ lib/Makefile.am (working copy)
@@ -26,7 +26,7 @@
# interfaces supported. Bump the last only if explicit backwards-
# compatibility is added -- like two different versions of a single
# function. 'age' must be less than the current interface version.
-libmysqlpp_la_LDFLAGS=-version-info 2:0:0
+libmysqlpp_la_LDFLAGS=-version-info @PACKAGE_LIB_VERSION@
libmysqlpp_la_SOURCES = \
coldata.cpp connection.cpp datetime.cpp fields.cpp field_names.cpp \