将生成的文件添加到发行版的最佳方法?
我有一个使用 autoconf / automake 的相当复杂的(C++)项目,其中包括一些“生成的”文件(foo.yy -> foo.cc)。 实际构建是在各种平台上使用“控制脚本”(熟悉该概念的人使用 Gentoo .ebuild)完成的。
现在,目标平台之一无法正确支持 foo.yy -> foo.cc 步骤,并且必须使用 Linux 机器上生成的 foo.cc 文件。
现在我有两种方法可以解决这个问题:
1)将 foo.cc 签入项目存储库,并以某种方式修补configure.in(或其他)以包括对 foo.yy / foo.cc 的时间戳检查,生成可理解的错误消息如果使用过时的 foo.cc 在相关目标上运行;
2)将foo.cc签入控制脚本存储库,并让脚本控制时间戳并给出错误消息。
我可以做到 2) 没问题,但我认为这不是放置 foo.cc 的正确位置。
另一方面,我对 autoconf / automake 不太了解,也不知道如何在configure.in(或任何地方)中实现时间戳检查/错误消息。
您有什么建议,这里有人知道如何解决解决方案 1) 吗?
编辑:使用解决方案 3) 解决,调整有问题的目标框,直到它能够执行 foo.yy -> foo.cc 步骤本身。 我的问题已经解决了。
但我将保留这个问题 - 如何使用 autoconf / automake 进行时间戳检查/可理解的错误消息?
I have a quite complex (C++) project using autoconf / automake, which includes some "generated" files (foo.yy -> foo.cc). Actual builds are done using a "control script" (Gentoo .ebuild for those familiar with the concept), on various platforms.
Now, one of the target platforms does not properly support the foo.yy -> foo.cc step, and has to use the foo.cc file generated on a Linux box.
Now I have two ways to go about this:
1) Check in foo.cc into the project repository and somehow patch configure.in (or whatever) to include a timestamp check on foo.yy / foo.cc, generating a comprehensible error message if run on the target in question with an outdated foo.cc;
2) Check in foo.cc into the control script repository, and have the script control time stamps and give the error message.
I could do 2) no problem, but I don't think it's the right place to put foo.cc.
On the other hand, I don't know much about autoconf / automake, and wouldn't know how to implement a timestamp check / error message in configure.in (or whereever).
What are your suggestions, and would anyone here know how to go about solution 1)?
Edit: Solved using solution 3), tweaking the problematic target box until it is able to do the foo.yy -> foo.cc step itself. My problem is solved.
But I'll leave the question open - how to do timestamp checks / comprehensible error messages with autoconf / automake?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从 Automake 手册中的 8.8 开始:
这听起来好像您所描述的问题不应该存在。
From 8.8 in the Automake manual:
That makes it sound as if the problem you're describing should not exist.