2014-12-28 2 views
1

Я пытаюсь создать Homebrew formula for gtk-mac-integration. Запуск сделать в bindings/python/gtkosx_application не удается:Как обращаться к файлам данных в пакете pkg-config с помощью autotools и pkg-config?

/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: can't open file '/usr/local/Cellar/gtk-mac-integration/2.0.7/share/pygobject/2.0/codegen/h2def.py': [Errno 2] No such file or directory 
make[3]: *** [gtkosx_application.defs] Error 2 

Это происходит потому, что Makefile пытается найти h2def.py файл в неправильном месте:

gtkosx_application.defs: $(headers) 
     $(PYTHON) $(datadir)/pygobject/2.0/codegen/h2def.py $(headers) > [email protected] 

Это понятно мне, почему это провал: $(datadir) указывает на общий каталог пакета, который должен быть установлен (gkt-mac-integration). Поскольку Homebrew устанавливает все пакеты в собственный префикс (/usr/local/Cellar/...), это не то же самое для gtk-mac-integration и pygobject.

Я знаю, что можно узнать, где каталог pygobject данных ищется с помощью

pkg-config --variable=datadir pygobject-2.0 

Я не думаю, что правильное исправление для замены datadir в Makefile с указанными выше строками? Как мне настроить configure.ac и Makefile.am, чтобы сделать эту работу правильно?

+0

Возможный дубликат [Запрос переменной pkg-config через autotools] (http://stackoverflow.com/questions/21664473/query-pkg-config-variable-through-autotools) –

ответ

0

Да, это звучит как ошибка в системе сборки.

Вы можете использовать объект inreplace, чтобы исправить это. Вставьте это после def install:

inreplace %w[bindings/python/gtkmacintegration/Makefile.am bindings/python/gtkmacintegration/Makefile.in bindings/python/gtkosx_application/Makefile.am bindings/python/gtkosx_application/Makefile.in], '$(datadir)/pygobject', | %x[pkg-config --variable=datadir pygobject-2.0].chomp + '/pygobject'

(я попытался это формула строит после этого.).

Вы должны сообщить об этом выше по потоку. Они должны изменить свою систему сборки, чтобы разобраться в своем сценарии configure.

+0

Патч уже отправлен и принят :) –