2009-08-17  Daniel Elstner  <danielk@openismus.com>

	Write news entry for mm-common 0.5


2009-08-17  Daniel Elstner  <danielk@openismus.com>

	Increment version to mm-common 0.5


2009-08-17  Daniel Elstner  <danielk@openismus.com>

	Put overview documentation into README file

	* README: Compile the overview sent to the gtkmm mailing list into
	a proper document.  Make the text slightly more formal and provide
	explanations for some things not covered in the original mail.
	Mention that the shipped libstdc++.tag file was not created by us.

2009-08-17  Daniel Elstner  <danielk@openismus.com>

	Flesh out AUTHORS file for release


2009-08-17  Daniel Elstner  <danielk@openismus.com>

	Implement generic --disable-deprecated-api macro

	* macros/mm-dietlib.m4: New Autoconf macro file for configuration
	macros that have the effect of reducing the size of the compiled
	binding library.
	(MM_ARG_DISABLE_DEPRECATED_API): New M4 macro for use by C++ bindings
	in order to allow deprecated API to be omitted from the library build.

2009-08-17  Daniel Elstner  <daniel.kitta@gmail.com>

	Strip '+' from tag file name for configure option

	* macros/mm-doc.m4 (MM_ARG_WITH_TAGFILE_DOC): Correct the regular
	expression used to strip off the suffix of the tag file name in order
	to produce a suitable name for the configure option.  Specifically,
	properly handle the case of both '++' and '-d.d' occuring together.

2009-08-16  Daniel Elstner  <daniel.kitta@gmail.com>

	Be more consistent about trailing slashes

	* build/doc-reference.am (htmlrefpub): Do append a trailing slash
	after all, and say so in the documentation comment (Hi David!).
	Although Doxygen adds the slash implicitly, doc-install.pl currently
	does not, and explicit use of the slash is more consistent anyway.
	(dist_devhelpDATA_INSTALL): Append a slash after $(htmlrefdir) for
	consistency with the default $(htmlrefpub) value for --book-base.
	* doctags/mm-common-libstdc++.pc.in (htmlrefpub): Append a slash.
	* doctags/mm-common-libstdc++-uninstalled.pc.in (htmlrefpub): ditto.

2009-08-15  Daniel Elstner  <daniel.kitta@gmail.com>

	Briefly document _MM_ARG_ENABLE_WARNINGS_OPTION


2009-08-15  Daniel Elstner  <daniel.kitta@gmail.com>

	Bump version to mm-common 0.4

	* configure.ac (AC_INIT): Increment version number to 0.4.
	* NEWS: Change top entry to mention version 0.4, but state that
	there has not actually been a release yet.

2009-08-15  Daniel Elstner  <daniel.kitta@gmail.com>

	Make MM_INIT_MODULE version argument optional

	* macros/mm-module.m4 (MM_INIT_MODULE): If no version argument has
	been specified, use the expansion of AC_PACKAGE_VERSION as default
	value.

2009-08-15  Daniel Elstner  <daniel.kitta@gmail.com>

	Reorganize and clean up MM_ARG_ENABLE_WARNINGS

	* macros/mm-warnings.m4 (_MM_ARG_ENABLE_WARNINGS_OPTION): Move the
	AC_ARG_ENABLE() call from MM_ARG_ENABLE_WARNINGS() to this separate
	macro, in order to use it via AC_REQUIRE().  Although Autoconf deals
	correctly with duplicated calls to AC_ARG_ENABLE(), it is made more
	explicit this way and avoids repeating the variable assignment.
	(MM_ARG_ENABLE_WARNINGS): Require _MM_ARG_ENABLE_WARNINGS_OPTION and
	_MM_PRE_INIT.  If the current language could not be detected as C or
	C++ at runtime, bail out with an error message instead of silently
	ignoring the request to gather compiler warning flags.  Also, avoid
	emitting dead shell commands if the deprecation-prefixes argument is
	not used.

2009-08-15  Daniel Elstner  <daniel.kitta@gmail.com>

	Restructure and comment MM_ARG_WITH_TAGFILE_DOC

	* macros/mm-doc.m4 (_MM_ARG_WITH_TAGFILE_DOC): Add a fourth parameter
	pkg-variable to avoid repeating the M4 expression to select between
	the ${htmlrefdir} and ${htmlrefpub} values for @DOXYGEN_TAGFILES@.
	Simplify the AS_CASE logic used to test for a trailing slash.  Move
	the code which appends a trailing slash to ${htmlrefpub} to a later
	point in the shell execution, in order to correctly append the slash
	to a user-supplied local path as well.
	(MM_ARG_WITH_TAGFILE_DOC): Pass the additional pkg-variable argument
	to _MM_ARG_WITH_TAGFILE_DOC().

2009-08-15  Daniel Elstner  <daniel.kitta@gmail.com>

	Require _MM_PRE_INIT in MM_PKG_CONFIG_SUBST


2009-08-15  Daniel Elstner  <daniel.kitta@gmail.com>

	Remove _MM_PRE_INIT from mm-module.m4


2009-08-15  Daniel Elstner  <daniel.kitta@gmail.com>

	Implement MM_PREREQ() Autoconf macro

	* macros/mm-common.m4.in: New configure input file.
	(_MM_PRE_INIT): Move macro from mm-module.m4 to mm-common.m4.
	(MM_PREREQ): Implement a version check macro akin to AC_PREREQ() and
	similar macros.  This may be used to ensure the presence of a minimum
	version of the mm-common package at the time the configure script is
	generated, should the need ever arise.
	* configure.ac (AC_CONFIG_FILES): Add output file macros/mm-common.m4.
	* Makefile.am (aclocal_macro_DATA): Install macros/mm-common.m4.

2009-08-14  Daniel Elstner  <daniel.kitta@gmail.com>

	Rename tags/ to doctags/ to avoid name clash

	* doctags/: Rename tags/ subdirectory to avoid clashing with the make
	tags target automatically generated by Automake.  This has not caused
	any problems so far, but there is no reason to ask for it.
	* doctags/mm-common-libstdc++*.pc.in: Change the install location of
	the tag files as well, to minimize confusion.
	* configure.ac (AC_CONFIG_FILES): Adjust output file locations.
	* Makefile.am (doctagsdir): Rename variable from $(doxygen_tagsdir)
	and adjust value to point to the new install location of tag files.

2009-08-13  Daniel Elstner  <danielk@openismus.com>

	Correctly append / to local links as well

	* macros/mm-doc.m4 (_MM_ARG_WITH_TAGFILE_DOC): Correct the previous
	change and also append a trailing slash to directories retrieved via
	pkg-config.

2009-08-13  Daniel Elstner  <danielk@openismus.com>

	Correct mangled links to external documentation

	* macros/mm-doc.m4 (_MM_ARG_WITH_TAGFILE_DOC): Append a trailing slash
	to $mm_htmlrefdir and $mm_htmlrefpub if the path does not end in a slash
	already and is not empty.

2009-08-11  Daniel Elstner  <danielk@openismus.com>

	Do not substitute zero-length documentation prefix

	* macros/mm-doc.m4 (_MM_ARG_WITH_TAGFILE_DOC): Correctly test whether
	the location prefix given for a tag file is set, and do not assign an
	empty prefix to a tag file in the @DOXYGEN_TAGFILES@ output variable.
	For the $(DOCINSTALL_FLAGS) list, omit the flag altogether if no path
	can be substituted.

2009-08-11  Daniel Elstner  <danielk@openismus.com>

	Bump version to mm-common 0.3

	* configure.ac (AC_INIT): Increment version number to 0.3.
	(AM_INIT_AUTOMAKE): Add check-news option and remove tar-ustar.
	* NEWS: Write news entry for mm-common 0.3.

2009-08-11  Daniel Elstner  <danielk@openismus.com>

	Fix test for already set MMDOCTOOLDIR variable

	* macros/mm-doc.m4 (_MM_CONFIG_DOCTOOL_DIR): Replace the completely
	bogus condition, intended to check whether MMDOCTOOLDIR is already
	set, by a test which actually does that.
	(MM_ARG_ENABLE_DOCUMENTATION): Require MM_CONFIG_DOCTOOL_DIR().
	(MM_ARG_WITH_TAGFILE_DOC): ditto.

2009-08-10  Daniel Elstner  <danielk@openismus.com>

	Switch back from Autoconf tracing to sed

	* util/mm-common-prepare.in: Go back to the old method of using the
	sed stream editor to extract the macro arguments from configure.ac.
	Unfortunately, it turns out that Autoconf tracing fails to extract
	the arguments of custom macros when building from a clean tree.

2009-08-10  Daniel Elstner  <danielk@openismus.com>

	Make mm-doc.m4 macros call _MM_PRE_INIT if needed

	* macros/mm-doc.m4: Add AC_REQUIRE([_MM_PRE_INIT]) calls to public
	macros to ensure that the initialization is always expanded first.

2009-08-10  Daniel Elstner  <danielk@openismus.com>

	Make mm-common-prepare copy doc tools on request

	* Makefile.am (dist_doctool_DATA): Install documentation utilities
	to the $(pkgdatadir)/doctool directory.
	* macros/mm-doc.m4 (MM_CONFIG_DOCTOOL_DIR): New Autoconf macro for
	locating the documentation utilities.  Either a local directory in
	the source tree can be used, or alternatively pkg-config will be
	invoked and request the install location from the glibmm-2.4 module.
	* util/mm-common-prepare.in: Scan configure.ac for calls to the new
	MM_CONFIG_DOCTOOL_DIR() macro.  If a local directory name was given,
	copy the documentation utilities into the source tree.

2009-08-09  Daniel Elstner  <daniel.kitta@gmail.com>

	Implement filename globbing within doc-install.pl

	* util/doc-install.pl: Add a new --glob flag, which tells the script
	to interpret the source arguments as glob patterns instead of literal
	filenames.  Performing the filename glob expansion internally avoids
	excessively long argument lists, which can unfortunately be a problem
	with some platforms.  Also, remember the basename of every installed
	file, and use that information to skip over files whose basename has
	already been seen.
	* util/doc-postprocess.pl: Also perform globbing internally to avoid
	excessively long command lines.
	* build/doc-reference.am (MMDOCTOOLDIR): Use this separate variable
	instead of GMMPROC_DIR for the default location of the documentation
	utility scripts.
	(doc_postprocess), (doc_install), (tagfile_to_devhelp2): Derive
	default values from $(MMDOCTOOLDIR).  Include the interpreter command
	$(PERL) as part of the variable value, just in case someone needs to
	override the Perl interpreter as well.
	(install-data-local): Use the new --glob feature of doc-install.pl
	instead of having make expand the entire list of filenames into the
	shell command-line.
	(uninstall-local): Do not rely on globbing at the shell level for
	producing the list of files to delete, since it would probably exceed
	the command line length limits of some platforms.  Do not go back to
	rm -rf either, but use a combination of 'find' and 'rm -f' to restrict
	the deletion to those files that match the same glob pattern as the
	one used to select the files to install.

2009-08-09  Daniel Elstner  <daniel.kitta@gmail.com>

	Add implicit pre-initialization to mm-module

	* macros/mm-module.m4 (_MM_PRE_INIT): New private pre-initialization
	macro.  For now, it does not do much except for installing a forbidden
	token pattern in order to catch unexpanded MM_ macros.
	(MM_INIT_MODULE): Invoke _MM_PRE_INIT through AC_REQUIRE().

2009-08-09  Daniel Elstner  <daniel.kitta@gmail.com>

	Allow code generator locations to be overridden

	* build/generate-binding.am (gmmproc): New overridable variable,
	pointing by default to the gmmproc installed by glibmm.
	(gen_wrap_init): Likewise for generate_wrap_init.pl.
	(gmmproc_flags): New overridable variable for specifying the flags
	passed to gmmproc on the command line.

2009-08-09  Daniel Elstner  <daniel.kitta@gmail.com>

	Handle extra private headers in compile-binding

	* build/compile-binding.am (binding_private_HEADERS): Substitute the
	value of variable $(files_extra_ph) in addition to $(files_built_ph).

2009-08-09  Daniel Elstner  <daniel.kitta@gmail.com>

	Query auxiliary directory via Autoconf trace mode

	* util/mm-common-prepare.in: Instead of using a sed program to parse
	configure.ac manually, invoke Autoconf in trace mode to collect the
	first argument to the AC_CONFIG_AUX_DIR() macro.

2009-08-08  Daniel Elstner  <danielk@openismus.com>

	Split MM_ARG_ENABLE_DOCUMENTATION for AC_REQUIRE

	* macros/mm-doc.m4 (MM_ARG_ENABLE_DOCUMENTATION): Move the macro body
	to a separate implementation macro, pulled in by means of AC_REQUIRE.
	The indirection ensures the consistent use of AC_REQUIRE, so that the
	macro is always expanded only once.

2009-08-08  Daniel Elstner  <danielk@openismus.com>

	Fix handling of mm-common-prepare --force

	* util/mm-common-prepare.in: Simply check whether $forceflag is empty
	instead of doing a string comparison and getting it wrong.  Also, for
	improved robustness, use a fixed list of files to install instead of
	a wildcard pattern.  Make the sed expression to extract the auxiliary
	build directory skip over both spaces and tabs.

2009-08-07  Daniel Elstner  <danielk@openismus.com>

	Handle relative path to tag file correctly

	* macros/mm-doc.m4 (_MM_ARG_WITH_TAGFILE_DOC): Prepend the absolute
	path of the current directory to the tag file path if the path given
	to the --with-MODULE-tags option has a leading "." or ".." component.

2009-08-06  Daniel Elstner  <danielk@openismus.com>

	Turn '+' in module name into 'X' for identifier

	* macros/mm-module.m4 (_MM_INIT_MODULE_BASENAME): Insert a call to
	m4_translit() to change '+' characters in the module name into 'X'
	for the preprocessor identifier.

2009-08-06  Daniel Elstner  <danielk@openismus.com>

	Bump package version to mm-common 0.2


2009-08-06  Daniel Elstner  <danielk@openismus.com>

	Fix typo in shell parameter substitution

	* util/mm-common-prepare.in (progname): It's ${0##*/}, not ${0##/*}.

2009-08-06  Daniel Elstner  <danielk@openismus.com>

	Handle multiple make targets correctly

	* Makefile.am (check_updates): Modify the conditional expression so
	that it will trigger the update if any of the make targets specified
	on the command line starts with "all".

2009-08-06  Daniel Elstner  <daniel.kitta@gmail.com>

	Skip the check for remote updates on make install

	* Makefile.am: Clean up and add a few more comments.
	(check_updates): Declare the download targets phony only when building
	the default make target.  This avoids triggering the download again on
	make install.
	* configure.ac (CURL), (WGET): Call AC_ARG_VAR() on these variables.
	(AC_CONFIG_SRCDIR): Check for the file util/mm-common-prepare.in since
	it is more likely to be unique to this module.

2009-08-05  Daniel Elstner  <danielk@openismus.com>

	Check libstdc++.tag for updates on every build

	* Makefile.am (tags/libstdc++.tag): Make the tag file a phony target
	if maintainer mode is enabled, so that its commands will always run.
	Use the time-stamping features of curl and wget to avoid downloading
	the tag file again if it has not changed.

2009-08-05  Daniel Elstner  <danielk@openismus.com>

	Only show commands actually executed by make

	* Makefile.am (tags/libstdc++.tag): Use $(if ...) construct to handle
	the condition at the make level, instead of using shell conditionals.
	This way, the make output only displays the command that was actually
	executed.
	(.DELETE_ON_ERROR): Enable delete-on-error mode for reliability.
	* configure.ac (AM_INIT_AUTOMAKE): Add -Wno-portability to suppress
	warnings about GNU make extensions being used.

2009-08-05  Daniel Elstner  <danielk@openismus.com>

	Download and install the libstdc++ Doxygen tags

	* tags/mm-common-libstdc++.pc.in: New pkg-config data file with meta
	information about the libstdc++ Doxygen documentation, in particular
	where to find the tag file.
	* tags/mm-common-libstdc++-uninstalled.pc.in: Likewise, but for use
	without installing.
	* configure.ac: Check for the presence of the curl and wget utilities,
	and make it mandatory in maintainer mode that at least one of them is
	available.  Add the pkg-config files to the output file list.
	* Makefile.am (tags/libstdc++.tag): New custom rule for downloading
	the libstdc++ tag file from the gcc.gnu.org website.  Install the
	pkg-config data files so that dependent modules can find the tag file
	and the location of the libstdc++ online documentation.

2009-08-04  Daniel Elstner  <danielk@openismus.com>

	Create mm-common module

