From a42c4ee0845b79fb70c2206982347c1b0c093f87 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 31 Oct 2015 12:44:06 +0100 Subject: Rework *.msgids handling when neither client nor server stubs are required Originally added in commit 255c47e669819f153c722c98a230f6fe4e6ece08, but "make distcheck" didn't like that: [...] ERROR: files left in build directory after distclean: ./ipc/notify.msgids Makefile:7489: recipe for target 'distcleancheck' failed make[1]: *** [distcleancheck] Error 1 make[1]: Leaving directory '[...]/gnumach/release.build/gnumach-1.5/_build/sub' Makefile:7416: recipe for target 'distcheck' failed make: *** [distcheck] Error 1 Instead of special-casing that, generalize the Makefile rules. * Makefrag.am (nodist_lib_dep_tr_for_defs_a_SOURCES): Add ipc/notify.none.defs.c. (nodist_libkernel_a_SOURCES): Add ipc/notify.none.msgids. (gnumach.msgids): Remove ipc/notify.msgids prerequisite. * Makerules.mig.am (%.msgids): Remove rule, and instead... (%.none.defs.c, %.none.msgids): ... add these rules. --- Makefrag.am | 11 +++++++++-- Makerules.mig.am | 21 ++++++++++----------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/Makefrag.am b/Makefrag.am index b9d96c5d..823ece5d 100644 --- a/Makefrag.am +++ b/Makefrag.am @@ -545,11 +545,18 @@ nodist_libkernel_a_SOURCES += \ # kern/mach_debug.server.defs # kern/mach_host.server.defs +# Stand-alone rule to generate the list of message ids when neither +# the client nor the server stubs are required. +nodist_lib_dep_tr_for_defs_a_SOURCES += \ + ipc/notify.none.defs.c +nodist_libkernel_a_SOURCES += \ + ipc/notify.none.msgids +# ipc/notify.none.defs + # rpctrace can make use of that. MOSTLYCLEANFILES += \ gnumach.msgids -gnumach.msgids: $(filter %.msgids,$(nodist_libkernel_a_SOURCES)) \ - ipc/notify.msgids +gnumach.msgids: $(filter %.msgids,$(nodist_libkernel_a_SOURCES)) $(AM_V_at) cat $^ > $@.new $(AM_V_GEN) mv $@.new $@ # `exec_' prefix, so that we don't try to build that file during when running diff --git a/Makerules.mig.am b/Makerules.mig.am index 085b247a..8ae65557 100644 --- a/Makerules.mig.am +++ b/Makerules.mig.am @@ -74,29 +74,28 @@ lib_dep_tr_for_defs_a_CPPFLAGS = $(AM_CPPFLAGS) \ %.server.defs.c: %.srv $(AM_V_at) rm -f $@ $(AM_V_GEN) cp -p $< $@ -%.user.defs.c: %.cli - $(AM_V_at) rm -f $@ - $(AM_V_GEN) cp -p $< $@ %.server.h %.server.c %.server.msgids: lib_dep_tr_for_defs_a-%.server.defs.$(OBJEXT) $(MIGCOM_V) $(MIGCOM) $(MIGCOMFLAGS) $(MIGCOMSFLAGS) \ -sheader $*.server.h -server $*.server.c \ -list $*.server.msgids \ < $< +%.user.defs.c: %.cli + $(AM_V_at) rm -f $@ + $(AM_V_GEN) cp -p $< $@ %.user.h %.user.c %.user.msgids: lib_dep_tr_for_defs_a-%.user.defs.$(OBJEXT) $(MIGCOM_V) $(MIGCOM) $(MIGCOMFLAGS) $(MIGCOMUFLAGS) \ -user $*.user.c -header $*.user.h \ -list $*.user.msgids \ < $< - -vpath %.defs $(top_srcdir) - # Stand-alone rule to generate the list of message ids when neither # the client nor the server stubs are required. -%.msgids: %.defs - $(MIGCOM_V) $(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -E $< \ - | $(MIGCOM) $(MIGCOMFLAGS) $(MIGCOMSFLAGS) \ - -sheader /dev/null -server /dev/null \ - -list "$*.msgids" +%.none.defs.c: %.defs + $(AM_V_at) rm -f $@ + $(AM_V_GEN) cp -p $< $@ +%.none.msgids: lib_dep_tr_for_defs_a-%.none.defs.$(OBJEXT) + $(MIGCOM_V) $(MIGCOM) $(MIGCOMFLAGS) \ + -list $*.none.msgids \ + < $< # This is how it should be done, but this is not integrated into GNU Automake # and is missing automatic inter-file dependency management because of that. -- cgit v1.2.3