summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makeconf25
1 files changed, 16 insertions, 9 deletions
diff --git a/Makeconf b/Makeconf
index 05176676..f7f74be7 100644
--- a/Makeconf
+++ b/Makeconf
@@ -385,7 +385,8 @@ endif
# Cleaning
ifeq ($(clean),yes)
clean:
- rm -f *.d *.*_d *.o *Server.c *User.c *_S.h *_U.h $(cleantarg)
+ rm -f *.d *.*_d *.o *Server.c *User.c *_S.h *_U.h *.[su]defsi \
+ $(cleantarg)
relink:
rm -f $(linktarg)
endif
@@ -459,15 +460,21 @@ vpath libutil.% $(libdir)/
# CPPFLAGS flags to CPP
# Implicit rules for building server and user stubs from mig .defs files.
-%_S.h %Server.c: %.defs
- $(CPP) $(CPPFLAGS) $(MIGSFLAGS) $($*-MIGSFLAGS) -DSERVERPREFIX=S_ $< \
- | $(MIGCOM) $(MIGCOMSFLAGS) $($*-MIGCOMSFLAGS) \
+
+# These chained rules could be (and used to be) single rules using pipes.
+# But it's convenient to be able to explicitly make the intermediate
+# files when you want to deal with a problem in the MiG stub generator.
+%_S.h %Server.c: %.sdefsi
+ $(MIGCOM) $(MIGCOMSFLAGS) $($*-MIGCOMSFLAGS) \
-sheader $*_S.h -server $*Server.c \
- -user /dev/null -header /dev/null
-%_U.h %User.c: %.defs
- $(CPP) $(CPPFLAGS) $(MIGUFLAGS) $($*-MIGUFLAGS) $< \
- | $(MIGCOM) $(MIGCOMUFLAGS) $($*-MIGCOMUFLAGS) \
- -user $*User.c -server /dev/null -header $*_U.h
+ -user /dev/null -header /dev/null < $<
+%.sdefsi: %.defs
+ $(CPP) $(CPPFLAGS) $(MIGSFLAGS) $($*-MIGSFLAGS) -DSERVERPREFIX=S_ $< -o $@
+%.udefsi: %.defs
+ $(CPP) $(CPPFLAGS) $(MIGUFLAGS) $($*-MIGUFLAGS) $< -o $@
+%_U.h %User.c: %.udefsi
+ $(MIGCOM) $(MIGCOMUFLAGS) $($*-MIGCOMUFLAGS) < $< \
+ -user $*User.c -server /dev/null -header $*_U.h
# Where to find .defs files.
vpath %.defs $(top_srcdir)/hurd