> 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