我有两个项目正在使用 Automake 构建。以下是 Automake.amS 的简化版本:
AM_CPPFLAGS = -I/some/include_path
lib_LTLIBRARIES = libfoo.la
libfoo_la_SOURCES = foo.cpp
libegfconfig_la_LIBADD = -lxml2
和
AM_CPPFLAGS = -I/some/include_path # I want this to happen implicitly
lib_LTLIBRARIES = libbar.la
libbar_la_SOURCES = bar.cpp
libbar_la_LIBADD = $(top_builddir)/some/path/libfoo.la
第二个文件只需要指定额外的包含路径,因为 bar.cpp 包含 foo.hpp,它包含来自/some/include_path 的内容。我希望第二个项目基于第一个项目这样做并且是依赖项这一事实隐式添加额外的包含路径。
这可能吗?
最佳答案
将包含路径放入 Makefile.am 中并不是一个好主意。如果用户将 header 安装在非标准位置,则让用户通过在要配置的命令行或 CONFIG_SITE 中向 CPPFLAGS 添加适当的 -I 子句来告知配置。听起来你真正想做的是把
CPPFLAGS=-I/some/include_path
在/usr/local/share/config.site 或 $CONFIG_SITE 中,并且不将其包含在任何一个项目的 Makefile.am 中。
关于c++ - C/C++ : Add -I option automatically for indirect include using automake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5722240/