[docs] current makefiles again (was: Tuning and profiling)
Oleg A. Paraschenko
olpa на xmlhack.ru
Ср Дек 3 06:24:31 MSK 2003
Привет!
Уже утро, а письмо до рассылки всё ещё не дошло. Посылаю повторно;
-----
On Tue, 2 Dec 2003 18:10:17 +0300
Vitaly Ostanin <vyt на vzljot.ru> wrote:
...
> >
> > Ок, готов. Начать отрывать?
>
> Тебе виднее, когда начать, но в итоге лучше оторвать :) Спасибо.
Насколько я понял, ты сейчас тоже работаешь над make-файлами. Чтобы не
возникло конфликтных изменений, я бы хотел дождаться, когда у тебя будет
логический конец, код в cvs и пауза на пару дней.
> > >
> > > Зависимость вида
> > > %.xinclude: %.xml
> > > накладывает лишние ограничения на имя документа и имя файла
> > > после объединения.
> >
> > А именно, что тут лишнее?
>
> Не будет работать
> make DOCUMENT_NAME=article.docbook
Будет. "article.docbook.xinclude" будет зависеть от article.docbook.xml.
>
> Будет сложно переписывать правила везде, где используется
> прибитое гвоздями расширение .xinclude
С этим согласен. Но надо же в какой-то момент переставать делать
косвенные ссылки и писать явно что от чего зависит. Мне кажется, что
замена ".xinclude" на "$(xinclude)" ничего не даёт.
>
> Да, Makefiles переписывались для сборки с учётом зависимостей, но
> причём тут тотальная шаблонность? Мы же не проект на С собираем с
> тучей файлов.
Думаю, что стили написания смешивать нехорошо. Результат будет
объединять недостатки как одного, так и другого подхода.
>
> > > Почему нельзя воспользоваться зависимостями через переменные
> > > $(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 tmp/sect1.xinclude
> >
> > совершенно не заботясь об установке DOCUMENT_ROOT.
>
> Имеется в виду переменная DOCUMENT_NAME ? О её установке и так не
> нужно заботиться.
В том случае, если имя файла совпадает с именем каталога.
Хочу заметить, что обратная ситуация вполне возможна. Допустим, в
каталоге"xxx" есть файл "xxx.xml", и я хочу временно внести исправления в
"xxx.xml". Чтобы не править по живому, я создаю копию "tmp.xml".
>
> > > Зачем в doc-template оставлены неиспользуемые Makefiles ?
> >
> > А что именно лишнее?
>
> Makefile.html-dir, возможно, и другие - я не разобрался.
И действительно. Видимо, пропустил при удалении неиспользуемых файлов.
Исправил.
>
> > Кроме того, проверь, на всякий случай
> > свой
> > doc-template:
> >
> > $ pwd
> > .../doc-template
> > $ cvs status
> >
> > "Sticky Tag" и "Sticky Date" должны быть "(none)".
>
> Так и есть.
>
> > > По поводу недавних дебатов на тему litprog. Я сейчас смотрю
> > > на новые makefiles и думаю, ну вот чем скудные комментарии на
> > > английском лучше, чем litprog ?
> >
> > Тем, что комментариев должно быть в меру. Например, в Си,
> > комментарий к коду:
> >
> > while(*dst++ = *src++);
> >
> > должен выглядеть так (если вообще нужен): "copy string", но
> > не должен
> > описывать, что такое указатели, ++ и '\0'.
>
> В наших комментариях не стандартизированный синтаксис, так что
> аналогия неуместна.
Я предположил, что основные трудности со значками "%", "$<", "$*"
и подобными, поэтому привёл именно такую аналогию.
>
> Возможно, это окажется единственное IMHO, но мне сложно, неудобно
> и долго разбираться в текущих Makefiles.
>
> Я не вижу смысла писать комментарии на английском для
> русскоязычных коллег,
Может быть, я слишком пуганая ворона, но мой подход: в программах все
символы (в том числе и комментарии) должны укладываться в ASCII.
> и даже русский текст в koi8 (вероятно) на
> системе в cp1251 нечитаем. См. Makefile.pstricks
А уж русский язык тем более не должен присутствовать, ибо
koi8 vs cp1251 vs cp866. Кстати, а почему для alt docs выбрана
кодировка windows?
>
> Да, я знаю про подходы "в программе всё написано",
Не так. Описание работы программы -- это, несомненно, нормальное
человеческое описание (напоминаю про
http://xmlhack.ru/tmp/alt/makefiles/makefiles-html-dir/).
Но детали реализации -- это "в программе всё написано" и ни в коем случае
не внешнее описание.
> "есть
> перекодировщики" и т.п.
>
> <skipped/>
>
> --
> Regards, Vyt
> mailto: vyt на vzljot.ru
> JID: vyt на vzljot.ru
--
Oleg
Подробная информация о списке рассылки docs