похоже мои путанные объяснения всех запутали ;-)
вношу ясность:
я не вижу различий между Makefile-1 и Makefile-2, но в
случае 1 упоминание промежуточных целей как зависимостей для главной
цели спасает их от удаления, а в случае 2 их может спасти только
.SECONDARY
короче - если создать приведенные makefiles и провести
указанные действия, то все станет ясно.
In article <3657368020@gc.lviv.ua>,
Vadim Chekan <Vadim.Chekan@f400.n5020.z2.fidonet.org> writes:
> Vitaly Pinjagin wrote:
>> Hе подскажет ли многоуважаемый All, что будет с файлом f.o,
>> после выполнения
>> touch f.c; rm -f *.[ob]; gmake -f Makefile-1 all
>> --------- Makefile-1 ------------
>> all: f.b
>> all2: f.b f.o
>> %.o: %.c
>> cp $< $@
>> %.b: %.o
>> cp $< $@
>> -------- end Makefile-1 ----------
>> домашнее задание:
>> 1. оставить в живых f[12].[ob] файлы не прибегая
>> к раскоментариванию последней строки
>> 2. в чем гребанное отличие Makefile-1 от Makefile-2 ?
>
> http://www.gnu.org/manual/make/html_chapter/make_10.html#SEC93
>
> You can prevent automatic deletion of an intermediate file by marking it
> as a secondary file. To do this, list it as a dependency of the special
> target .SECONDARY.
>
>>
>>
>> размышления:
>> фича по поводу уничтожения промежуточных целей несомненно
>> имеет право быть, но почему это надо делать с такой садисткой
>> жестокостью.
>>
>> ( автор ненавязчиво подводит читателя к той мысли что в одном
>> случае упоминание "промежуточного" файла(ов) f.o , f[12].[ob] в
>> зависимостях цели 'all2' спасает его(их) от карающей руки , а в другом
>> даже Брюс Виллис не может помешать их смерти ?)
>
> Hе пойму о чем ты, по-моему вполне логично убить файлы не перечисленные
> в твоих targets
>
> Вадим Чекан.
BR, Vit.
-- end of forwarded message --
-- С тем, что не помешает никогда, Kittle