> On Tue, Jan 24, 2023 at 7:59 PM Ryan Raymond <rjraym...@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

Reply via email to