LINUX.ORG.RU

Какую систему автоматической сборки Вы применяете?


0

0

  1. а что это? 340 (22%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. никакой, пишу руками Makefile-ы 247 (16%)

    ****************************************************************************************************************************************************************************************************************************************

  3. autotools 190 (12%)

    **********************************************************************************************************************************************************************************

  4. cmake 152 (10%)

    ***********************************************************************************************************************************************

  5. никакой, доверяю IDE 147 (9%)

    ******************************************************************************************************************************************

  6. qmake 118 (8%)

    ***************************************************************************************************************

  7. никакой, пишу скрипты 74 (5%)

    *********************************************************************

  8. никакой, собираю руками 73 (5%)

    ********************************************************************

  9. другой вариант 72 (5%)

    *******************************************************************

  10. ant 65 (4%)

    *************************************************************

  11. scons 34 (2%)

    ********************************

  12. системы, специфичные для языка (ASDF/OCamlMake/hmake/...) 23 (1%)

    *********************

  13. rake 21 (1%)

    *******************

  14. jam 2 (0%)

    *

Всего голосов: 1558



Проверено: UVV ()

Не понял зачем писать Makefile-ы если можно один раз написать Makefile на всю жизнь. В моих проектах один Makefile. Конечно это ограничение переносимости но под GNU/Linux самое то.

alx_me ★★☆
()
Ответ на: комментарий от alx_me

А вот то что лабает IDE даже Makefile-ом назвать нельзя, это фуфло разбухшее на солнышке. Мегабайт для такого файла - норма. Когда хватает const 13k для любого проекта.

alx_me ★★☆
()

пишу руками Makefile или пишу скрипты которые пишут Makefile

amaora ★★
()

Велосипедистов-Makefile писателей, я смотрю, тут много. У вас у всех такие простые проекты что Makefile хватает?

anonymous
()

Пока пишу руками. Надеюсь в скором будущем осилить какую-либо из систем.

fukazzz
()

Пишу руками Ant-Makefile-ы. :)

kda ★★★★★
()
Ответ на: комментарий от xawari

> <ответ начало><точно><запятая><пробел><именно><пробел><так><ответ конец>

</ответ конец></так></пробел></именно></пробел></запятая></точно></ответ начало>

fixed.

anonymous
()
Ответ на: комментарий от anonymous

> У вас у всех такие простые проекты что Makefile хватает?

Со сложностью проекта это связано косвенно, вообще-то.

sv75 ★★★★★
()
Ответ на: комментарий от anonymous

Я так понял, что на лоре все программисты?

Nxx ★★★★★
()
Ответ на: комментарий от sv75

> > У вас у всех такие простые проекты что Makefile хватает?

> Со сложностью проекта это связано косвенно, вообще-то.

Скорее со сложностью зависимостей файлов в проекте и логикой их размещения по папкам. make быстро начинает быть слишком навороченным, если хотеть чегото особенного. Лучше учиться чемуто посовременнее.

ierton ★★
()
Ответ на: комментарий от sv75

> Со сложностью проекта это связано косвенно, вообще-то.

Смотря что считать сложностью. Если к-во *.c файлов в каталоге, то никак не связано. А если проект состоит из достаточного количества библиотек, которые надо правильно собрать и слинковать между собой, использует достаточное количество зависимостей, которые надо правильно найти, имеет достаточное количество опций, которые влияют не только на #define, но и на зависимости и различные варианты сборки, когда для проекта есть набор тестов, которые надо собрать, запустить и обработать выхлоп, когда на стадии configure надо проверить много нетривиальных вещей, когда все это хочется при необходимости сразу собрать в release/debug/profile/release-with-debug-info под Linux, *BSD, MAC и Windows, то связано напрямую. Просто возьми из этого списка один пункт, реализуй на make, посмотри что получилось и убейся.

anonymous
()

использую rake и для руби-специфичных, и когда нужно сгенерить makefile. лень-матушка.

volh ★★
()

-DSSS (специфичная для языка)
-ANT
-пишу скрипты

naryl ★★★★★
()
Ответ на: комментарий от xawari

>> ><В>< ><xml>< ><нет>< ><плюсов><><,>< ><там>< ><только>< ><уголки><

<ответ начало><точно><запятая><пробел><именно><пробел><так><ответ конец>

забыл <fixed/>

<aslo captcha="moning"/>

anonymous
()

самописная система сборки с поддержкой параллельной компиляции

anonymous
()

Предпочитаю cmake. В исключительных случаях пишу Makefile руками или ваяю сборочный скрипт. Ну и для qt -- qmake.

Меня терзают смутные сомнения, что не так давно подобный опрос уже был, и я в нём участвовал %)

Demon37 ★★★★
()
Ответ на: комментарий от anonymous

Родной, что-то ты больно желчный. Читай выше. Писалось что если не нуна переносимость (мне не нужна, только GNU/Linux (ну не трахает меня win*, *bsd и прочая)) то самое оно, с отслеживанием зависимостей между модулями, отслеживанием версий CVS (git/svn не использую), автоформирование отчёта в наш отчётник и прочая 13kib вне зависимости от сложности проекта, там в подпроектах просто ln ../Makefile . автоматически ставится. Все улучшения Makefile-а стазу же доступны во всех проектах.

Так что убейся сам латентный виндузоид. Но ты прав что если поставить ТОБОЙ обозначеную цель, то да, извращаться придётся дай бог.

Кроме того я и сам не доволен некоторыми аспектами GNU/Make. В частности в depend-ах нет встроенной сортировки по mtime, очень надо, но можно и внешними уилитами бахать. А патчи они не принимают, что-то или не одобряют.

alx_me ★★☆
()
Ответ на: комментарий от anonymous

> самописная система сборки с под...

Велосипедист?

alx_me ★★☆
()

Я доверяю IDE. А еще люблю IDE, которые генерят Makefile'ы чтоб вручную подправить если что... :)

Но больше всего на свете люблю _кросплатформенные_ IDE и кросплатформенные проекты в едином для всех ОС формате проекта, настроект и т.д.

fpga
()
Ответ на: комментарий от alx_me

> если поставить ТОБОЙ обозначеную цель, то да, извращаться придётся дай бог

Да вам и без МОЕЙ цели, я смотрю, изрядно приходится :))

Если вам хватило Makefile, то:
- Ваш проект действительно простой. Очень.
- Это не значит, что нельзя сделать еще проще.

anonymous
()
Ответ на: комментарий от anonymous

> > Что-то маловато народу scons юзает, жаль...

> Ничего не жаль. scons во многом хуже даже autotools.

Можешь примеры привести? Пока мне автотулзы кажутся какимито заплатанными, сконс логичнее, да и доки к нему лучше.

ierton ★★
()
Ответ на: комментарий от ierton

> Можешь примеры привести? Пока мне автотулзы кажутся какимито заплатанными, сконс логичнее, да и доки к нему лучше.

autotools не рассматривается вообще, потому что он помойка. Но помойка по крайней мере логичная. SCons же больше библиотека для питона, чем сборочная система - половину всего надо писать руками, ибо из коробки оно ничего не умеет. Указать CC/CFLAGS/CXX/CXXFLAGS по умолчанию нельзя, только при соответствующей поддержке в SConstruct. Искать зависимости оно не умеет - приходится для каждой системы писать свой if. Да и вообще, по умолчанию оно очищает environment, из-за чего ccache сходит с ума. Косяков там _очень_ много, чтобы в этом убедиться достаточно взглянуть на SConstruct любого нетривиального проекта. Например, игрушки battletanks, pingus, freera. Зацени, что происходит там в SConstruct: определяются опции для CC/CXX и флагов, которые должны быть по умолчанию. Определяются кошмарные питоновские классы, выводятся руками ошибки. Спасибо, уж лучше sh.

cmake лишен этих недостатков. Все необходимые опции там поддерживаются по умолчанию и настраиваются через комманндую строку (-DCMAKE_*), но что характерно, это единственная сборочная система которая позволяет собрать софт на FreeBSD и MacOS вообще без изменения скриптов и указания параметров. Зависимости он ищет сам, синтаксис идеален. Опять же ctest и cpack.

anonymous
()

Судя по всему за cmake больше всего голосовали кросплатформеры, кто еще и под винду собирает проекты.

В этом плане самое кросплатформенное средство (не считая жабы)

vega
()
Ответ на: комментарий от vega

Да нет, просто cmake чрезвычайно удобен. А Windows и Java не нужны.

anonymous
()
Ответ на: комментарий от anonymous

Угу, scons и правда сносит переменные окружения по дефолту. Про зависимости - это вопрос к реализации конкретных builder-классов. Пока я не жаловался. Хотя пока обходился лиьками, которые сами по себе нормально переносимы и компиляются на венде и линухе одинаково. Хотя поддерживаемого добра у cmake побольше, да.

Зато со scons не нужно учить ещё один недоязык конфигов. Да и вообще, софтина, которая генерит файлы для других систем сборки кажется слишком толстой. А кстати, тяжело там свой обработчик зависимостей сделать? Или ждать ебилдов нужно? Я вот глядя в вики cmake вижу жесть на эту тему. А в scons - это просто питоновский класс со стандартным интерфейсом.

Про ctest и cpack можно поподробнее? Чем оно лучше тестовых программ, которые можно прогнать и поглядеть результат. На это хвтаит и Makefile`а. Что они в cmake`е там придумали, чего не умеет, например, boost::test + старый добрый make?

ierton ★★
()
Ответ на: комментарий от ierton

> Зато со scons не нужно учить ещё один недоязык конфигов.

Я бы сказал, это для scons надо учить недоязык питон. На самом деле по простоте синтаксиса cmake очень сильно выигрывает у scons - на одно действие 1 строчка, без лишних скобок, словарей, клонирования environment'а и передачи его в SConstruct'ы, никакой писанины своих классов (это вообще дикость). Кстати, еще из плюсов - все таргеты доступны в любой точке проекта, не надо делать

xxx = SConscript
Sconscript(..., exports = ['xxx'])

cmake более декларативен. Пока на SCons пишется программа, собирающая другую программу, на CMake пишется описание проекта, которое никогда не потребует лишнего кода.

> Да и вообще, софтина, которая генерит файлы для других систем сборки кажется слишком толстой.

Наоборот cmake не загружен функциаям, с которыми отлично справяется make.

> А кстати, тяжело там свой обработчик зависимостей сделать?

Нет, в общем случае это 2 команды - FIND_PATH для поиска инклуда и FIND_LIBRARY для поиска библиотеки. Сразу указывается возможные названия, пути и суффиксы путей (например, libavformat может быть в ${PREFIX}/include/ffmpeg а может быть в ${PREFIX}/include/libavformat). И это сразу работает под _всеми_ системами, не надо думать даже, .dll там или .so, никаких ветвлений.

> Или ждать ебилдов нужно?

Нет, отсутсвие файндера в комплекте CMake совершенно не проблема.

> Я вот глядя в вики cmake вижу жесть на эту тему. А в scons - это просто питоновский класс со стандартным интерфейсом.

Все как я сказал, никакой жести. Вот класс писать - действительно жесть.

> Про ctest и cpack можно поподробнее? Чем оно лучше тестовых программ, которые можно прогнать и поглядеть результат.

ctest не заменяет тестовые программы, а контролирует их выполнение. Просто грамотная замена очередному самописному велосипеду + дополнительнык плюшки.

А cpack сам генерит пакеты (deb, nsis, rpm, tgz/tbz2, zip).

Все это позволяет полностью автоматизировать сборку, тестирование и создание пакетов.

anonymous
()
Ответ на: комментарий от ManMachine

сейчас Cmake юзаю, вполне удобная штука и достаточно понятная. Иногда ещё qmake пользую ибо он проще некуда и блин очень быстро makefile генерит, не то, что всякие autotools

Gorthauer ★★★★★
()

Сам регулярно только ant юзал, а так - emerge... «Другой вариант», в общем, выбрал...

Под виндой ещё когда-то руками Makefile писал :)

KRoN73 ★★★★★
()

Результаты опроса обнадеживают. Еще немного, и cmake вытеснит убогий autohell. scons в ауте где ему, как уже сказали, самое место. А пионеров, пишуших руками Makefile, можно вообще не считать, для институстких лаб больше и не нужно.

anonymous
()

"Какую систему автоматической сборки Вы применяете?

"- никакой, "

sv75 ★★★★★
()

Кстати о cmake. Dart вообще живо?

sv75 ★★★★★
()
Ответ на: комментарий от Voker57

а ещё люблю cmake за то, что он хотя бы примерно показывает степень собранности, да и вообще аккуратно и красиво в консоль флудит, как то приятно даже смотреть, да и оценить время сборки проще

Gorthauer ★★★★★
()

Ничего сложного не пишу, потому хватает в ручную написанных Makefile

Anton_A
()

А где же bsd make с его кучкой вспомогательных Makefile-ов, которые позволяют декларативно, быстро и без напряга наваять могучий Makefile на проект?

Для работы сам лично писал подобный набор мейкфайлов для gnu make, ну, понимаете ли, по той простой причине, что синтаксис bsd make никто у нас не знает, или, проще говоря, стая ляпиксоидов, ничего кроме своей иконы не видящих.

В результате мейкфайлы обслуживают систему тестирования, gch-хедер, 3 под-проекта, раздельную компиляцию в ${OBJDIR} и прочией феньки-красивости. Все, вроде как, остались довольны.

И всё это без оверхедов в виде мегобайтовых скриптов, ожиданий sh autogen.sh && cd objs && ./configure после чекаута, и только потом make.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.