[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: No rule to make target 'interruptServer.stamp', needed by 'interrupt
From: |
Sergey Bugaev |
Subject: |
Re: No rule to make target 'interruptServer.stamp', needed by 'interrupt_S.h' |
Date: |
Wed, 25 Jan 2023 13:57:16 +0300 |
> On Tue, Jan 24, 2023 at 7:59 PM Ryan Raymond <rjraymond@oakland.edu> wrote:
> Does anyone know what this is? The file "interrupt_S.h" doesn't exist, but
> many files refer to it. I checked the git log but there wasn't a record of
> the file ever existing.
This header in not checked into the Git repo, it is, as Flávio says,
generated (and re-generated, should the defs change) by MIG during the
build process.
As your other error message indicates, Make knows how to, well, make,
interrupt_S.h, but not interruptServer.stamp which is needed for
interrupt_S.h. The rules to build *Server.stamp files are in Makeconf:
-- >8 --
%Server.stamp: %.sdefsi
$(MIGCOM) $(MIGCOMFLAGS) $(MIGCOMSFLAGS) $($*-MIGCOMSFLAGS) \
-sheader $(mig-sheader-prefix)$*_S.h -server $*Server.c \
-user /dev/null -header /dev/null < $<
touch $@
$(mig-sheader-prefix)%_S.h %Server.c: %Server.stamp
:
-- 8< --
So what actually happens is the MIG invocation generates the foo_S.h
and the fooServer.c, but the buildsystem tells make that it generates
fooServer.stamp (which the rule does, by simply touch'ing it), and
then there's a chained rule [0] for actually "generating" the foo_S.h
from the fooServer.stamp, by pretending to do something.
[0]: Chained Rules (GNU make)
Sergey