我手上有一个大型项目(master),它被分成几个组件(liba、b、c、d)以方便构建和维护。在构建整个包时,必须按顺序构建所有子组件,并且其中一些包相互依赖。
更明确地说,liba 是 b、c 和 d 的先决条件,并且 liba 的存在由配置脚本检查。在单独构建 b 发行版时,为了提供用户友好的错误消息,此检查绝对是必要的。但是,在构建主包及其所有子包时,liba 被构建为子目标。因此,当configure在master套件上运行时,liba尚未安装,并且检查b中的liba失败。
我可以通过将 --with-liba=internal 或类似标志传递给 b; 的配置脚本来纠正此问题。但是,我还没有找到任何有关 autoconf 的此类标志传递的文档。目前,我在 master 中有一个很长很长的自定义 Makefile,它的作用与带有子目录的 autoconf/automake 相同,但稍微重新排序了依赖项,这样就可以代替 (configure liba) => (configure b) => (build liba) => (build b),顺序为 (configure liba) => (build liba) => (install liba) => (configure b) => (build b)。
知道如何使用标准 autoconf/automake 子目录重构它吗?
这封邮件 http://lists.gnu.org/archive/html/autoconf/2011-04/msg00006.html可能有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)