summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Zeuthen <davidz@redhat.com>2009-02-02 20:10:04 -0500
committerDavid Zeuthen <davidz@redhat.com>2009-02-02 20:10:04 -0500
commit47f356abebc0ef935dbdcd4e3bc3bc6a67261286 (patch)
treef28e5b0daf3c84ba0f9956f156f69a683e9d7567
parent7cf26d65e7ba4872429e901e1399da74d97d4488 (diff)
add stamp files and fix buildsystem so things like 'make -j4' work
-rw-r--r--src/eggdbus/Makefile.am61
-rw-r--r--src/eggdbus/eggdbusbindingtool.c37
-rw-r--r--src/tests/Makefile.am96
3 files changed, 128 insertions, 66 deletions
diff --git a/src/eggdbus/Makefile.am b/src/eggdbus/Makefile.am
index 92ca63a..65dda6f 100644
--- a/src/eggdbus/Makefile.am
+++ b/src/eggdbus/Makefile.am
@@ -45,7 +45,6 @@ libeggdbus_common_la_SOURCES = \
libeggdbus_common_la_CFLAGS = \
-D_EGG_DBUS_COMPILATION \
- $(GEE_CFLAGS) \
$(GLIB_CFLAGS) \
$(DBUS_GLIB_CFLAGS) \
$(NULL)
@@ -82,17 +81,13 @@ eggdbus_binding_tool_SOURCES = \
eggdbus_binding_tool_CFLAGS = \
-D_EGG_DBUS_COMPILATION \
- $(GEE_CFLAGS) \
$(GLIB_CFLAGS) \
$(DBUS_GLIB_CFLAGS) \
- $(EXPAT_CFLAGS) \
$(NULL)
eggdbus_binding_tool_LDADD = \
- $(GEE_LIBS) \
$(GLIB_LIBS) \
$(DBUS_GLIB_LIBS) \
- $(EXPAT_LIBS) \
libeggdbus-common.la \
$(NULL)
@@ -126,26 +121,13 @@ eggdbus_headers = \
###########################################################################
-EGG_DBUS_BUILT_SOURCES = \
- eggdbusbus.h eggdbusbus.c \
- eggdbusintrospectable.h eggdbusintrospectable.c \
- eggdbuspeer.h eggdbuspeer.c \
- eggdbusproperties.h eggdbusproperties.c \
- eggdbusrequestnameflags.h eggdbusrequestnameflags.c \
- eggdbusrequestnamereply.h eggdbusrequestnamereply.c \
- eggdbusreleasenamereply.h eggdbusreleasenamereply.c \
- eggdbusstartservicebynamereply.h eggdbusstartservicebynamereply.c \
- eggdbusbindingsmarshal.h eggdbusbindingsmarshal.c \
- eggdbusbindingsmarshal.list \
- $(NULL)
-
-BUILT_SOURCES = \
+BUILT_SOURCES = \
eggdbusmarshal.h eggdbusmarshal.c \
eggdbusenumtypes.h eggdbusenumtypes.c \
- $(EGG_DBUS_BUILT_SOURCES) \
+ eggdbus-built-sources.stamp \
$(NULL)
-$(EGG_DBUS_BUILT_SOURCES) : eggdbus-binding-tool Makefile.am org.freedesktop.DBus.xml org.freedesktop.DBus.Peer.xml org.freedesktop.DBus.Properties.xml org.freedesktop.DBus.Introspectable.xml eggdbus-glib-genmarshal
+eggdbus-built-sources.stamp : eggdbus-binding-tool Makefile.am org.freedesktop.DBus.xml org.freedesktop.DBus.Peer.xml org.freedesktop.DBus.Properties.xml org.freedesktop.DBus.Introspectable.xml eggdbus-glib-genmarshal
EGG_DBUS_GENMARSHAL=$(top_builddir)/src/eggdbus/eggdbus-glib-genmarshal $(top_builddir)/src/eggdbus/eggdbus-binding-tool \
--namespace EggDBus \
--dbus-namespace org.freedesktop.DBus \
@@ -162,8 +144,32 @@ $(EGG_DBUS_BUILT_SOURCES) : eggdbus-binding-tool Makefile.am org.freedesktop.DBu
--introspection-xml $(top_srcdir)/src/eggdbus/org.freedesktop.DBus.Peer.xml \
--introspection-xml $(top_srcdir)/src/eggdbus/org.freedesktop.DBus.Properties.xml \
--introspection-xml $(top_srcdir)/src/eggdbus/org.freedesktop.DBus.Introspectable.xml \
+ --stamp-file eggdbus-built-sources.stamp \
$(NULL)
+# keep in sync with contents of eggdbus-built-sources.stamp
+#
+egg_dbus_built_sources = \
+ eggdbusbindingsmarshal.c \
+ eggdbusbindingsmarshal.h \
+ eggdbusbindingsmarshal.list \
+ eggdbusintrospectable.c \
+ eggdbusintrospectable.h \
+ eggdbusproperties.c \
+ eggdbusproperties.h \
+ eggdbuspeer.c \
+ eggdbuspeer.h \
+ eggdbusbus.c \
+ eggdbusbus.h \
+ eggdbusstartservicebynamereply.c \
+ eggdbusstartservicebynamereply.h \
+ eggdbusreleasenamereply.c \
+ eggdbusreleasenamereply.h \
+ eggdbusrequestnamereply.c \
+ eggdbusrequestnamereply.h \
+ eggdbusrequestnameflags.c \
+ eggdbusrequestnameflags.h \
+ $(NULL)
enum_headers = \
eggdbusinterface.h \
@@ -203,7 +209,8 @@ libeggdbus_1include_HEADERS = \
$(NULL)
libeggdbus_1_la_SOURCES = \
- $(EGG_DBUS_BUILT_SOURCES) \
+ eggdbus-built-sources.stamp \
+ $(egg_dbus_built_sources) \
eggdbusconnection.h eggdbusconnection.c \
eggdbusmessage.h eggdbusmessage.c \
eggdbusobjectproxy.h eggdbusobjectproxy.c \
@@ -214,13 +221,11 @@ libeggdbus_1_la_SOURCES = \
libeggdbus_1_la_CFLAGS = \
-D_EGG_DBUS_COMPILATION \
- $(GEE_CFLAGS) \
$(GLIB_CFLAGS) \
$(DBUS_GLIB_CFLAGS) \
$(NULL)
libeggdbus_1_la_LIBADD = \
- $(GEE_LIBS) \
$(GLIB_LIBS) \
$(DBUS_GLIB_LIBS) \
libeggdbus-common.la \
@@ -237,5 +242,9 @@ EXTRA_DIST = \
org.freedesktop.DBus.Introspectable.xml \
$(NULL)
-clean-local:
- rm -f *~ $(BUILT_SOURCES)
+dist-hook :
+ (for i in $(egg_dbus_built_sources) $(BUILT_SOURCES) ; do rm -f $(distdir)/$$i ; done)
+
+clean-local :
+ rm -f *~ $(egg_dbus_built_sources) $(BUILT_SOURCES)
+
diff --git a/src/eggdbus/eggdbusbindingtool.c b/src/eggdbus/eggdbusbindingtool.c
index cca1edc..47a999b 100644
--- a/src/eggdbus/eggdbusbindingtool.c
+++ b/src/eggdbus/eggdbusbindingtool.c
@@ -41,6 +41,8 @@ static char **opt_extra_header_files = NULL;
static char *dbus_name_space;
static char *name_space;
+static char *opt_stamp_file;
+
static GOptionEntry entries [] = {
{ "dbus-namespace", 'd', 0, G_OPTION_ARG_STRING, &dbus_name_space, "Namespace to strip from D-Bus interface names", NULL},
{ "namespace", 'n', 0, G_OPTION_ARG_STRING, &name_space, "Namespace for generated code", NULL},
@@ -48,6 +50,7 @@ static GOptionEntry entries [] = {
{ "interfaces-only", 'i', 0, G_OPTION_ARG_NONE, &opt_iface_only, "Only generate interfaces and marshallers", NULL},
{ "no-types-header", 't', 0, G_OPTION_ARG_NONE, &opt_no_types_header, "Don't generate types header file", NULL},
{ "include-header", 'h', 0, G_OPTION_ARG_STRING_ARRAY, &opt_extra_header_files, "Extra header files to includes", NULL},
+ { "stamp-file", 's', 0, G_OPTION_ARG_STRING, &opt_stamp_file, "Generate stamp file with generated files", NULL},
{ NULL }
};
@@ -55,6 +58,9 @@ static GOptionEntry entries [] = {
/* per invocation data structures */
+/* List of the names of generated files */
+static GSList *generated_files;
+
/* hash from GType name used (e.g. TestTweak) to a const EggDBusInterfaceInfo pointer */
static GHashTable *all_dbus_interfaces;
@@ -802,6 +808,7 @@ generate_main_files (GError **error)
goto out;
}
g_printerr ("Wrote %s\n", h_file_name);
+ generated_files = g_slist_prepend (generated_files, g_strdup (h_file_name));
g_free (h_file_name);
}
@@ -866,6 +873,7 @@ generate_main_files (GError **error)
goto out;
}
g_printerr ("Wrote %s\n", h_file_name);
+ generated_files = g_slist_prepend (generated_files, g_strdup (h_file_name));
g_free (h_file_name);
/* generate the <namespace>-bindings.c file */
@@ -941,6 +949,7 @@ generate_main_files (GError **error)
goto out;
}
g_printerr ("Wrote %s\n", c_file_name);
+ generated_files = g_slist_prepend (generated_files, g_strdup (c_file_name));
g_free (c_file_name);
ret = TRUE;
@@ -988,6 +997,7 @@ generate_marshallers (GError **error)
goto out;
}
g_printerr ("Wrote %s\n", list_file_name);
+ generated_files = g_slist_prepend (generated_files, g_strdup (list_file_name));
for (n = 0; n < 2; n++)
@@ -1061,6 +1071,7 @@ generate_marshallers (GError **error)
goto out;
}
g_printerr ("Wrote %s\n", file_name);
+ generated_files = g_slist_prepend (generated_files, g_strdup (file_name));
g_free (file_name);
g_free (standard_output);
@@ -1153,6 +1164,7 @@ generate_enums (GSList *nodes,
goto out;
}
g_printerr ("Wrote %s\n", h_file_name);
+ generated_files = g_slist_prepend (generated_files, g_strdup (h_file_name));
/* generate c file */
c_file_name = compute_file_name (name_space, enum_data->name, ".c");
@@ -1177,6 +1189,7 @@ generate_enums (GSList *nodes,
goto out;
}
g_printerr ("Wrote %s\n", c_file_name);
+ generated_files = g_slist_prepend (generated_files, g_strdup (c_file_name));
g_free (h_file_name);
g_free (c_file_name);
@@ -1267,6 +1280,7 @@ generate_struct_interfaces (GSList *nodes,
goto out;
}
g_printerr ("Wrote %s\n", h_file_name);
+ generated_files = g_slist_prepend (generated_files, g_strdup (h_file_name));
/* generate c file */
c_file_name = compute_file_name (name_space, struct_data->name, ".c");
@@ -1291,6 +1305,7 @@ generate_struct_interfaces (GSList *nodes,
goto out;
}
g_printerr ("Wrote %s\n", c_file_name);
+ generated_files = g_slist_prepend (generated_files, g_strdup (c_file_name));
g_free (h_file_name);
g_free (c_file_name);
@@ -1401,6 +1416,7 @@ generate_dbus_interfaces (GSList *nodes,
goto out;
}
g_printerr ("Wrote %s\n", h_file_name);
+ generated_files = g_slist_prepend (generated_files, g_strdup (h_file_name));
c_file_name = compute_file_name (name_space, iface_name, ".c");
file_print_func_begin (c_file_name);
@@ -1423,6 +1439,7 @@ generate_dbus_interfaces (GSList *nodes,
goto out;
}
g_printerr ("Wrote %s\n", c_file_name);
+ generated_files = g_slist_prepend (generated_files, g_strdup (c_file_name));
g_free (c_file_name);
g_free (h_file_name);
@@ -1504,6 +1521,23 @@ parse (char **xml_files,
if (!generate_marshallers (error))
goto out;
+ /* finally generate a stamp file if requested */
+ if (opt_stamp_file != NULL)
+ {
+ GSList *l;
+
+ file_print_func_begin (opt_stamp_file);
+ for (l = generated_files; l != NULL; l = l->next)
+ {
+ const gchar *file_name = l->data;
+ g_print ("%s\n", file_name);
+ }
+ if (!file_print_func_end (TRUE, error))
+ {
+ goto out;
+ }
+ }
+
/* and we're done... */
ret = TRUE;
@@ -1524,6 +1558,9 @@ parse (char **xml_files,
g_slist_foreach (nodes, (GFunc) egg_dbus_interface_node_info_free, NULL);
g_slist_free (nodes);
+ g_slist_foreach (generated_files, (GFunc) g_free, NULL);
+ g_slist_free (generated_files);
+
return ret;
}
diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
index 698e4b1..964ec24 100644
--- a/src/tests/Makefile.am
+++ b/src/tests/Makefile.am
@@ -21,28 +21,10 @@ INCLUDES = \
noinst_LTLIBRARIES=libeggdbustests.la
BUILT_SOURCES = \
- testerror.h testerror.c \
- testdetailederror.h testdetailederror.c \
- testcreateflags.h testcreateflags.c \
- testdeleteflags.h testdeleteflags.c \
- testotherflags.h testotherflags.c \
- testvehicle.h testvehicle.c \
- testbindings.h testbindings.c \
- testbindingstypes.h \
- testdescribedpair.h testdescribedpair.c \
- testdescribedpoint.h testdescribedpoint.c \
- testextendeddescribedpoint.h testextendeddescribedpoint.c \
- testfrob.h testfrob.c \
- testpair.h testpair.c \
- testpoint.h testpoint.c \
- teststructwithvariant.h teststructwithvariant.c \
- testtweak.h testtweak.c \
- testtwiddle.h testtwiddle.c \
- testbindingsmarshal.h testbindingsmarshal.c \
- testbindingsmarshal.list \
+ test-built-sources.stamp \
$(NULL)
- $(BUILT_SOURCES) : Makefile.am $(top_builddir)/src/eggdbus/eggdbus-binding-tool com.example.Frob.xml com.example.Tweak.xml com.example.Twiddle.xml
+test-built-sources.stamp : Makefile.am $(top_builddir)/src/eggdbus/eggdbus-binding-tool com.example.Frob.xml com.example.Tweak.xml com.example.Twiddle.xml
EGG_DBUS_GENMARSHAL=$(top_builddir)/src/eggdbus/eggdbus-glib-genmarshal $(top_builddir)/src/eggdbus/eggdbus-binding-tool \
--namespace "Test" \
--dbus-namespace "com.example" \
@@ -50,16 +32,53 @@ BUILT_SOURCES = \
--introspection-xml $(top_srcdir)/src/tests/com.example.Frob.xml \
--introspection-xml $(top_srcdir)/src/tests/com.example.Tweak.xml \
--introspection-xml $(top_srcdir)/src/tests/com.example.Twiddle.xml \
+ --stamp-file test-built-sources.stamp \
$(NULL)
-EXTRA_DIST = \
- com.example.Frob.xml \
- com.example.Tweak.xml \
- com.example.Twiddle.xml \
+# keep in sync with contents of test-built-sources.stamp
+#
+test_built_sources = \
+ testbindingsmarshal.c \
+ testbindingsmarshal.h \
+ testbindingsmarshal.list \
+ testbindings.c \
+ testbindings.h \
+ testbindingstypes.h \
+ testtwiddle.c \
+ testtwiddle.h \
+ testtweak.c \
+ testtweak.h \
+ testfrob.c \
+ testfrob.h \
+ testvehicle.c \
+ testvehicle.h \
+ testotherflags.c \
+ testotherflags.h \
+ testdeleteflags.c \
+ testdeleteflags.h \
+ testcreateflags.c \
+ testcreateflags.h \
+ testdetailederror.c \
+ testdetailederror.h \
+ testerror.c \
+ testerror.h \
+ teststructwithvariant.c \
+ teststructwithvariant.h \
+ testextendeddescribedpoint.c \
+ testextendeddescribedpoint.h \
+ testdescribedpair.c \
+ testdescribedpair.h \
+ testdescribedpoint.c \
+ testdescribedpoint.h \
+ testpair.c \
+ testpair.h \
+ testpoint.c \
+ testpoint.h \
$(NULL)
libeggdbustests_la_SOURCES = \
- $(BUILT_SOURCES) \
+ test-built-sources.stamp \
+ $(test_built_sources) \
testsubject.h testsubject.c \
testfrobimpl.h testfrobimpl.c \
testtweakimpl.h testtweakimpl.c \
@@ -68,14 +87,10 @@ libeggdbustests_la_SOURCES = \
libeggdbustests_la_CFLAGS = \
$(GLIB_CFLAGS) \
- $(DBUS_CFLAGS) \
- $(DBUS_GLIB_CFLAGS) \
$(NULL)
libeggdbustests_la_LIBADD = \
$(GLIB_LIBS) \
- $(DBUS_LIBS) \
- $(DBUS_GLIB_LIBS) \
$(top_builddir)/src/eggdbus/libeggdbus-1.la \
$(NULL)
@@ -90,16 +105,12 @@ testclient_SOURCES = \
testclient_CFLAGS = \
$(GLIB_CFLAGS) \
- $(DBUS_CFLAGS) \
- $(DBUS_GLIB_CFLAGS) \
$(NULL)
testclient_LDADD = \
$(GLIB_LIBS) \
- $(DBUS_LIBS) \
- $(DBUS_GLIB_LIBS) \
$(top_builddir)/src/eggdbus/libeggdbus-1.la \
- $(top_builddir)/src/tests/libeggdbustests.la \
+ libeggdbustests.la \
$(NULL)
###########################################################################
@@ -113,17 +124,22 @@ testserver_SOURCES = \
testserver_CFLAGS = \
$(GLIB_CFLAGS) \
- $(DBUS_CFLAGS) \
- $(DBUS_GLIB_CFLAGS) \
$(NULL)
testserver_LDADD = \
$(GLIB_LIBS) \
- $(DBUS_LIBS) \
- $(DBUS_GLIB_LIBS) \
$(top_builddir)/src/eggdbus/libeggdbus-1.la \
- $(top_builddir)/src/tests/libeggdbustests.la \
+ libeggdbustests.la \
$(NULL)
+EXTRA_DIST = \
+ com.example.Frob.xml \
+ com.example.Tweak.xml \
+ com.example.Twiddle.xml \
+ $(NULL)
+
+dist-hook :
+ (for i in $(test_built_sources) $(BUILT_SOURCES) ; do rm -f $(distdir)/$$i ; done)
+
clean-local:
- rm -f *~ $(BUILT_SOURCES)
+ rm -f *~ $(test_built_sources) $(BUILT_SOURCES)