[evolution] Fix enum generation problems in glib-gen.mak.
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Fix enum generation problems in glib-gen.mak.
- Date: Sat, 27 Aug 2011 12:10:00 +0000 (UTC)
commit aa3b6c57a51dbd64af2371fd7a218231a3a56b19
Author: Matthew Barnes <mbarnes redhat com>
Date: Sat Aug 27 07:54:44 2011 -0400
Fix enum generation problems in glib-gen.mak.
Don't use pattern rules like %-enumtypes.h anymore because it matches
installed header files like camel-enumtypes.h, so you get very strange
things happening during the build like:
.../camel/camel-enumtypes.h: e-util-enums.h
glib-mkenums ... $^ > $@
when e-util-enums.h has a newer timestamp than camel-enumtypes.h.
Instead, we'll use another variable name -- glib_enum_output -- to
replace the %-enumtypes pattern rules like so:
$(glib_enum_output).h: $(glib_enum_headers)
glib-mkenums ... $^ > $@
$(glib_enum_output).c: $(glib_enum_headers)
glib-mkenums ... $^ > $@
Also use $(AM_V_GEN) to get cleaner looking output while building.
e-util/Makefile.am | 1 +
glib-gen.mak | 19 ++++++++++---------
mail/Makefile.am | 1 +
3 files changed, 12 insertions(+), 9 deletions(-)
---
diff --git a/e-util/Makefile.am b/e-util/Makefile.am
index 8345201..53614e3 100644
--- a/e-util/Makefile.am
+++ b/e-util/Makefile.am
@@ -4,6 +4,7 @@ ruledir = $(privdatadir)
include $(top_srcdir)/glib-gen.mak
glib_enum_headers=e-util-enums.h
+glib_enum_output=e-util-enumtypes
glib_enum_define=E
glib_enum_prefix=e
diff --git a/glib-gen.mak b/glib-gen.mak
index f510d80..a360dde 100644
--- a/glib-gen.mak
+++ b/glib-gen.mak
@@ -2,31 +2,32 @@
# the example is based on the colorbalance interface
#glib_enum_headers=$(colorbalance_headers)
+#glib_enum_output=gst-color-balance-enumtypes
#glib_enum_define=GST_COLOR_BALANCE
#glib_enum_prefix=gst_color_balance
# these are all the rules generating the relevant files
%-marshal.h: %-marshal.list
- glib-genmarshal --header --prefix=$(glib_enum_prefix)_marshal $^ > $*-marshal.h.tmp
+ $(AM_V_GEN) glib-genmarshal --header --prefix=$(glib_enum_prefix)_marshal $^ > $*-marshal.h.tmp && \
mv $*-marshal.h.tmp $*-marshal.h
%-marshal.c: %-marshal.list
- echo "#include \"$*-marshal.h\"" >> $*-marshal.c.tmp
- glib-genmarshal --body --prefix=$(glib_enum_prefix)_marshal $^ >> $*-marshal.c.tmp
+ $(AM_V_GEN) echo "#include \"$*-marshal.h\"" >> $*-marshal.c.tmp && \
+ glib-genmarshal --body --prefix=$(glib_enum_prefix)_marshal $^ >> $*-marshal.c.tmp && \
mv $*-marshal.c.tmp $*-marshal.c
-%-enumtypes.h: $(glib_enum_headers)
- glib-mkenums \
+$(glib_enum_output).h: $(glib_enum_headers)
+ $(AM_V_GEN) glib-mkenums \
--fhead "#ifndef __$(glib_enum_define)_ENUM_TYPES_H__\n#define __$(glib_enum_define)_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
--fprod "/* enumerations from \"@filename \" */\n" \
--vhead "GType @enum_name _get_type (void);\n#define E_TYPE_ ENUMSHORT@ (@enum_name _get_type())\n" \
--ftail "G_END_DECLS\n\n#endif /* __$(glib_enum_define)_ENUM_TYPES_H__ */" \
$^ > $@
-%-enumtypes.c: $(glib_enum_headers)
+$(glib_enum_output).c: $(glib_enum_headers)
@if test "x$(glib_enum_headers)" == "x"; then echo "ERROR: glib_enum_headers is empty, please fix Makefile"; exit 1; fi
- glib-mkenums \
- --fhead "#include <$*.h>\n#include \"$*-enumtypes.h\"" \
+ $(AM_V_GEN) glib-mkenums \
+ --fhead "#include <$<>\n#include \"$(glib_enum_output).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 \" }," \
@@ -38,5 +39,5 @@
.deps/%-marshal.Plo:
touch $@
-.deps/%-enumtypes.Plo:
+.deps/$(glib_enum_output).Plo:
touch $@
diff --git a/mail/Makefile.am b/mail/Makefile.am
index 0d2864d..97a2fe3 100644
--- a/mail/Makefile.am
+++ b/mail/Makefile.am
@@ -6,6 +6,7 @@ mailincludedir = $(privincludedir)/mail
include $(top_srcdir)/glib-gen.mak
glib_enum_headers=e-mail-enums.h
+glib_enum_output=e-mail-enumtypes
glib_enum_define=E_MAIL
glib_enum_prefix=e_mail
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]