[docs] Re: current makefiles again (was: Tuning and profiling)
Vitaly Ostanin
vyt на vzljot.ru
Вт Дек 9 15:07:07 MSK 2003
В продолжение темы о шаблонах и переменных.
On Tue, 2 Dec 2003 20:16:37 +0300
"Oleg A. Paraschenko" <olpa на xmlhack.ru> wrote:
<skipped/>
> > Будет сложно переписывать правила везде, где используется
> > прибитое гвоздями расширение .xinclude
>
> С этим согласен. Но надо же в какой-то момент переставать
> делать
> косвенные ссылки и писать явно что от чего зависит. Мне
> кажется, что замена ".xinclude" на "$(xinclude)" ничего не
> даёт.
Я тут ещё немного подумал над этим и всё-таки не согласен.
> > Да, Makefiles переписывались для сборки с учётом
> > зависимостей, но причём тут тотальная шаблонность? Мы же не
> > проект на С собираем с тучей файлов.
>
> Думаю, что стили написания смешивать нехорошо. Результат
> будет объединять недостатки как одного, так и другого
> подхода.
Использование сборки по зависимостям и шаблонное указание имён
файлов - это разные стили. Да, безусловная сборка - это плохо, но
чем плохо указание имён файлов через переменные?
Если файл указывается несколько раз, его нужно брать именно в
переменную.
Я могу оценить крутость записи вида
fo: $(TMP)/$(DOCUMENT_NAME).$(paper_profile).$(paper_template).fo
, но хотел бы делать это как можно реже.
> > > > Почему нельзя воспользоваться зависимостями через
> > > > переменные$(XINCLUDED): $(XML)
> > > > , как это было сделано в make2 ?
> > >
> > > $(XINCLUDED) и $(XML) зависят от $(DOCUMENT_ROOT).
> > > Соответственно,
> > > получается единственное правило.
> > >
> > > %.xinclude: %.xml может раскрываться в несколько правил,
> > > например:
> > >
> > > xxx.xinclude: xxx.xml
> > > sdfjhk.xinclude: sdfjhk.xml
> > > allother.xinclude: allother.xml
> > > enough.xinclude: enough.xml
> > >
> > > Соответственно, в варианте с % можно говорить:
> > >
> > > $ make tmp/xxx.xinclude tmp/sect2.xinclude
> > > tmp/sect2.xinclude
> >
> > Цель этой команды?
>
> Собрать с помощью xinclude несколько файлов, находящихся в
> одном
> каталоге.
>
> Да, в alt docs на каждый текстовый модуль свой каталог. Но
> зачем делать
> это принципиальным ограничением?
Итак, шаблонная запись правил даёт возможность собирать несколько
документов одним запуском make и при этом делает Makefile
трудночитаемыми и трудноподдерживаемыми.
Я крайне против забивания суффиксов гвоздями, потому что на
практике убедился, насколько их запарно отыскивать, понимать и
менять.
Для сборки нескольких документов (пусть даже и из одного
каталога) можно отдельно запускать make, указав имя документа.
Синтаксический кошмар ради сборки многих документов одним
запуском make - это неоправдано. Я имею в виду не синтаксис make,
а повторение громоздких конструкций в именах файлов в Makefiles.
<skipped/>
--
Regards, Vyt
mailto: vyt на vzljot.ru
JID: vyt на vzljot.ru
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 189 байтов
Описание: отсутствует
Url : /pipermail/docs/attachments/20031209/0a5c3361/attachment.bin
Подробная информация о списке рассылки docs