Включите заголовки GLib в autoconf/automake

Мне нужно включить заголовки GLib для проекта, который построен на основе системы autoconf для переносимости.

Как безопасно импортировать заголовки GLib в переносимом режиме? Я знаю о pkg-config, но он не является полностью переносимым (поскольку в некоторых системах его нет, и я бы предпочел полагаться только на autoconf для настройки).

2 ответа

Решение

GLib 2.22 INSTALL файл утверждает, что pkg-config является обязательным требованием для установки этой библиотеки. Я не являюсь GLib (каламбур!); Изложение этого требования является одной из первых вещей на вершине INSTALL файл.

Из окружающего текста неясно, pkg-config необходим для компиляции самого GLib, однако ясно, что авторы GLib 2.22 не собираются собирать компиляторы для GLib без использования pkg-config. В частности, GLib's make install установлю .pc файлы соответственно.

Для переносимости платформы попросите пользователя установить $PKG_CONFIG_PATH соответственно.

Используя PKG_CHECK_MODULES макрос, сгенерированный Autoconf configure Скрипты могут получать данные pkg-config автоматически. Например, добавив эту строку в ваш configure.ac файл:

PKG_CHECK_MODULES([DEPS], [glib-2.0 >= 2.24.1])

приведет к получению configure сценарий, чтобы убедиться, что установленная версия glib-2.0 больше или равна версии 2.24.1, а также добавлять к переменным DEPS_CFLAGS а также DEPS_LIBS выход pkg-config --cflags glib-2.0 а также pkg-config --libs glib-2.0 соответственно. Затем вы используете $(DEPS_CFLAGS) а также $(DEPS_LIBS) переменные в _CFLAGS а также _LDADD праймериз:

bin_PROGRAMS = hello

hello_CFLAGS = $(DEPS_CFLAGS)
hello_SOURCES = hello.c
hello_LDADD = $(DEPS_LIBS)
Другие вопросы по тегам