----编辑为安装-EXEC钩是有用的,但这里的100%的回答----
扩展你的Makefile,通过更换 “安装:” 目标在Makefile.am
以下添加到“Makefile.am”
install: install-am
echo "Don't forget to set your LD_LIBRARY_PATH"
对于这个工作,你必须先找到在生成的Makefile中的安装目标,并将其复制到Makefile.am。这可以确保您不会破坏automake的目标如何相互依赖。
然后,您可以像在任何Makefile中那样在目标下添加命令。请注意,这是在Makefile.am中完成的,因此当automake构建它的Makefile.in和Makefile时,它将通过它通常提供的默认值获取您的目标。
这将使您的“警告”更接近非平行构建的结尾。危险之处在于您必须确保您的“安装”目标的覆盖与automake的要求保持一致。
另外,如果他们运行“make install-exec”,您的警告将不会报告。如果您决定让它在报告“使安装-EXEC”,那么你应该
- 删除报告定制 为“使安装”(避免 双报告)。
- 添加报告 定制为“make install-exec”(报告库 添加警告)。
- 自定义install-am 目标在安装可执行文件之前安装数据 。
例如使用安装定制删除
// note the lack of install: override int Makefile.am
install-exec: install-exec-am
echo "Be sure to update your LD_LIBRARY_PATH"
install-am: all-am
@${MAKE} $(AM_MAKEFLAGS) install-data install-exec
----原帖如下----
您的报告确实应该在安装时作出。在autotools平台中有两个安装目标:install-data和install-exec。共享库正确地位于“exec”类别下。
一个安装EXEC挂机添加到makefile.am
基本上它看起来有点像:
install-exec-hook:
echo "Be sure to set your LD_LIBRARY_PATH!"
安装数据,安装-EXEC,卸载,距离,和distcheck所有支持“挂钩”扩展。
只要保证它在构建结束时运行,就会有点困难。 Make/Automake被构造为允许并行构建,并且会干扰它在构建结束时运行的保证。
虽然答案和埃德温·巴克的评论是有很大的帮助,我意识到,这不是那么简单以当一个打印纯粹的“make”。于是我转而指定要为主目标打印什么内容。这有一些缺点(需要定义_every_新的主要目标,并行构建中未知的外观时间等)。因此,我个人的建议是将这也包括在install-exec-hook中,特别是如果报告/警告/注释对于用户知道并且不依赖于他/她来阅读文档非常重要;) – Shadow 2011-02-15 08:38:58