diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2015-10-31 12:44:06 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2015-10-31 12:44:06 +0100 |
commit | a42c4ee0845b79fb70c2206982347c1b0c093f87 (patch) | |
tree | 17caa974d696b4cb35b619526c5200f86a2d654c | |
parent | 334208dc0d747075e93f4da45143ae67c2e7fe91 (diff) |
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.
-rw-r--r-- | Makefrag.am | 11 | ||||
-rw-r--r-- | Makerules.mig.am | 21 |
2 files changed, 19 insertions, 13 deletions
diff --git a/Makefrag.am b/Makefrag.am index b9d96c5..823ece5 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 085b247..8ae6555 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. |