【发布时间】:2012-08-19 13:04:38
【问题描述】:
这个问题扩展了问题How to handle subprojects with autotools?
所以我有一些带有自己的 Makefile(不是 GNU 自动工具)的项目 模块/libfoo
我添加了 SUBDIRS = include/jsonbox Makefile.am 并且它编译得很好,但前提是我从顶级目录调用 ./configure 和 make。
如果我创建一个子目录,比如 build,然后从中运行 ../configure,我会在 make 过程中遇到错误:
Making all in modules/libfoo
/bin/sh: line 17: cd: modules/libfoo: No such file or directory
make: *** [all-recursive] Error 1
可以处理吗?我需要几个构建目录用于不同的拱门和 CFLAGS。
编辑: 正如docs 中所建议的那样,我在嵌套项目中创建了一个 GNUmakefile.in。但它仍然不适用于 VPATH:
Making all in modules/libfoo
make[1]: Entering directory `/home/galadog/test/build/moudles/libfoo'
GNUmakefile:2: Makefile: No such file or directory
make[1]: *** No rule to make target `Makefile'. Stop.
make[1]: Leaving directory `/home/galadog/test/build/moudles/libfoo'
make: *** [all-recursive] Error 1
编辑2 实际的 Makefile 可以在这里看到: https://github.com/anhero/JsonBox/blob/master/Makefile
【问题讨论】:
-
可以修改那个子项目的Makefile还是第三方Makefile?
-
@michal-gorny 这是最坏的情况,但如果没有其他解决方案我可以。
-
您可以为我们粘贴
Makefile吗?也许它已经有某种 build-dir/VPATH 支持,但老实说我对此表示怀疑。 -
@MichałGórny 查看更新后的帖子