递归make distclean:没有这样的文件或目录

时间:2018-07-23 07:59:48

标签: c++ makefile autoconf automake

我有以下目录:

$ cd dir1
$ tree
[...]
├── autogen.sh
├── CMakeLists.txt
├── common.gmake.in
├── configure.ac
├── Makefile.am
├── src
│   ├── Makefile.am
│   ├── Makefile.in
│   ├── [...]
│   └── dir2
│       ├── CMakeLists.txt
│       ├── Makefile.am 
│       ├── [...]

在dir2的Makefile.am中,我有:

[...]
include @abs_top_builddir@/common.gmake
[...]

我第一次编译时,一切正常。但是,如果我想第二次编译,因为我生成了config.status文件,那么Makefile要执行make distclean。它将在dir1中执行它并删除co​​mmon.gmake。但是由于它是递归的,因此当它进入dir2目录时,会出现以下错误:

Making distclean in dir2
gmake[2]: Entering directory `/dir1/src/dir2'
Makefile:1760: /dir1/common.gmake: No such file or directory
gmake[2]: *** No rule to make target `/dir1/common.gmake'.  Stop.

在我看来,automake生成的递归目标是错误的,因为它想要删除以前已删除的文件。你觉得呢?

0 个答案:

没有答案