aboutsummaryrefslogtreecommitdiffstats
path: root/src/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'src/Makefile.am')
-rw-r--r--src/Makefile.am46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index d9c2b2aa4..faf9cd474 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -13,6 +13,13 @@ bin_PROGRAMS = \
empathy \
empathy-logs
+BUILT_SOURCES= \
+ empathy-marshal.h \
+ empathy-marshal.c \
+ empathy-marshal.list \
+ empathy-tube-dispatch-enumtypes.h \
+ empathy-tube-dispatch-enumtypes.c
+
empathy_SOURCES = \
bacon-message-connection.c bacon-message-connection.h \
empathy.c \
@@ -29,8 +36,11 @@ empathy_SOURCES = \
empathy-new-chatroom-dialog.c empathy-new-chatroom-dialog.h \
empathy-preferences.c empathy-preferences.h \
empathy-status-icon.c empathy-status-icon.h \
+ empathy-tube-dispatch.c empathy-tube-dispatch.h \
ephy-spinner.c ephy-spinner.h
+nodist_empathy_SOURCES = $(BUILT_SOURCES)
+
empathy_logs_SOURCES = empathy-logs.c
gladedir = $(datadir)/empathy
@@ -49,6 +59,42 @@ glade_DATA = \
dist_man_MANS = \
empathy.1
+empathy-marshal.list: $(empathy_SOURCES) Makefile.am
+ ( cd $(srcdir) && \
+ sed -n -e 's/.*empathy_marshal_\([[:upper:][:digit:]]*__[[:upper:][:digit:]_]*\).*/\1/p' \
+ $(empathy_SOURCES) ) \
+ | sed -e 's/__/:/' -e 'y/_/,/' | sort -u > $@.tmp
+ if cmp -s $@.tmp $@; then \
+ rm $@.tmp; \
+ else \
+ mv $@.tmp $@; \
+ fi
+
+%-marshal.h: %-marshal.list Makefile
+ $(GLIB_GENMARSHAL) --header --prefix=_$(subst -,_,$*)_marshal $< > $*-marshal.h
+
+%-marshal.c: %-marshal.list Makefile
+ echo "#include \"empathy-marshal.h\"" > $@ && \
+ $(GLIB_GENMARSHAL) --body --prefix=_$(subst -,_,$*)_marshal $< >> $*-marshal.c
+
+# rules for making the glib enum objects
+%-enumtypes.h: %.h Makefile.in
+ glib-mkenums \
+ --fhead "#ifndef __$(shell echo $* | tr [:lower:]- [:upper:]_)_ENUM_TYPES_H__\n#define __$(shell echo $* | tr [:lower:]- [:upper:]_)_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 $(shell echo $* | tr [:lower:]- [:upper:]_ | sed 's/_.*//')_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
+ --ftail "G_END_DECLS\n\n#endif /* __$(shell echo $* | tr [:lower:]- [:upper:]_)_ENUM_TYPES_H__ */" \
+ $< > $@
+
+%-enumtypes.c: %.h Makefile.in
+ glib-mkenums \
+ --fhead "#include <$*.h>\n#include <$*-enumtypes.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@\", \"@VALUENAME@\" }," \
+ --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \
+ $< > $@
+
EXTRA_DIST = \
$(autostart_DATA) \
$(glade_DATA)