Проще говоря, я наткнулся на файл «buildconf.py.am.in» внутри проекта, который мы разрабатываем на работе. Не очень эксперт в autotools (я должен был изучить их для этой работы), это кажется довольно странным для меня. Внутри есть два [email protected]@
и два VAR=[@]VAR[@]
.".am.in"? Можно ли написать «.in» без его создания?
Как может быть «.am.in»? Для меня это означает, что мы пишем .in для генерации .am, который будет использоваться для генерации другого .in (или .py, возможно). Это выглядит «законным» или «фиксированным»? Таким образом, после этапа configure
у меня есть «buildconf.py.am», который используется во время процесса make
для генерации .py. Он содержит следующее:
do_subst = sed -e 's,\[@\]APP_VARDIR\[@\],$(localstatedir)/app/,g' \
-e 's,\[@\]APP_LOGDIR\[@\],$(logdir),g'
buildconf.py: buildconf.py.am
$(do_subst) < $(srcdir)/buildconf.py.am > buildconf.py
Является ли это «нормальным» или «приемлемым»? Поскольку я пытаюсь консолидировать все это, поскольку все становится «сложным» и трудно обновляемым, похоже, что это одно из огромных исправлений для меня.
TY!
EDIT:
Сценарий в основном определяет пути для папок, используемых «плагин», таким образом, нуждающихся в таких вещах, как DATADIR или мягкая INSTALLDIR. Он также определяет структуру папок, которая будет использоваться этими плагинами, чтобы они могли быть импортированы с помощью кода python так называемых плагинов. Кроме того, эти «плагины» на самом деле являются уровнем сервера/маршрутизации приложения.
buildconf.py.am.in
файл не генерируется, но записывается вручную;buildconf.py.am
объявлен среди других вAC_CONFIG_FILES
(как это могло быть? Он должен сказать «должно бытьbuildconf.py.am.in.am
рядом с ним, который будет использоваться для созданияbuildconf.py.am.in.in
, чтобы затем сделать»buildoncf.py.am.in
файл ... Но все мы хотим и получаемbuildconf.py
);- работает
configure
генерируетbuildconf.py.am
, заданные переменные - это два булеана, которые указывают, предусмотрены ли плагины mongoDB и web UI; make
создает окончательныйbuildconf.py
, который должен быть импортирован там, где необходимы постоянные, которые он удерживает. Это делается в это время, так как ему нужны переменные, которые меняются во время шага настройки.
Во-первых, спасибо. Может быть, просто разработчик неправильно понял роли «.in» и «.am», а ауттоулз - хорошую практику или что-то в этом роде. Потому что autotools были навязаны «гениальным коллегой» (те, кто знает, кто хороший разработчик, кто плохой ...). Вот почему я потерял себя: я огромный noob в поле autotools, но чувствует, что «наш эксперт» уже позади меня с точки зрения знания autotools, что для меня абсолютно неудобно. Независимо от того, важная часть заключается в том, что это разъясняется, поэтому я могу быть уверен, что я не делаю ничего плохого ... :) – Shirraz