Обычно это выходные данные генератора Makefile, такие как automake
.true
будет заменен фактической командой на платформах, которые в ней нуждаются.Наиболее распространенным случаем являются платформы, которые не поддерживают статические архивные индексы автоматически;код будет выглядеть примерно так:
foo.a: foo.o bar.o baz.o ...
ar rv foo.a foo.o bar.o baz.o ...
true foo.a
, но на некоторых платформах (без System V или GNU ar
) вместо этого он будет
foo.a: foo.o bar.o baz.o ...
ar rv foo.a foo.o bar.o baz.o ...
ranlib foo.a
Причина, по которой его просто не удаляютв том, что в m4
и других макропроцессорах намного проще заменить текст в строке, чем в случае условного удаления строки.(Это можно сделать, но известно, что продвинутые m4
хакерские атаки вызывают безумие.:)