[epiphany/wip/frecency: 6/7] history: generate gtypes for the history types



commit c07e7d034b4cfdaad4fc35ef5e82bee9718a1bd9
Author: Xan Lopez <xan igalia com>
Date:   Tue Mar 13 18:57:36 2012 +0100

    history: generate gtypes for the history types

 lib/history/Makefile.am |   62 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)
---
diff --git a/lib/history/Makefile.am b/lib/history/Makefile.am
index fcffe7e..06654fa 100644
--- a/lib/history/Makefile.am
+++ b/lib/history/Makefile.am
@@ -10,7 +10,11 @@ libephyhistory_la_SOURCES = \
 	ephy-history-types.c 		    \
 	ephy-history-types.h
 
+nodist_libephyhistory_la_SOURCES = \
+	$(BUILT_SOURCES)
+
 libephyhistory_la_CPPFLAGS = \
+	-I$(top_builddir)/lib/history	\
 	-I$(top_builddir)/lib		\
 	-I$(top_srcdir)/lib		\
 	-DSHARE_DIR=\"$(pkgdatadir)\"	\
@@ -19,3 +23,61 @@ libephyhistory_la_CPPFLAGS = \
 libephyhistory_la_CFLAGS = \
 	$(DEPENDENCIES_CFLAGS)	\
 	$(AM_CFLAGS)
+
+TYPES_H_FILES = ephy-history-types.h
+
+BUILT_SOURCES = \
+	ephy-history-type-builtins.c	\
+	ephy-history-type-builtins.h
+
+CLEANFILES = $(stamp_files) $(BUILT_SOURCES)
+DISTCLEANFILES = $(stamp_files) $(BUILT_SOURCES)
+MAINTAINERCLEANFILES = $(stamp_files) $(BUILT_SOURCES)
+
+stamp_files = \
+	stamp-ephy-history-type-builtins.c	\
+	stamp-ephy-history-type-builtins.h
+
+ephy-history-type-builtins.c: stamp-ephy-history-type-builtins.c Makefile
+	@true
+
+stamp-ephy-history-type-builtins.c: Makefile $(TYPES_H_FILES)
+	$(AM_V_GEN) $(GLIB_MKENUMS) \
+		--fhead "#include <config.h>\n\n" \
+		--fhead "#include \"ephy-history-type-builtins.h\"\n\n" \
+		--fprod "\n/* enumerations from \"@filename \" */" \
+		--fprod "\n#include \"@filename \"" \
+		--vhead "GType\n enum_name@_get_type (void)\n{\n" \
+		--vhead "  static GType type = 0;\n\n" \
+		--vhead "  if (G_UNLIKELY (type == 0))\n  {\n" \
+		--vhead "    static const G Type@Value _ enum_name@_values[] = {" \
+		--vprod "      { @VALUENAME@, \"@VALUENAME \", \"@valuenick \" }," \
+		--vtail "      { 0, NULL, NULL }\n    };\n\n" \
+		--vtail "    type = g_ type@_register_static (\"@EnumName \", _ enum_name@_values);\n  }\n\n" \
+		--vtail "  return type;\n}\n\n" \
+		$(filter-out $<,$^) > xgen-$(@F) \
+	&& ( cmp -s xgen-$(@F) $(@F:stamp-%=%) || cp xgen-$(@F) $(@F:stamp-%=%) ) \
+	&& rm -f xgen-$(@F) \
+	&& echo timestamp > $(@F)
+
+ephy-history-type-builtins.h: stamp-ephy-history-type-builtins.h Makefile
+	@true
+
+stamp-ephy-history-type-builtins.h: Makefile $(TYPES_H_FILES)
+	$(AM_V_GEN) $(GLIB_MKENUMS) \
+		--fhead "#if !defined (__EPHY_EPIPHANY_H_INSIDE__) && !defined (EPIPHANY_COMPILATION)\n" \
+		--fhead "#error Only <epiphany/epiphany.h> can be included directly.\n" \
+		--fhead "#endif\n\n" \
+		--fhead "#ifndef EPHY_HISTORY_TYPE_BUILTINS_H\n" \
+		--fhead "#define EPHY_HISTORY_TYPE_BUILTINS_H 1\n\n" \
+		--fhead "#include <glib-object.h>\n\n" \
+		--fhead "G_BEGIN_DECLS\n\n" \
+		--ftail "G_END_DECLS\n\n" \
+		--ftail "#endif /* EPHY_HISTORY_TYPE_BUILTINS_H */\n" \
+		--fprod "\n/* --- @filename@ --- */" \
+		--eprod "#define EPHY_TYPE_ ENUMSHORT@ @enum_name _get_type()\n" \
+		--eprod "GType @enum_name _get_type (void);\n" \
+		$(filter-out $<,$^) > xgen-$(@F) \
+	&& ( cmp -s xgen-$(@F) $(@F:stamp-%=%) || cp xgen-$(@F) $(@F:stamp-%=%) ) \
+	&& rm -f xgen-$(@F) \
+	&& echo timestamp > $(@F)



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