12

I have changed Makefile of a project and now when I make it, it returns:-

ERROR: "make[2]: *** No rule to make target ../libvmi/driver/.deps/xen.Po. Stop. "

How does Makefile create .Po files and how can I disable creating it for a certain file like ../libvmi/driver/.deps/xen.c?

Jack Kelly
  • 18,264
  • 2
  • 56
  • 81
Peggy
  • 639
  • 9
  • 28

2 Answers2

13

.Po files are used as part of automake's dependency tracking. They are usually created by config.status as empty files, which get overwritten by actual dependencies when the compiler is invoked. (automake's approach is to do dependency generation as a side-effect of compilation.)

I've found that running make -k (-k is short for --keep-going) will be enough to unstick the build, once the file whose .Po is missing has been recompiled.

Jack Kelly
  • 18,264
  • 2
  • 56
  • 81
0

Automake uses dependencies for compilation by default. Dependencies are created in the .deps/ folder with the extension .Po.

Dependencies can be disabled. For various methods on turning dependencies off, see https://www.gnu.org/software/automake/manual/html_node/Dependencies.html

In my Makefile.am, I added the no-dependencies flag which prevents the .deps/ folder and .Po files from being created.

AUTOMAKE_OPTIONS = subdir-objects no-dependencies
mhck
  • 873
  • 1
  • 10
  • 20