Thanks to Daniel Stone for providing the idea of using a .pc file. This
provides a robust implementation to copy the INSTALL file from a single
location to all xorg modules.  It can be updated every release if need
be with a single check-in.

The time honoured behaviours of ChangeLog are replicated.  When the file
cannot be copied, the existing one, if any, is not overwritten. If none
existed, an empty file is created so the tarball is created anyway.
Similar to ChangeLog, if the file is deleted from a tarball and
util-macros is not available, then it cannot be created. In that case,
one would have to obtain it from the original tarball or from git.

Note that xorg-macros.pc is installed in $prefix/share/pkgconfig because
it is architecture independent. I recalled a discussion about libxtrans
that could not cross compile.

I will release an additional patch for each module  to add both
ChangeLog and INSTALL on the MAINTAINERCLEANFILES list.

There has been questions as to what a module should do when additional
information is required, now that the INSTALL is standard. Here is an
excerpt fromthe INSTALL file:

Basic Installation
==================

   Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package.  The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package.


Thank you very much for all those who helped with this issue.

The content of the XORG_INSTALL macro:

AC_REQUIRE([PKG_PROG_PKG_CONFIG])
macros_docdir=$($PKG_CONFIG --print-errors --variable=docdir
xorg-macros)
INSTALL_CMD="(cp -f "$macros_docdir/INSTALL" \$(top_srcdir)/.INSTALL.tmp
&& \
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \
echo 'util-macros \"docdir\" from xorg-macros.pc not found: installing
possibly empty INSTALL.' >&2)"

The new xorg-macros.pc.in:

pref...@prefix@
exec_pref...@exec_prefix@
libd...@libdir@
included...@includedir@
datarootd...@datarootdir@
datad...@datadir@
package_tarna...@package_tarname@
# Used by XORG_INSTALL
docd...@docdir@

Name: X.Org Macros
Description: A set of autoconf project macros for X.Org modules
Version: @PACKAGE_VERSION@

To compare with XORG_CHANGELOG macro:

CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \
$(top_srcdir)/.changelog.tmp && \
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog;
\
echo 'git directory not found: installing possibly empty changelog.'
>&2)"




>From 2c10c1b272a9388e7ef3f8a6e1f723acea3be5af Mon Sep 17 00:00:00 2001
From: Gaetan Nadon <[email protected]>
Date: Sat, 21 Nov 2009 17:28:32 -0500
Subject: [PATCH] xorg-macros.pc.in: create a meta data file for util-macros

This is motivated primarly by XORG_INSTALL who needs to locate
the docdir when invoked from any module that may not be installed
using same prefix (default or otherwise).

There are other potential use for this file.
---
 Makefile.am       |    5 +++++
 configure.ac      |    1 +
 xorg-macros.pc.in |   14 ++++++++++++++
 3 files changed, 20 insertions(+), 0 deletions(-)
 create mode 100644 xorg-macros.pc.in

diff --git a/Makefile.am b/Makefile.am
index 49c2d17..1e07014 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -29,6 +29,11 @@ dist_doc_DATA = INSTALL
 install-data-hook:
 	rm -f $(DESTDIR)$(aclocaldir)/xorgversion.m4
 
+pkgconfigdir = $(datadir)/pkgconfig
+pkgconfig_DATA = xorg-macros.pc
+
+EXTRA_DIST = xorg-macros.pc.in
+
 .PHONY: ChangeLog
 
 ChangeLog:
diff --git a/configure.ac b/configure.ac
index 8b1d450..4daec6a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -40,5 +40,6 @@ m4_include([xorgversion.m4])
 XORG_RELEASE_VERSION
 XORG_CHANGELOG
 
+AC_CONFIG_FILES([xorg-macros.pc])
 AC_CONFIG_FILES([Makefile xorg-macros.m4:xorg-macros.m4.in:xorgversion.m4])
 AC_OUTPUT
diff --git a/xorg-macros.pc.in b/xorg-macros.pc.in
new file mode 100644
index 0000000..1144fb4
--- /dev/null
+++ b/xorg-macros.pc.in
@@ -0,0 +1,14 @@
+pref...@prefix@
+exec_pref...@exec_prefix@
+libd...@libdir@
+included...@includedir@
+datarootd...@datarootdir@
+datad...@datadir@
+package_tarna...@package_tarname@
+# Used by XORG_INSTALL
+docd...@docdir@
+
+Name: X.Org Macros
+Description: A set of autoconf project macros for X.Org modules
+Version: @PACKAGE_VERSION@
+
-- 
1.6.0.4

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to