Я работаю над проектом autotools, и я новичок в мире autotools. По разным причинам, подробно описанным внизу для полноты, у меня есть сценарий оболочки, из которого я хочу получить вывод для использования в моем make-файле.Как получить вывод скрипта оболочки в Makefile.am во время выполнения?
У меня есть ситуация, аналогичная следующей. Autoconf генерирует скрипт из команды AC_CONFIG_FILES
. например
AC_CONFIG_FILES([thescript], [chmod +x thescript])
thescript.in
#!/bin/sh
# -*- sh -*-
# @[email protected]
echo @[email protected]/bar/foo
То, что я действительно хочу сделать, это использовать то, что возвращается @[email protected]/bar/foo
для использования в моем Makefile. Я хочу, чтобы это значение доступно в переменной на время выполнения и иметь доступ к нему в моем Makefile.am, например, $(FOOPLACE)
. Как я могу это достичь?
Причина Я требую Это/Экстренная Информация
Этот вопрос связан с предыдущим вопросом о руднике здесь:
How to get absolute path to top build directory in autoconf configure.ac?
Проект требует подпроект, который имеет свой собственный Makefile и configure.ac. Подпроект - это программа, которая используется для генерации исходных файлов для основного проекта. Существует возможность отключить создание этого проекта и попытаться использовать установленную версию. В этом случае местоположение установленной версии предоставляется в переменной FOOPLACE
(uisng AC_PATH_PROG
). Когда я использую локально построенную версию, я хочу поместить ее ее в FOOPLACE
. Затем переменная используется в Makefile.am как $(FOOPLACE)
.
Похоже, что в autoconf есть ошибка, что означает, что доступ к абс_top_builddir можно найти только в файлах конфигурации, сгенерированных AC_CONFIG_FILES
во время настройки. Есть детали того, почему я хочу сделать это в связанном вопросе.
Что не так с переменной make '$ (abs_top_builddir)'? –
@WilliamPursell, я отредактирую вопрос, чтобы объяснить это. – crobar
@WilliamPursell, теперь я отредактирован, я открыт для совершенно разных решений, если у вас есть идея. Я новичок в этом. – crobar