LINUX.ORG.RU

выполнить рецепт перед любой целью

 


0

1

Добрый день. Хочу прописать рецепт для создания файла с путями (localstatedir, ...), очевидно то, что он должен быть выполнен самым первым. Как этого достичь?

paths.h:
    echo "$localstatedir" >> paths.h
    ...
Т.е. любая цель должна зависить paths.h.

★★

так и пиши, чтобы все цели зависили от paths.h, как писать правила, смотри в гугле

IvanR ★★★
()
Ответ на: комментарий от pavlick

писал, но вы не сказали, что вам нужен automake, вообще в make файлах использую что-то подобное:

$(PROG): $(OBJECTS)
	$(CC) $(LDFLAGS) -o $@ $^

%.o: %.d

%.d: %.c
	$(CC) $(CFLAGS) -MM -MT '$(patsubst %.c,%.o,$<)' $< -MF $@
в automake не знаю, гуглите сами.

IvanR ★★★
()

Я так понимаю, что Gnulib::configmake решает этот вопрос (создаёт заголовочный файл с путями), но как им пользоваться не ясно (ответ не на поверхности, во всяком случае для меня). Ребят, в двух словах, как это использовать? Иначе придётся штудировать доки по Gnulib, чего не хотелось бы.

pavlick ★★
() автор топика

До меня вот что дошло: я наверное ерундой занимаюсь, лучше во время выполнения узнать путь исполняемого файла и плясать от него. Конечно ограничивает гибкость установки, но мне хватит (штудировать доки gnulib не лучше).

pavlick ★★
() автор топика
Ответ на: комментарий от i_gnatenko_brain

Имеете в виду сделать подстановку из configure скрипта? Очевидно да, а как развернуть prefix? Например имеем local statedir == ${prefix}/var, если не ошибаюсь, то в таком виде он и пойдёт в config.h. Или ошибаюсь?

pavlick ★★
() автор топика
Ответ на: комментарий от i_gnatenko_brain

Я имею в виду получить строку не вида ${prefix}/var, а /usr/local/var. Но если говорите, что там рыба есть, поробую.

pavlick ★★
() автор топика
Ответ на: комментарий от pavlick

Не понял, к чему написали AC_SUBST, может это зависит от способа использования config.h, которых вроде больше одного. Вообще в config.h что-то прописывается с использованием AC_DEFINE и AC_DEFINE_UNQUOTED. И да, переменные раскрываются и в config.h уже нормальные пути.

xaizek ★★★★★
()

Не знаю как вы раскрываете пути в config.h, у меня ничего не выходит.

#configure.ac
AC_DEFINE_UNQUOTED([LOCALSTATEDIR], [$localstatedir])
# пробывал развернуть в оболочке
#AC_DEFINE_UNQUOTED([LOCALSTATEDIR], [`echo $localstatedir`])
AC_CONFIG_HEADERS(config.h)

#config.h.in
#undef LOCALSTATEDIR

#config.h
#define LOCALSTATEDIR $(prefix)/var

pavlick ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.