On 2021-06-21, Werner LEMBERG <w...@gnu.org> wrote: > I have a `Makefile.am` in a `frontend` subdirectory that looks like > the following (abridged). [...] > Running the generated `Makefile` with `make -j12`, I get this: > > ... > Making all in frontend > make[2]: Entering directory '.../frontend' > ... > make all-am > make[3]: Entering directory '.../frontend' > CXX info.o > CXX main.o > CXX ttfautohintGUI-ddlineedit.o > CXX ttfautohintGUI-info.o > CXX ttfautohintGUI-main.o > CXX ttfautohintGUI-maingui.o > CXX ttfautohintGUI-ttlineedit.o > make ttfautohint > CXX ttfautohintGUI-ddlineedit.moc.o > CXX ttfautohintGUI-maingui.moc.o > CXX ttfautohintGUI-static-plugins.o > CXX ttfautohintGUI-ttlineedit.moc.o > make[4]: Entering directory '.../frontend'
Here one of your make rules has started a recursive build in the "frontend" directory. > CXX info.o > make ttfautohintGUI > make[4]: Entering directory '.../frontend' Here *another* one of your make rules has *also* started a recursive build in "frontend", concurrently with the one that was started previously. > CXXLD ttfautohintGUI > CXX main.o > mv: cannot stat '.deps/info.Tpo': No such file or directory Those independent make invocations are simultaneously running the same compilation rules and have no knowledge of what the other make processes are doing. Failure is the inevitable outcome. > make[4]: *** [Makefile:1401: info.o] Error 1 > make[4]: *** Waiting for unfinished jobs.... > CXXLD ttfautohint > make[4]: Leaving directory '.../frontend' > ... > > What am I doing wrong? I would be glad for any pointers. The problem is not related to the snippet you posted. The concurrent recursive make invocations are being spawned from somewhere else in your build system. Hope that helps, Nick