выбор make
От: killua  
Дата: 11.07.05 09:34
Оценка:
Доброго времени суток!

Ситуация следущая: имеется проект, точнее с++ его часть, достаточно большой, несколько миллионов строк. Проект полностью кросс-платформенный, на солярисе пользуемся dmake, на винде nmake, на linux не знаю, по-момему gnumake.

Хотелось бы, чтобы make средство было бы:
1. кроссплатформенным (без cygwin и прочего)
2. поддерживало бы хоть какие-нибудь репорты. сейчас приходится результаты получасовой компиляции прокручивать в консоли и искать где же там заругалось.
ну и опционально хотелось бы возможность генерить проекты для visual studio, т.к. студия используется повсеместно как IDE и для отладки.

вообщем пришло время уходить с древнего make, но куда не очень понятно.
Сейчас в качестве рабочего варианта рассматривается cmake (правда не знаю что там с репортами).

Кто работал с ant, scons или чем-то другим для больших с++ проектов, отзовитесь, плз, хотя бы поделиесь впечатлениями.
killua-.blogspot.com
Re: выбор make
От: alsemm Россия  
Дата: 11.07.05 11:51
Оценка:
Здравствуйте, killua, Вы писали:

K>Ситуация следущая: имеется проект, точнее с++ его часть, достаточно большой, несколько миллионов строк. Проект полностью кросс-платформенный, на солярисе пользуемся dmake, на винде nmake, на linux не знаю, по-момему gnumake.

У меня похожая фигня, только проект небольшой, но все-равно собирать его хочется на разных платформах.

K>2. поддерживало бы хоть какие-нибудь репорты. сейчас приходится результаты получасовой компиляции прокручивать в консоли и искать где же там заругалось.

K>ну и опционально хотелось бы возможность генерить проекты для visual studio, т.к. студия используется повсеместно как IDE и для отладки.
Репорты... ну это зависит от того как сами makefile-ы написаны. Видимо у вас они написаны кривовато Для репортов команда echo рулит, а символ @ перед именем команды позволяет не выводить ее на консоль и не захламлять output.

Генерить проекы для msvc из makefile-а можно используя тот же самый make.
Например так: make ... GENERATE_DSP=project.dsp <cr>

Фрагмент makefile-а:
%.o: %.cc
ifdef GENERATE_DSP
# тут конечно надо что-то более адекватное выводить
@echo $*.cc >> $(GENERATE_DSP)
else
@$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $<
endif

Пока это только идея, но я намерен ее реализовать.
Re[2]: выбор make
От: killua  
Дата: 11.07.05 12:32
Оценка:
A>Репорты... ну это зависит от того как сами makefile-ы написаны. Видимо у вас они написаны кривовато Для репортов команда echo рулит, а символ @ перед именем команды позволяет не выводить ее на консоль и не захламлять output.
Под репортами я имел в виду несколько другое: скорее парсер outputа. Т.е. где какие warnings например. и т.п.

A>Генерить проекы для msvc из makefile-а можно используя тот же самый make.

A>Например так: make ... GENERATE_DSP=project.dsp <cr>
Это 6ая студия. Если честно ее уже и на компах-то ни у кого в которе не осталось
Мы виндовую часть уже на whidbey компилим.
killua-.blogspot.com
Re: выбор make
От: aka50 Россия  
Дата: 11.07.05 13:36
Оценка: 20 (1)
Здравствуйте, killua, Вы писали:

K>Доброго времени суток!


K>Ситуация следущая: имеется проект, точнее с++ его часть, достаточно большой, несколько миллионов строк. Проект полностью кросс-платформенный, на солярисе пользуемся dmake, на винде nmake, на linux не знаю, по-момему gnumake.


Могу посоветовать CMake. www.cmake.org. Успешно использую его в своих проектах, а так же частично перевел ACE-TAO (без его тестов) и Ice.
Пока особых нареканий с моейс стороны не было.

Вот тут я рассказывал более подробно.
здесь
Автор: aka50
Дата: 28.06.05

здесь
Автор: aka50
Дата: 03.07.05


K>Хотелось бы, чтобы make средство было бы:

K>1. кроссплатформенным (без cygwin и прочего)
Официально поддреживается:
Windows Linux(x86) Linux(ia64) HP-UX IRIX64 SunOS 5.7(Sparc) AIX 1.5 OSF1 OSX(Darwin)

Но должно работать на:
# AIX                           AIX  
# BSD/OS                        BSD/OS  
# FreeBSD                       FreeBSD  
# HP-UX                         HP-UX  
# IRIX                          IRIX  
# Linux                         Linux  
# NetBSD                        NetBSD  
# OpenBSD                       OpenBSD  
# OFS/1 (Digital Unix)          OSF1  
# SCO OpenServer 5              SCO_SV  
# SCO UnixWare 7                UnixWare  
# SCO UnixWare (pre release 7)  UNIX_SV  
# SCO XENIX                     Xenix  
# Solaris                       SunOS  
# SunOS                         SunOS  
# Tru64                         Tru64  
# Ultrix                        ULTRIX  
# cygwin                        CYGWIN_NT-5.1
# MacOSX                        Darwin


K>2. поддерживало бы хоть какие-нибудь репорты. сейчас приходится результаты получасовой компиляции прокручивать в консоли и искать где же там заругалось.

K>ну и опционально хотелось бы возможность генерить проекты для visual studio, т.к. студия используется повсеместно как IDE и для отладки.
Есть фича CTest называется. Есть еще Darts. В общем здесь
Поддерживает purify и valgrind. Code coverage вроде тоже как-то прикручивают (сам еще не пробывал)

K>вообщем пришло время уходить с древнего make, но куда не очень понятно.

K>Сейчас в качестве рабочего варианта рассматривается cmake (правда не знаю что там с репортами).
Нормально.

K>Кто работал с ant, scons или чем-то другим для больших с++ проектов, отзовитесь, плз, хотя бы поделиесь впечатлениями.

Еще у eao197 mxx_ru. На руби написан.
Ну и в ACE-TAO есть довольно мощный генератор на Perl (здесь)
Re[3]: выбор make
От: alsemm Россия  
Дата: 11.07.05 14:30
Оценка:
Здравствуйте, killua, Вы писали:

A>>Репорты... ну это зависит от того как сами makefile-ы написаны. Видимо у вас они написаны кривовато Для репортов команда echo рулит, а символ @ перед именем команды позволяет не выводить ее на консоль и не захламлять output.

K>Под репортами я имел в виду несколько другое: скорее парсер outputа. Т.е. где какие warnings например. и т.п.
grep

A>>Генерить проекы для msvc из makefile-а можно используя тот же самый make.

A>>Например так: make ... GENERATE_DSP=project.dsp <cr>
K>Это 6ая студия. Если честно ее уже и на компах-то ни у кого в которе не осталось
dsp файлы конвертятся нормально, да и генерилку можно сделать для последней студии. Делов-то. Я просто идею продемонстрировать хотел.

K>Мы виндовую часть уже на whidbey компилим.
Re[2]: выбор make
От: killua  
Дата: 12.07.05 11:58
Оценка:
Здравствуйте, aka50, Вы писали:

A>Могу посоветовать CMake. www.cmake.org. Успешно использую его в своих проектах, а так же частично перевел ACE-TAO (без его тестов) и Ice.

генератор на Perl (здесь)

Спасибо! Судя по всему перейдем именно на cmake.
killua-.blogspot.com
Re[4]: выбор make
От: killua  
Дата: 12.07.05 12:01
Оценка: 1 (1)
Здравствуйте, alsemm, Вы писали:

A>Здравствуйте, killua, Вы писали:


A>>>Репорты... ну это зависит от того как сами makefile-ы написаны. Видимо у вас они написаны кривовато Для репортов команда echo рулит, а символ @ перед именем команды позволяет не выводить ее на консоль и не захламлять output.

K>>Под репортами я имел в виду несколько другое: скорее парсер outputа. Т.е. где какие warnings например. и т.п.
A>grep
ну примерно этим сейчас народ и пользуется. но это неудобно.

A>>>Генерить проекы для msvc из makefile-а можно используя тот же самый make.

A>>>Например так: make ... GENERATE_DSP=project.dsp <cr>
K>>Это 6ая студия. Если честно ее уже и на компах-то ни у кого в которе не осталось
A>dsp файлы конвертятся нормально, да и генерилку можно сделать для последней студии. Делов-то. Я просто идею продемонстрировать хотел.
Написать можно много чего, вопрос в том, будет ли начальство платить программеру деньги за то, что он пишет генерилку )
killua-.blogspot.com
Re: выбор make
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 13.07.05 07:55
Оценка:
Здравствуйте, killua

Если ты еще не определился, то глянь, пожалуйста, на мою разработку: mxx_ru. Это что-то похожее на scons, но написана на Ruby.

K>Хотелось бы, чтобы make средство было бы:

K>1. кроссплатформенным (без cygwin и прочего)

Да. Сейчас сделана поддержка Win (vc, borland, mingw), cygwin (gcc), linux (gcc) и HP NonStop (c89).
Собственно, может быть портирован везде, где есть Ruby (а он много где есть ).

K>2. поддерживало бы хоть какие-нибудь репорты. сейчас приходится результаты получасовой компиляции прокручивать в консоли и искать где же там заругалось.


Этого нет. Но есть зачатки в поддержке unit-тестинга.

K>ну и опционально хотелось бы возможность генерить проекты для visual studio, т.к. студия используется повсеместно как IDE и для отладки.


Этого так же нет.

K>Кто работал с ant, scons или чем-то другим для больших с++ проектов, отзовитесь, плз, хотя бы поделиесь впечатлениями.


С большими проектами работает. Как раз на днях разбирался медленной компиляцией большого проекта (~750 .cpp файлов, ~190 проектных rb-файлов) под Linux. После исправления ошибки вообще никаких проблем не осталось.

Из плюсов еще могу привести начиличе документации на русском

Интересно будет любое мнение про mxx_ru (так же как и любая конструктивная критика по документации и/или подаче материала на сайте).
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: выбор make
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 13.07.05 08:13
Оценка:
Здравствуйте, killua, Вы писали:

K>вообщем пришло время уходить с древнего make, но куда не очень понятно.


Может вот этот обзор поможет: Make alternatives
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: выбор make
От: killua  
Дата: 13.07.05 18:39
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, killua, Вы писали:


K>>вообщем пришло время уходить с древнего make, но куда не очень понятно.


E>Может вот этот обзор поможет: Make alternatives


Спасибо, обязательно посмотрю mxx_ru. Но, т.к. начальство все за океаном, то обосновать будет трудновато
killua-.blogspot.com
Re[3]: выбор make
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 13.07.05 19:26
Оценка:
Здравствуйте, killua, Вы писали:

K>>>вообщем пришло время уходить с древнего make, но куда не очень понятно.


E>>Может вот этот обзор поможет: Make alternatives


K>Спасибо, обязательно посмотрю mxx_ru. Но, т.к. начальство все за океаном, то обосновать будет трудновато


Да, вероятно

Ну хотя бы свое мнение разскажи.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.