[gxml] * add better version logic to configure.ac, also add some voodoo from libfolks



commit c3743bfa020385c9b7233544380975718e098f28
Author: Richard Schwarting <aquarichy gmail com>
Date:   Wed Aug 22 03:29:17 2012 -0400

    * add better version logic to configure.ac, also add some voodoo from libfolks

 configure.ac |  146 +++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 115 insertions(+), 31 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index b1b36c9..8680c89 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,23 +1,76 @@
-dnl Process this file with autoconf to produce a configure script.
+#  this file with autoconf to produce a configure script.
 
-AC_CONFIG_MACRO_DIR([m4])
-m4_include(m4/introspection.m4)
+# Sections
+#   Version numbers
+#   Setup
+#   Dependencies
+#   Output
 
-AC_INIT(gxml, 0.3)
 
-AC_CONFIG_HEADERS([config.h])
+### Version numbers
 
-AM_INIT_AUTOMAKE([1.11])
+# Release Version
+m4_define([project_major_version], [0])
+m4_define([project_minor_version], [3])
+m4_define([project_micro_version], [0])
+m4_define([project_nano_version], [0])
 
-AM_SILENT_RULES([yes])
+# LT_VERSION
+#   If library source has changed since last release, increment revision
+#   If public symbols have been added, removed or changed since last release,
+#     increment current and set revision to 0
+#   If public symbols have been added since last release, increment age
+#   If public symbols have been removed since last release, set age to 0
+m4_define([project_lt_current], [2])
+m4_define([project_lt_revision], [0])
+m4_define([project_lt_age], [0])
 
-AC_PROG_CC
+# Combine numbers to various version variables (different uses)
+#   Display the nano_version only if it's not '0'
+m4_define([project_base_version],
+          project_major_version.project_minor_version.project_micro_version)
+m4_define([project_full_version],
+          [m4_if(project_nano_version, [0],
+                 project_base_version, project_base_version.project_nano_version)])
+
+m4_define([project_maybe_datestamp],
+          m4_if(project_released, [1],
+                [], [m4_esyscmd([date +.%Y%m%d | tr -d '\n\r'])]))
+
+m4_define([project_version], project_full_version[]project_maybe_datestamp)
+m4_define([project_major_minor_version], project_major_version.project_minor_version)
+m4_define([project_module_version], project_lt_current)
+
+
+
+### Setup
+
+# Initialise autoconf with project details, version
+AC_INIT([gxml], project_version,
+        [https://bugzilla.gnome.org/browse.cgi?product=gxml], [gxml],
+        [http://live.gnome.org/GXml])
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
+AC_PREREQ([2.65])
+AC_COPYRIGHT([Copyright (C) 2012 Richard Schwarting])
 
+# Configure various files and settings for autoconf/automake
+AC_CONFIG_MACRO_DIR([m4])
+AC_CONFIG_SRCDIR([Makefile.am])
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_SRCDIR([configure.ac])
+AM_INIT_AUTOMAKE([1.11 dist-bzip2 no-define
+                  no-dist-gzip tar-ustar -Wno-portability])
+AM_MAINTAINER_MODE([enable])
+
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_DISABLE_STATIC
+
+# Introspection
+m4_include(m4/introspection.m4)
 
-dnl ***************************************************************************
-dnl Internationalization
-dnl ***************************************************************************
+# Internationalization
 IT_PROG_INTLTOOL([0.35.0])
 
 GETTEXT_PACKAGE=gxml
@@ -25,22 +78,51 @@ AC_SUBST(GETTEXT_PACKAGE)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [GETTEXT package name])
 AM_GLIB_GNU_GETTEXT
 
-
+# Initialise libtools (handles library creation) with stuff from above
 LT_INIT
 
-dnl ***************************************************************************
-dnl Dependencies
-dnl ***************************************************************************
+PKG_PROG_PKG_CONFIG([0.21])
+GLIB_SETTINGS
+
+AC_SUBST([CFLAGS])
+AC_SUBST([CPPFLAGS])
+AC_SUBST([LDFLAGS])
+
+LT_CURRENT=project_lt_current
+LT_REVISION=project_lt_revision
+LT_AGE=project_lt_age
+AC_SUBST([LT_CURRENT])
+AC_SUBST([LT_REVISION])
+AC_SUBST([LT_AGE])
+
+PROJECT_MAJOR_MINOR_VERSION=project_major_minor_version
+AC_SUBST([PROJECT_MAJOR_MINOR_VERSION])
+
+API_VERSION=0.3
+AC_SUBST([API_VERSION])
+
+
+
+
+
+### Dependencies
+
 GLIB_REQUIRED=2.16.0
+VALA_REQUIRED=0.15.2
+VALA_MODULES="libvala-0.16 >= 0.16"
+GEE_REQUIRED=0.6.1
+LIBXML_REQUIRED=2.7
+GIO_MODULES="gio-2.0 >= 2.16"
 VALADOC_REQUIRED=0.3.1
 
-PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED)
+# Check glib
+PKG_CHECK_MODULES([GLIB],
+                  [glib-2.0 >= $GLIB_REQUIRED
+                   gobject-2.0 >= $GLIB_REQUIRED])
 AC_SUBST(GLIB_CFLAGS)
 AC_SUBST(GLIB_LIBS)
 
-dnl Check for vala
-VALA_MODULES="libvala-0.16 >= 0.16"
-
+# Check for vala
 PKG_CHECK_MODULES(VALA, $VALA_MODULES)
 AC_SUBST(VALA_CFLAGS)
 AC_SUBST(VALA_LIBS)
@@ -53,27 +135,22 @@ AM_CONDITIONAL(HAVE_VAPIGEN, test x$VALA_VAPIGEN != x"")
 VALA_VAPIDIR=`pkg-config $VALA_MODULES --variable=vapidir`
 AC_SUBST(VALA_VAPIDIR)
 
-dnl Check for libgee
-GEE_REQUIRED="0.6.1"
-
+# Check for libgee
 PKG_CHECK_MODULES(GEE, gee-0.8 >= $GEE_REQUIRED)
 AC_SUBST(GEE_CFLAGS)
 AC_SUBST(GEE_LIBS)
 
-dnl Check for libxml2
-LIBXML_REQUIRED="2.7"
-
+# Check for libxml2
 PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= $LIBXML_REQUIRED)
 AC_SUBST(LIBXML_CFLAGS)
 AC_SUBST(LIBXML_LIBS)
 
-dnl Check for GIO
-GIO_MODULES="gio-2.0 >= 2.16"
+# Check for GIO
 PKG_CHECK_MODULES(GIO, $GIO_MODULES)
 AC_SUBST(GIO_CFLAGS)
 AC_SUBST(GIO_LIBS)
 
-dnl Documentation
+# Documentation with Valadoc
 AC_ARG_ENABLE([docs],
               AS_HELP_STRING([--enable-docs],[Enable documentation generation]),
 	      [enable_docs=$enableval], [enable_docs=no])
@@ -92,7 +169,7 @@ if test "x$enable_docs" = "xyes" -a "x$have_valadoc" != "xyes"; then
   AC_MSG_ERROR([Doc building requested for valadoc but not installed.])
 fi
 
-dnl Check for GObject Introspection
+# Check for GObject Introspection
 GOBJECT_INTROSPECTION_CHECK([0.6.7])
 
 AC_ARG_ENABLE([gi-system-install],
@@ -100,15 +177,22 @@ AC_ARG_ENABLE([gi-system-install],
     [enable_gi_system_install=$enableval],[enable_gi_system_install=yes])
 AM_CONDITIONAL(ENABLE_GI_SYSTEM_INSTALL, [test x"$enable_gi_system_install" = "xyes"])
 
+
+
+# TODO: should libgxml.pc have no version number in it?
+
+### Autoconf generating Makefiles
 AC_OUTPUT([
 Makefile
-gxml/libgxml.pc
+gxml/gxml.pc
 gxml/Makefile
 test/Makefile
 docs/Makefile
 po/Makefile.in])
 
-dnl Print configuration summary
+
+
+# Print configuration summary
 echo ""
 echo " Configuration summary for GXml"
 echo "   Installation prefix:                          $prefix"



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]