diff options
author | David Zeuthen <davidz@redhat.com> | 2009-02-02 20:10:04 -0500 |
---|---|---|
committer | David Zeuthen <davidz@redhat.com> | 2009-02-02 20:10:04 -0500 |
commit | 47f356abebc0ef935dbdcd4e3bc3bc6a67261286 (patch) | |
tree | f28e5b0daf3c84ba0f9956f156f69a683e9d7567 | |
parent | 7cf26d65e7ba4872429e901e1399da74d97d4488 (diff) |
add stamp files and fix buildsystem so things like 'make -j4' work
-rw-r--r-- | src/eggdbus/Makefile.am | 61 | ||||
-rw-r--r-- | src/eggdbus/eggdbusbindingtool.c | 37 | ||||
-rw-r--r-- | src/tests/Makefile.am | 96 |
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) |