C / C ++: автоматически добавлять опцию -I для косвенного включения с использованием automake - PullRequest
4 голосов
/ 20 апреля 2011

У меня есть два проекта, которые создаются с помощью 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. Я хотел бы, чтобы второй проект неявно добавил дополнительный путь включения, основываясь на том факте, что первый проект делает это и является зависимостью.

Возможно ли это?

Ответы [ 3 ]

1 голос
/ 25 апреля 2011

Помещать пути включения в Makefile.am не очень хорошая идея.Если пользователь установил заголовки в нестандартном месте, то позвольте ему сообщить об этом конфигурации, добавив соответствующее условие -I в CPPFLAGS, либо в командной строке для настройки, либо в CONFIG_SITE.Похоже, что вы действительно хотите сделать, это поместить

CPPFLAGS=-I/some/include_path

в /usr/local/share/config.site или в $ CONFIG_SITE, и не включать его в Makefile.am любого из вашихпроекты.

0 голосов
/ 21 апреля 2011

Ну, pkg-config обычно используется с проектами автоинструментов

Пример:

gcc -o test test.c $(pkg-config --libs --cflags libpng)
0 голосов
/ 21 апреля 2011

Нет, это невозможно с Automake.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...