Включите заголовки GLib в autoconf / automake - PullRequest
7 голосов
/ 14 ноября 2009

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

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

Ответы [ 2 ]

12 голосов
/ 21 августа 2010

С помощью макроса 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)
4 голосов
/ 12 декабря 2009

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

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

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

...