История изменений
Исправление firkax, (текущая версия) :
Но почему? Один лишний syscall на цель погоды не сделает, не? Ведь два вызова make подряд – это по сути костыль вокруг корявого решения.
Вокруг make вообще полно костылей наделали, одним больше одним меньше уже погоды не сделает (вобщем-то твоё «приверим что .c не изменился и оставим .o старую дату» - тоже костыль). Если сделать как ты хочешь то сломается чей-то ещё костыль, а может и не только - потому что это более крупное изменение чем тебе кажется (см. ниже).
Это не «лишний syscall», а вообще совсем другой порядок принятия решений. Сейчас ты пишешь make b и он сначала решает, нужно ли ему пересобирать b или нет. Если не нужно - сразу выход, если нужно - сначала рекурсивно проверяет не нужно ли пересобрать зависимости, затем пересобирает b. То есть, либо вообще ничего не трогается, либо решение о пересборке принято в самом начале, и только после него делается make a. Ты же хочешь чтобы он сначала пересобрал a (заранее не зная, нужен ли он ему вообще), а потом, может быть, решил пересобрать b.
Чтобы сделать по-нормальному, надо сделать свой make, гарантированно несовместимый с имеющимися и как-то его протолкнуть в массовое использование. Ну или не проталкивать а только самому использовать. У меня уже не раз было такое желание, но ничем не закончилось. Потому что всё продумать, чтоб потом не пришлось оборачивать пачками костылей - тоже непросто.
Исправление firkax, :
Но почему? Один лишний syscall на цель погоды не сделает, не? Ведь два вызова make подряд – это по сути костыль вокруг корявого решения.
Вокруг make вообще полно костылей наделали, одним больше одним меньше уже погоды не сделает (вобщем-то твоё «приверим что .c не изменился и оставим .o старую дату» - тоже костыль). Если сделать как ты хочешь то сломается чей-то ещё костыль, а может и не только - потому что это более крупное изменение чем тебе кажется (см. ниже).
Это не «лишний syscall», а вообще совсем другой порядок принятия решений. Сейчас ты пишешь make b и он сначала решает, нужно ли ему пересобирать b или нет. Если не нужно - сразу выход, если нужно - сначала рекурсивно проверяет не нужно ли пересобрать зависимости, затем пересобирает b. То есть, либо вообще ничего не трогается, либо решение о пересборке принято в самом начале, и только после него делается make a. Ты же хочешь чтобы он сначала пересобрал a (заранее не зная, нужен ли он ему вообще), а потом, может быть, решил пересобрать b.
Исходная версия firkax, :
Но почему? Один лишний syscall на цель погоды не сделает, не? Ведь два вызова make подряд – это по сути костыль вокруг корявого решения.
Вокруг make вообще полно костылей наделали, одним больше одним меньше уже погоды не сделает. Если сделать как ты хочешь то сломается чей-то ещё костыль, а может и не только - потому что это более крупное изменение чем тебе кажется (см. ниже).
Это не «лишний syscall», а вообще совсем другой порядок принятия решений. Сейчас ты пишешь make b и он сначала решает, нужно ли ему пересобирать b или нет. Если не нужно - сразу выход, если нужно - сначала рекурсивно проверяет не нужно ли пересобрать зависимости, затем пересобирает b. То есть, либо вообще ничего не трогается, либо решение о пересборке принято в самом начале, и только после него делается make a. Ты же хочешь чтобы он сначала пересобрал a (заранее не зная, нужен ли он ему вообще), а потом, может быть, решил пересобрать b.