Re: Чем плох рекурсивный make?
Dmitry E. Oboukhov -> debian-russian@lists.debian.org @ Thu, 2 Oct 2008 12:11:21 +0400:
AC>>>>> понимаешь в чем дело, в том что если бы make догадывалось об этом то ей
AC>>>>> пришлось бы перестать быть универсальным инструментом (вон выше по ветке
AC>>>>> собирают PDF например, а какой там DEBUG) и стала бы
AC>>>>> узкоспециализированным. а это неправильно.
AC>>>> Дебуга там нет, но вообще-то pdftex-у в командную строку тоже много чего
AC>>>> интересного запихать можно. Во всяких bras и makepp эта задача решена
AC>>>> посредством запоминания того, какой именно командой данный target
AC>>>> пересобирался последний раз. И если текущая команда получается другая,
AC>>>> target считается устаревшим.
AC>>> ну так я говорю, значит просто надо DEBUG поставить в зависимости
AC>>> и далее проблема станет решенной
AC>> Надо _сложно_ поставить в зависимости DEBUG. Иначе оно будет
AC>> пересобирать всё каждый раз. Подозреваю, что сделать это можно, но
AC>> вплотную еще не думал. Есть шанс, что и не получится.
DEO> а мое решение сложно?
А это не решение.
DEO> то есть пишем в Makefile
DEO> DEBUG ?= 0 # кстати не помню ?= это GNUmake или вообще make? хез
DEO> ...
DEO> debug_depends:
DEO> test -e $@ || echo $(DEBUG) > $@
DEO> test "`cat $@`" = "$(DEBUG)" || echo $(DEBUG) > $@
DEO> и дальше ставим зависимость от debug_depends
DEO> то есть получится что make его перезаписывать будет только при смене
DEO> переменных
DEO> и соответственно в зависимости:
DEO> %.o: %.c debug_depends
Начнем с того, что make его вообще перезаписывать не будет. Он его
запишет один раз, и все.
Ты б хоть проверил свое "решение", прежде чем предлагать. Ладно б
требовалось подобрать к нему хитрую последовательность команд, чтобы
увидеть, что не работает, а то ведь тупее некуда - make да make
DEBUG=1...
--
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
The effort of using machines to mimic the human mind has always struck
me as rather silly. I would rather use them to mimic something better
-- Edsger Dijkstra
Reply to: