Макрос AC_SEARCH_LIBS делает то, что вам нужно. (Есть много жарких споров о том, следует ли когда-либо использовать pkg-config. Если вы решите положиться на него, ptomato предлагает разумный подход.) Просто добавьте это в свой configure.ac:
AC_SEARCH_LIBS([osync_mapping_new],[opensync1 opensync],[],
[AC_MSG_ERROR([can't find opensync])])
Это сначала ищет библиотеку с именем opensync1; если он этого не находит, он будет искать opensync.
Основным недостатком использования pkg-config является то, что большинство проектов, которые полагаются на него, на самом деле не проверяют надежность данных, предоставляемых файлом .pc, поэтому configure может завершиться успешно, но последующая сборка завершится ошибкой. Пользователь всегда может установить PKG_CONFIG=true при запуске configure и полностью удалить все данные, предоставляемые любыми связанными файлами .pc, установив LIBS, CFLAGS и т. д. вручную «старомодным» способом.
Основным недостатком отказа от использования pkg-config является то, что пользователю приходится устанавливать LIBS, CFLAGS и т. д. старомодным способом. На практике это довольно тривиально, и все, что сделал pkg-config, — это переместил данные из одного файла CONFIG_SITE в отдельно поддерживаемые файлы .pc для каждого пакета.
Если вы все же используете PKG_MODULE_CHECK, дополните его вызовом AC_CHECK_LIB или AC_SEARCH_LIBS для проверки данных в любом файле .pc, который был обнаружен PKG_CHECK_MODULES.
person
William Pursell
schedule
08.12.2010