[libgdata] [build] Added support for AM_SILENT_RULES and updated git.mk



commit db45f076ced74e28e6cb45bfd7d618ac71be3857
Author: Philip Withnall <philip tecnocode co uk>
Date:   Thu Aug 6 20:07:00 2009 +0100

    [build] Added support for AM_SILENT_RULES and updated git.mk

 configure.in                         |    4 +
 gdata/Makefile.am                    |    8 +-
 gdata/media/Makefile.am              |    4 +-
 gdata/services/documents/Makefile.am |    4 +-
 gdata/services/picasaweb/Makefile.am |   20 +++--
 gdata/services/youtube/Makefile.am   |   20 +++--
 git.mk                               |  178 +++++++++++++++++-----------------
 7 files changed, 127 insertions(+), 111 deletions(-)
---
diff --git a/configure.in b/configure.in
index 1379836..1beea15 100644
--- a/configure.in
+++ b/configure.in
@@ -12,6 +12,10 @@ AC_GNU_SOURCE
 
 AM_INIT_AUTOMAKE([1.9 dist-bzip2 no-dist-gzip check-news subdir-objects])
 
+# Enable silent build when available (Automake 1.11)
+m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
+
+
 GETTEXT_PACKAGE=gdata
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define to the Gettext package name])
 AC_SUBST(GETTEXT_PACKAGE)
diff --git a/gdata/Makefile.am b/gdata/Makefile.am
index 8fa159a..467ad31 100644
--- a/gdata/Makefile.am
+++ b/gdata/Makefile.am
@@ -9,9 +9,9 @@ GDATA_MARSHAL_FILES = \
 GLIB_GENMARSHAL = `pkg-config --variable=glib_genmarshal glib-2.0`
 
 gdata-marshal.h: gdata-marshal.list Makefile
-	( $(GLIB_GENMARSHAL) --prefix=gdata_marshal $(srcdir)/gdata-marshal.list --header > gdata-marshal.h )
+	$(AM_V_GEN)( $(GLIB_GENMARSHAL) --prefix=gdata_marshal $(srcdir)/gdata-marshal.list --header > gdata-marshal.h )
 gdata-marshal.c: gdata-marshal.h Makefile
-	( $(GLIB_GENMARSHAL) --prefix=gdata_marshal $(srcdir)/gdata-marshal.list --header --body > gdata-marshal.c )
+	$(AM_V_GEN)( $(GLIB_GENMARSHAL) --prefix=gdata_marshal $(srcdir)/gdata-marshal.list --header --body > gdata-marshal.c )
 
 # Enums
 GDATA_ENUM_FILES = \
@@ -19,7 +19,7 @@ GDATA_ENUM_FILES = \
 	gdata-enums.h
 
 gdata-enums.h: $(gdata_headers) Makefile
-	(cd $(srcdir) && $(GLIB_MKENUMS) \
+	$(AM_V_GEN)(cd $(srcdir) && $(GLIB_MKENUMS) \
 			--fhead "#ifndef GDATA_ENUMS_H\n#define GDATA_ENUMS_H\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
 			--fprod "/* enumerations from \"@filename \" */\n" \
 			--vhead "GType @enum_name _get_type (void) G_GNUC_CONST;\n#define GDATA_TYPE_ ENUMSHORT@ (@enum_name _get_type())\n" \
@@ -28,7 +28,7 @@ gdata-enums.h: $(gdata_headers) Makefile
 	&& rm -f gdata-enums.h.tmp
 
 gdata-enums.c: $(gdata_headers) Makefile gdata-enums.h
-	(cd $(srcdir) && $(GLIB_MKENUMS) \
+	$(AM_V_GEN)(cd $(srcdir) && $(GLIB_MKENUMS) \
 			--fhead "#include \"gdata.h\"\n#include \"gdata-enums.h\"" \
 			--fprod "\n/* enumerations from \"@filename \" */" \
 			--vhead "GType\n enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G Type@Value values[] = {" \
diff --git a/gdata/media/Makefile.am b/gdata/media/Makefile.am
index 9adf010..31e99b2 100644
--- a/gdata/media/Makefile.am
+++ b/gdata/media/Makefile.am
@@ -4,7 +4,7 @@ GDATA_MEDIA_ENUM_FILES = \
 	gdata-media-enums.h
 
 gdata-media-enums.h: $(gdata_media_headers) Makefile
-	(cd $(srcdir) && $(GLIB_MKENUMS) \
+	$(AM_V_GEN)(cd $(srcdir) && $(GLIB_MKENUMS) \
 			--fhead "#ifndef GDATA_MEDIA_ENUMS_H\n#define GDATA_MEDIA_ENUMS_H\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
 			--fprod "/* enumerations from \"@filename \" */\n" \
 			--vhead "GType @enum_name _get_type (void) G_GNUC_CONST;\n#define GDATA_TYPE_ ENUMSHORT@ (@enum_name _get_type())\n" \
@@ -15,7 +15,7 @@ gdata-media-enums.h: $(gdata_media_headers) Makefile
 	&& rm -f gdata-media-enums.h.tmp2
 
 gdata-media-enums.c: $(gdata_media_headers) Makefile gdata-media-enums.h
-	(cd $(srcdir) && $(GLIB_MKENUMS) \
+	$(AM_V_GEN)(cd $(srcdir) && $(GLIB_MKENUMS) \
 			--fhead "#include \"gdata-media-content.h\"\n#include \"gdata-media-enums.h\"" \
 			--fprod "\n/* enumerations from \"@filename \" */" \
 			--vhead "GType\n enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G Type@Value values[] = {" \
diff --git a/gdata/services/documents/Makefile.am b/gdata/services/documents/Makefile.am
index 0e7a726..5cde8f2 100644
--- a/gdata/services/documents/Makefile.am
+++ b/gdata/services/documents/Makefile.am
@@ -4,7 +4,7 @@ GDATA_DOCUMENTS_ENUM_FILES = \
 	gdata-documents-enums.h
 
 gdata-documents-enums.h: $(gdata_documents_headers) Makefile
-	(cd $(srcdir) && $(GLIB_MKENUMS) \
+	$(AM_V_GEN)(cd $(srcdir) && $(GLIB_MKENUMS) \
 			--fhead "#ifndef GDATA_DOCUMENTS_ENUMS_H\n#define GDATA_DOCUMENTS_ENUMS_H\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
 			--fprod "/* enumerations from \"@filename \" */\n" \
 			--vhead "GType @enum_name _get_type (void) G_GNUC_CONST;\n#define GDATA_TYPE_ ENUMSHORT@ (@enum_name _get_type())\n" \
@@ -13,7 +13,7 @@ gdata-documents-enums.h: $(gdata_documents_headers) Makefile
 	&& rm -f gdata-documents-enums.h.tmp
 
 gdata-documents-enums.c: $(gdata_documents_headers) Makefile gdata-documents-enums.h
-	(cd $(srcdir) && $(GLIB_MKENUMS) \
+	$(AM_V_GEN)(cd $(srcdir) && $(GLIB_MKENUMS) \
 			--fhead "#include \"gdata-documents-service.h\"\n#include \"gdata-documents-text.h\"\n#include \"gdata-documents-spreadsheet.h\"\n#include \"gdata-documents-presentation.h\"\n#include \"gdata-documents-enums.h\"" \
 			--fprod "\n/* enumerations from \"@filename \" */" \
 			--vhead "GType\n enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G Type@Value values[] = {" \
diff --git a/gdata/services/picasaweb/Makefile.am b/gdata/services/picasaweb/Makefile.am
index 9b7b32e..d249e0a 100644
--- a/gdata/services/picasaweb/Makefile.am
+++ b/gdata/services/picasaweb/Makefile.am
@@ -3,35 +3,39 @@ GDATA_PICASAWEB_ENUM_FILES = \
 	gdata-picasaweb-enums.c	\
 	gdata-picasaweb-enums.h
 
-gdata-picasaweb-enums.h: $(gdatapicasawebinclude_HEADERS) Makefile
-	(cd $(srcdir) && $(GLIB_MKENUMS) \
+gdata-picasaweb-enums.h: $(gdata_picasaweb_headers) Makefile
+	$(AM_V_GEN)(cd $(srcdir) && $(GLIB_MKENUMS) \
 			--fhead "#ifndef GDATA_PICASAWEB_ENUMS_H\n#define GDATA_PICASAWEB_ENUMS_H\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
 			--fprod "/* enumerations from \"@filename \" */\n" \
 			--vhead "GType @enum_name _get_type (void) G_GNUC_CONST;\n#define GDATA_TYPE_ ENUMSHORT@ (@enum_name _get_type())\n" \
-			--ftail "G_END_DECLS\n\n#endif /* !GDATA_PICASAWEB_ENUMS_H */" $(gdatapicasawebinclude_HEADERS)) > gdata-picasaweb-enums.h.tmp \
+			--ftail "G_END_DECLS\n\n#endif /* !GDATA_PICASAWEB_ENUMS_H */" $(gdata_picasaweb_headers)) > gdata-picasaweb-enums.h.tmp \
 	&& sed "s/g_data_picasa_web/gdata_picasaweb/" gdata-picasaweb-enums.h.tmp > gdata-picasaweb-enums.h.tmp2 \
 	&& sed "s/GDATA_TYPE_DATA_PICASA_WEB/GDATA_TYPE_PICASAWEB/" gdata-picasaweb-enums.h.tmp2 > gdata-picasaweb-enums.h \
 	&& rm -f gdata-picasaweb-enums.h.tmp \
 	&& rm -f gdata-picasaweb-enums.h.tmp2
 
-gdata-picasaweb-enums.c: $(gdatapicasawebinclude_HEADERS) Makefile gdata-picasaweb-enums.h
-	(cd $(srcdir) && $(GLIB_MKENUMS) \
+gdata-picasaweb-enums.c: $(gdata_picasaweb_headers) Makefile gdata-picasaweb-enums.h
+	$(AM_V_GEN)(cd $(srcdir) && $(GLIB_MKENUMS) \
 			--fhead "#include \"gdata-picasaweb-album.h\"\n#include \"gdata-picasaweb-enums.h\"" \
 			--fprod "\n/* enumerations from \"@filename \" */" \
 			--vhead "GType\n enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G Type@Value values[] = {" \
 			--vprod "      { @VALUENAME@, \"@VALUENAME \", \"@valuenick \" }," \
 			--vtail "      { 0, NULL, NULL }\n    };\n    etype = g_ type@_register_static (\"@EnumName \", values);\n  }\n  return etype;\n}\n" \
-		$(gdatapicasawebinclude_HEADERS)) > gdata-picasaweb-enums.c.tmp \
+		$(gdata_picasaweb_headers)) > gdata-picasaweb-enums.c.tmp \
 	&& sed "s/g_data_picasa_web/gdata_picasaweb/" gdata-picasaweb-enums.c.tmp > gdata-picasaweb-enums.c \
 	&& rm -f gdata-picasaweb-enums.c.tmp
 
 # Library
 gdatapicasawebincludedir = $(pkgincludedir)/gdata/services/picasaweb
-gdatapicasawebinclude_HEADERS = \
+
+gdata_picasaweb_headers = \
 	gdata-picasaweb-service.h	\
 	gdata-picasaweb-query.h		\
 	gdata-picasaweb-file.h		\
-	gdata-picasaweb-album.h		\
+	gdata-picasaweb-album.h
+
+gdatapicasawebinclude_HEADERS = \
+	$(gdata_picasaweb_headers)	\
 	gdata-picasaweb-enums.h
 
 noinst_LTLIBRARIES = libgdatapicasaweb.la
diff --git a/gdata/services/youtube/Makefile.am b/gdata/services/youtube/Makefile.am
index a4f0761..09351a6 100644
--- a/gdata/services/youtube/Makefile.am
+++ b/gdata/services/youtube/Makefile.am
@@ -3,39 +3,43 @@ GDATA_YOUTUBE_ENUM_FILES = \
 	gdata-youtube-enums.c	\
 	gdata-youtube-enums.h
 
-gdata-youtube-enums.h: $(gdatayoutubeinclude_HEADERS) Makefile
-	(cd $(srcdir) && $(GLIB_MKENUMS) \
+gdata-youtube-enums.h: $(gdata_youtube_headers) Makefile
+	$(AM_V_GEN)(cd $(srcdir) && $(GLIB_MKENUMS) \
 			--fhead "#ifndef GDATA_YOUTUBE_ENUMS_H\n#define GDATA_YOUTUBE_ENUMS_H\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
 			--fprod "/* enumerations from \"@filename \" */\n" \
 			--vhead "GType @enum_name _get_type (void) G_GNUC_CONST;\n#define GDATA_TYPE_ ENUMSHORT@ (@enum_name _get_type())\n" \
-			--ftail "G_END_DECLS\n\n#endif /* !GDATA_YOUTUBE_ENUMS_H */" $(gdatayoutubeinclude_HEADERS)) > gdata-youtube-enums.h.tmp \
+			--ftail "G_END_DECLS\n\n#endif /* !GDATA_YOUTUBE_ENUMS_H */" $(gdata_youtube_headers)) > gdata-youtube-enums.h.tmp \
 	&& sed "s/g_data_you_tube/gdata_youtube/" gdata-youtube-enums.h.tmp > gdata-youtube-enums.h.tmp2 \
 	&& sed "s/GDATA_TYPE_DATA_YOU_TUBE/GDATA_TYPE_YOUTUBE/" gdata-youtube-enums.h.tmp2 > gdata-youtube-enums.h \
 	&& rm -f gdata-youtube-enums.h.tmp \
 	&& rm -f gdata-youtube-enums.h.tmp2
 
-gdata-youtube-enums.c: $(gdatayoutubeinclude_HEADERS) Makefile gdata-youtube-enums.h
-	(cd $(srcdir) && $(GLIB_MKENUMS) \
+gdata-youtube-enums.c: $(gdata_youtube_headers) Makefile gdata-youtube-enums.h
+	$(AM_V_GEN)(cd $(srcdir) && $(GLIB_MKENUMS) \
 			--fhead "#include \"gdata-youtube-service.h\"\n#include \"gdata-youtube-query.h\"\n#include \"gdata-youtube-enums.h\"" \
 			--fprod "\n/* enumerations from \"@filename \" */" \
 			--vhead "GType\n enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G Type@Value values[] = {" \
 			--vprod "      { @VALUENAME@, \"@VALUENAME \", \"@valuenick \" }," \
 			--vtail "      { 0, NULL, NULL }\n    };\n    etype = g_ type@_register_static (\"@EnumName \", values);\n  }\n  return etype;\n}\n" \
-		$(gdatayoutubeinclude_HEADERS)) > gdata-youtube-enums.c.tmp \
+		$(gdata_youtube_headers)) > gdata-youtube-enums.c.tmp \
 	&& sed "s/g_data_you_tube/gdata_youtube/" gdata-youtube-enums.c.tmp > gdata-youtube-enums.c \
 	&& rm -f gdata-youtube-enums.c.tmp
 
 # Library
 gdatayoutubeincludedir = $(pkgincludedir)/gdata/services/youtube
-gdatayoutubeinclude_HEADERS = \
+
+gdata_youtube_headers = \
 	gdata-youtube-service.h		\
 	gdata-youtube-video.h		\
 	gdata-youtube-content.h		\
 	gdata-youtube-credit.h		\
-	gdata-youtube-enums.h		\
 	gdata-youtube-query.h		\
 	gdata-youtube-state.h
 
+gdatayoutubeinclude_HEADERS = \
+	$(gdata_youtube_headers)	\
+	gdata-youtube-enums.h
+
 noinst_LTLIBRARIES = libgdatayoutube.la
 
 libgdatayoutube_la_SOURCES = \
diff --git a/git.mk b/git.mk
index 9cfce1c..fbd56e0 100644
--- a/git.mk
+++ b/git.mk
@@ -28,8 +28,8 @@
 # ignore them.  See "man gitignore".
 #
 # If "make maintainer-clean" removes the files but they are not recognized
-# by this script (that is, if "git stat" shows untracked files still), send
-# me the output of "git stat" as well as your Makefile.am and Makefile for
+# by this script (that is, if "git status" shows untracked files still), send
+# me the output of "git status" as well as your Makefile.am and Makefile for
 # the directories involved.
 #
 # For a list of toplevel files that should be in MAINTAINERCLEANFILES, see
@@ -82,97 +82,101 @@ git-mk-install:
 ### .gitignore generation
 
 $(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk
-	@echo Generating $@; \
-	GTKDOCGITIGNOREFILES=; \
-	test "x$(DOC_MODULE)" = x -o "x$(DOC_MAIN_SGML_FILE)" = x || \
-	GTKDOCGITIGNOREFILES=" \
-		$(DOC_MODULE)-decl-list.txt \
-		$(DOC_MODULE)-decl.txt \
-		tmpl/$(DOC_MODULE)-unused.sgml \
-		tmpl/*.bak \
-		xml html \
-		"; \
-	GNOMEDOCUTILSGITIGNOREFILES=; \
-	test "x$(DOC_MODULE)" = x -o "x$(DOC_LINGUAS)" = x || \
-	GNOMEDOCUTILSGITIGNOREFILES=" \
-		$(_DOC_C_DOCS) \
-		$(_DOC_LC_DOCS) \
-		$(_DOC_OMF_ALL) \
-		$(_DOC_DSK_ALL) \
-		$(_DOC_HTML_ALL) \
-		$(_DOC_POFILES) \
-		*/.xml2po.mo \
-		*/*.omf.out \
-		"; \
-	INTLTOOLGITIGNOREFILES=; test -f $(srcdir)/po/Makefile.in.in && \
-	INTLTOOLGITIGNOREFILES=" \
-		po/Makefile.in.in \
-		po/Makefile.in \
-		po/Makefile \
-		po/*.gmo \
-		po/*.mo \
-		po/POTFILES \
-		po/stamp-it \
-		po/.intltool-merge-cache \
-		intltool-extract.in \
-		intltool-merge.in \
-		intltool-update.in \
-		"; \
-	AUTOCONFGITIGNOREFILES=; test -f $(srcdir)/configure && \
-	AUTOCONFGITIGNOREFILES=" \
-		autom4te.cache \
-		configure \
-		config.h \
-		stamp-h1 \
-		libtool \
-		config.lt \
-		"; \
-	for x in \
-		.gitignore \
-		$$GTKDOCGITIGNOREFILES \
-		$$GNOMEDOCUTILSGITIGNOREFILES \
-		$$INTLTOOLGITIGNOREFILES \
-		$$AUTOCONFGITIGNOREFILES \
-		$(GITIGNOREFILES) \
-		$(CLEANFILES) \
-		$(PROGRAMS) \
-		$(EXTRA_PROGRAMS) \
-		$(LTLIBRARIES) \
-		so_locations \
-		.libs _libs \
-		$(MOSTLYCLEANFILES) \
-		"*.$(OBJEXT)" \
-		"*.lo" \
-		$(DISTCLEANFILES) \
-		$(am__CONFIG_DISTCLEAN_FILES) \
-		$(CONFIG_CLEAN_FILES) \
-		TAGS ID GTAGS GRTAGS GSYMS GPATH tags \
-		"*.tab.c" \
-		$(MAINTAINERCLEANFILES) \
-		$(BUILT_SOURCES) \
-		$(DEPDIR) \
-		Makefile \
-		Makefile.in \
-		"*.orig" \
-		"*.rej" \
-		"*.bak" \
-		"*~" \
-		".*.swp" \
-	; do echo /$$x; done | \
+	$(AM_V_GEN) \
+	{ \
+		if test "x$(DOC_MODULE)" = x -o "x$(DOC_MAIN_SGML_FILE)" = x; then :; else \
+			for x in \
+				$(DOC_MODULE)-decl-list.txt \
+				$(DOC_MODULE)-decl.txt \
+				tmpl/$(DOC_MODULE)-unused.sgml \
+				"tmpl/*.bak" \
+				xml html \
+			; do echo /$$x; done; \
+		fi; \
+		if test "x$(DOC_MODULE)" = x -o "x$(DOC_LINGUAS)" = x; then :; else \
+			for x in \
+				$(_DOC_C_DOCS) \
+				$(_DOC_LC_DOCS) \
+				$(_DOC_OMF_ALL) \
+				$(_DOC_DSK_ALL) \
+				$(_DOC_HTML_ALL) \
+				$(_DOC_POFILES) \
+				"*/.xml2po.mo" \
+				"*/*.omf.out" \
+			; do echo /$$x; done; \
+		fi; \
+		if test -f $(srcdir)/po/Makefile.in.in; then \
+			for x in \
+				po/Makefile.in.in \
+				po/Makefile.in \
+				po/Makefile \
+				po/POTFILES \
+				po/stamp-it \
+				po/.intltool-merge-cache \
+				"po/*.gmo" \
+				"po/*.mo" \
+				intltool-extract.in \
+				intltool-merge.in \
+				intltool-update.in \
+			; do echo /$$x; done; \
+		fi; \
+		if test -f $(srcdir)/configure; then \
+			for x in \
+				autom4te.cache \
+				configure \
+				config.h \
+				stamp-h1 \
+				libtool \
+				config.lt \
+			; do echo /$$x; done; \
+		fi; \
+		for x in \
+			.gitignore \
+			$(GITIGNOREFILES) \
+			$(CLEANFILES) \
+			$(PROGRAMS) \
+			$(EXTRA_PROGRAMS) \
+			$(LTLIBRARIES) \
+			so_locations \
+			.libs _libs \
+			$(MOSTLYCLEANFILES) \
+			"*.$(OBJEXT)" \
+			"*.lo" \
+			$(DISTCLEANFILES) \
+			$(am__CONFIG_DISTCLEAN_FILES) \
+			$(CONFIG_CLEAN_FILES) \
+			TAGS ID GTAGS GRTAGS GSYMS GPATH tags \
+			"*.tab.c" \
+			$(MAINTAINERCLEANFILES) \
+			$(BUILT_SOURCES) \
+			$(DEPDIR) \
+			Makefile \
+			Makefile.in \
+			"*.orig" \
+			"*.rej" \
+			"*.bak" \
+			"*~" \
+			".*.sw[nop]" \
+		; do echo /$$x; done; \
+	} | \
 	sed "s ^/`echo "$(srcdir)" | sed 's/\(.\)/[\1]/g'`/@/@" | \
 	sed 's@/[.]/@/@g' | \
 	LANG=C sort | uniq > $  tmp && \
 	mv $  tmp $@;
 
-all: $(srcdir)/.gitignore gitignore-recurse
-gitignore-recurse:
+all: $(srcdir)/.gitignore gitignore-recurse-maybe
+gitignore-recurse-maybe:
 	@if test "x$(SUBDIRS)" = "x$(DIST_SUBDIRS)"; then :; else \
-		list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-		  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) .gitignore); \
-		done; \
+		$(MAKE) $(AM_MAKEFLAGS) gitignore-recurse; \
 	fi;
-maintainer-clean-local: gitignore-clean
+gitignore-recurse:
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) .gitignore gitignore-recurse || echo "Skipping $$subdir"); \
+	done
+gitignore: $(srcdir)/.gitignore gitignore-recurse
+
+maintainer-clean: gitignore-clean
 gitignore-clean:
-	rm -f $(srcdir)/.gitignore
-.PHONY: gitignore-clean gitignore-recurse
+	-rm -f $(srcdir)/.gitignore
 
+.PHONY: gitignore-clean gitignore gitignore-recurse gitignore-recurse-maybe



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