[docs] Re: current makefiles again (was: Tuning and profiling)

Oleg A. Paraschenko olpa на xmlhack.ru
Вт Дек 2 17:15:14 MSK 2003


  Привет!

On Tue, 2 Dec 2003 15:40:38 +0300
Vitaly Ostanin <vyt на vzljot.ru> wrote:

> On Tue, 2 Dec 2003 15:12:14 +0300
> "Oleg A. Paraschenko" <olpa на xmlhack.ru> wrote:
> 
> >   Привет!
> > 
> > On Tue, 2 Dec 2003 14:25:44 +0300
> > Vitaly Ostanin <vyt на vzljot.ru> wrote:
> > 
> > > Hello, All!
> > > 
> > > Я, наверное, пропустил:
> > > 
> > > Зачем этапы tuning и profiling смешаны в одном
> > > Makefile.profile ?
> > 
> >   На данный момент это единый неделимый шаг, поэтому и файл
> >   один. Если
> > надо, можно разбить. Но надо ли, учитывая, что profiling
> > используется сейчас только в одном документе?
> 
> По логике это должны быть разные шаги. Tuning'ов может несколько.
> Кстати, именно потому, что profiling используется только в одном
> документе, его и нужно оторвать и вообще сделать опциональным.

  Ок, готов. Начать отрывать?

> 
> Дальше по Makefiles:
> 
> Почему удалена куча переменных из Makefile.default-variables ?

  В описании зависимостей через суффиксы эти переменные не используются.
А переменные, которые не используются, должны быть удалены.

> 
> Зачем нужна условность в конструкции:
> 
> ifeq (,$(DOCUMENT_NAME))
> DOCUMENT_NAME   = $(notdir $(CURDIR))
> endif
> 
> Имя документа и так можно переопределить параметром запуска или
> во включающем Makefile.

  Возникла непонятная проблема, что включающий Makefile почему-то не
переопределяет (при этом из командной строки переопределение работает).
Так возник этот workaround.

  Будет запись в багзилле -- разберусь, откуда берётся эта проблема.

> 
> Зависимость вида
> %.xinclude: %.xml
> накладывает лишние ограничения на имя документа и имя файла после
> объединения.

  А именно, что тут лишнее?

> 
> Почему нельзя воспользоваться зависимостями через переменные
> $(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

  или хотя бы

$ make tmp/sect1.xinclude

  совершенно не заботясь об установке DOCUMENT_ROOT.

> 
> Зачем в doc-template оставлены неиспользуемые Makefiles ?

  А что именно лишнее? Кроме того, проверь, на всякий случай свой
doc-template:

$ pwd
.../doc-template
$ cvs status

  "Sticky Tag" и "Sticky Date" должны быть "(none)".

> 
> По поводу недавних дебатов на тему litprog. Я сейчас смотрю на
> новые makefiles и думаю, ну вот чем скудные комментарии на
> английском лучше, чем litprog ?

  Тем, что комментариев должно быть в меру. Например, в Си,
комментарий к коду:

while(*dst++ = *src++);

  должен выглядеть так (если вообще нужен): "copy string", но не должен
описывать, что такое указатели, ++ и '\0'.

> 
> IMHO, исходная цель ковыряний с Makefiles - сделать их логичнее и
> понятнее - пока не достигнута :(

  С первой попытки, похоже, нет. Задавай вопросы дальше. Будем улучшать.

> 
> <skipped/>
> 
> -- 
> Regards, Vyt
> mailto:  vyt на vzljot.ru
> JID:     vyt на vzljot.ru

-- 
Oleg



Подробная информация о списке рассылки docs