metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-04-25 09:28 pm

Makefile

Это, а как правильно makefile делать? А то что-то руками писать зависимости быстро начинает надоедать.

[identity profile] kiryl.livejournal.com 2012-04-25 08:59 pm (UTC)(link)
В этом месте ничего отличаться не может.

что-то типа такого:

%.o: %.c Makefile
$(CC) -Wp,-MMD,.$<.d -o $@ -c $(CFLAGS) $<

-include .*.d

[identity profile] nicka-startcev.livejournal.com 2012-04-25 10:32 pm (UTC)(link)
> -include .*.d

если эти .d появились после запуска make, то старый мэйк вроде как не подхватывал такие изменения.

[identity profile] kiryl.livejournal.com 2012-04-26 04:14 am (UTC)(link)
Эти объектники собирать в любом случае, поскольку их ещё нет -- зависимости не нужны.

[identity profile] nicka-startcev.livejournal.com 2012-04-26 09:07 am (UTC)(link)
.d - это не объектники, а описание зависимостей.

[identity profile] kiryl.livejournal.com 2012-04-26 09:11 am (UTC)(link)
И? Они нужны что бы выяснить нужно ли пересобирать данный объектник. Если объектника нет -- ответ очевиден.

[identity profile] nicka-startcev.livejournal.com 2012-04-26 09:20 am (UTC)(link)
полная пересборка - это редкость. Чаще бывает 'поправили 3 строчки, надо проверить БЫСТРО', а не 'пересобираем всё'

[identity profile] kiryl.livejournal.com 2012-04-26 09:25 am (UTC)(link)
При чём тут полная пересборка?

Первая сборака: ничего нет -- всё нужно собрать. Собрали -- теперь у нас есть .d файлы которые описывают какие объектники нужно пересобрать если потрогали такой-то хидер. В чём проблема?

[identity profile] nicka-startcev.livejournal.com 2012-04-26 09:48 am (UTC)(link)
а. тогда не в чем. если эти .d пересобираются по нужде, а не всегда.

[identity profile] metaclass.livejournal.com 2012-04-26 05:06 am (UTC)(link)
Двойной проход. По моему идея ок.

[identity profile] nicka-startcev.livejournal.com 2012-04-26 09:01 am (UTC)(link)
ага. Так и делают.