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

Makefile

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

[identity profile] nicka-startcev.livejournal.com 2012-04-26 09:16 am (UTC)(link)
$(wildcard $(SRC)*.cpp $(SRC)*.c $(SRC)*.C) - делает список файлов, в котором мы потом заменяем одни фрагменты пути на другие.

vpath %.cpp $(SRC) всего лишь говорит, что *.cpp надо искать в пути $(SRC)

[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] nealar.livejournal.com 2012-04-26 10:49 am (UTC)(link)
2 пива этому столику!

[identity profile] besm6.livejournal.com 2012-04-26 11:00 am (UTC)(link)
Это-то и печально. И это, в общем, одна из причин, по которой я предпочитаю Haskell.

[identity profile] nealar.livejournal.com 2012-04-26 11:02 am (UTC)(link)
Теперь у тебя две проблемы.

[identity profile] gineer.livejournal.com 2012-04-26 11:04 am (UTC)(link)
ну да... а вопрос в чем?

[identity profile] nicka-startcev.livejournal.com 2012-04-26 11:08 am (UTC)(link)
в том, что
vpath %.cpp $(SRC)
не создает списка файлов.

[identity profile] nealar.livejournal.com 2012-04-26 11:09 am (UTC)(link)
у меня .d просто зависимостью прописан, в результате, "make depend" делается само

[identity profile] avnik.livejournal.com 2012-04-26 11:25 am (UTC)(link)
у него внутри достаточно чорной магии, чтобы сделать ./configure --host=mipsel-bullshit-gnu-linux, и даже с (cd sparcbuild && ../configure --host=sparcv8-sun-solaris) c учетом всех основных болезней.

Проверить наличие libshit оно тоже умеет, в том числе и в "кроссовом" варианте.

Что еще надо?

[identity profile] avnik.livejournal.com 2012-04-26 11:27 am (UTC)(link)
Посмотрите на "красивый и аккуратный" мейкфайл в ондроеде, после этого автокрап кажется _аккуратным_ (даже то генереное говно)

[identity profile] tzirechnoy.livejournal.com 2012-04-26 11:30 am (UTC)(link)
>у него внутри достаточно чорной магии, чтобы
> сделать ./configure --host=mipsel-bullshit-gnu-linux

Чо? Это кто у нас из автокрэпа ужэ configure запускать научился?

>Проверить наличие libshit оно тоже умеет

Если это не моя сборка -- то этим у меня занимается, сюрприз, менеджэр пакетов. То есть дажэ когда я собираю из исходников.
А если моя -- то мне совершэнно не надо, чтобы в софтину цэплялась всякая левая хренотень, зато как раз надо чтобы оно выпало с руганью если правая хренотень необнаружылась. И проверить наличие libshit я вполне способен самостоятельно, а если забуду -- мне сс напомнит.

[identity profile] nicka-startcev.livejournal.com 2012-04-26 12:19 pm (UTC)(link)
> "красивый и аккуратный" мейкфайл в ондроеде,

что, тоже мэйкфайл более 10 мегабайт, как у автокрапа?

[identity profile] nicka-startcev.livejournal.com 2012-04-26 12:24 pm (UTC)(link)
оно иногда какими-то своими потрохами пересекается с микрософт вижл сорссейфом и начинает рандомно линковать сразу два проекта.

[identity profile] familom.livejournal.com 2012-04-26 12:34 pm (UTC)(link)
Никакого сорссейфа, svn.
На форумах видел людей с похожей проблемой и больше ничего, кроме обещаний от представителей мс сделать-таки расширенное логирование, из-за каких зависимостей происходит перекомпиляция/перелинковка.

[identity profile] zamotivator.livejournal.com 2012-04-26 12:37 pm (UTC)(link)
В CMake можно по маскам включать.

[identity profile] zamotivator.livejournal.com 2012-04-26 12:38 pm (UTC)(link)
В обычном make тоже можно, но я голый make лишь при обучении использовал

[identity profile] nicka-startcev.livejournal.com 2012-04-26 12:39 pm (UTC)(link)
ну, значит это другая проблема, да.

[identity profile] si14.livejournal.com 2012-04-27 05:01 pm (UTC)(link)
Гагага. Можно подумать, что кабал лучше. Леденящий душу пиздец же, регулярный секс на тему «ой cabal update всё поломал, ещё час-другой мудиться с зависимостями».

[identity profile] si14.livejournal.com 2012-04-27 05:03 pm (UTC)(link)
Да благословит господь rebar, leiningen и пророков их.

[identity profile] besm6.livejournal.com 2012-04-27 05:44 pm (UTC)(link)
Лучше. Несмотря на леденящий душу пиздец.

[identity profile] kurilka.livejournal.com 2012-04-27 06:05 pm (UTC)(link)
плюс вышел же новый cabal install

[identity profile] rigidus.livejournal.com 2012-05-04 01:56 pm (UTC)(link)
а вот в лиспце такого нет )

[identity profile] kurilka.livejournal.com 2012-05-04 02:03 pm (UTC)(link)
Нет cabal install? Бывает...

Page 3 of 4