By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,903 Members | 1,226 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,903 IT Pros & Developers. It's quick & easy.

Build environments for C++?

P: n/a
Is there anything better than using make for fairly large C++ projects?

Could be an open-source, free or inexpensive commercial tool. It needs
to easily integrate with a SCM tool.

I want to hear from experienced users.

thanks in advance

Marco

Nov 1 '05 #1
Share this Question
Share on Google+
6 Replies


P: n/a
Marco wrote:
Is there anything better than using make for fairly large C++ projects?
Depends on your definition of 'better'. We manage essentially all of our
development here in house with 'make'. More than 10 platforms, more than
100 components. No single IDE can do what we need.
Could be an open-source, free or inexpensive commercial tool. It needs
to easily integrate with a SCM tool.

I want to hear from experienced users.


Start by asking in a newsgroup for your OS. There are more people hanging
out there who use tools like IDEs for development, and AFAIK those tools
are OS-specific. They can also be compiler-specific although some of them
can use different compilers (i.e. they are customizable).

V
Nov 1 '05 #2

P: n/a
> Is there anything better than using make for fairly large C++ projects?

Well, depends of kind of project, anyway for our "fairly large" projects
we have developed TheIDE (see http://upp.sf.net). For really large
project it has two advantages:

- adds modular structure to source-based C++ components (basically
speaking, each component knows what components it depends on, so if it
is present in multiple projects, changing this dependency propagates to
all of them)

- provides BLITZ build, which drastically speeds up (with GCC 4x-10x)
debug rebuilds in "root header modification" situation. It works by
combining infrequently used .cpp sources into single one - this way,
headers are compiled just once for all files combined in the group. Note
that this building technique is mutually exclusive with classic make :)
Could be an open-source, free or inexpensive commercial tool. It needs
to easily integrate with a SCM tool.
Unfortunately, no experience with SCM tools here :) But it IS open-source...
I want to hear from experienced users.


Well, our typical application (we maintain dozens of them) has 40
components, 700 files and 300 000 lines. I hope that qualifies :)

Mirek
Nov 1 '05 #3

P: n/a
We have always used make in the past on my projects. But we are right
now in the process of converting over to a new python based utility
called 'scons' www.scons.org . Scons stands for software construction
tool.

It does md5 checksums for dependency checking rather than
date/timestamp, but can be configured to use the 'make' way if you
want. Lots of other cool stuff. Takes a lot of the difficulty away in
writing makefiles for large projects.

Anyway, a quote heard recently around our cubicles is "Scons Rocks!!!"

Check it out.

Nov 1 '05 #4

P: n/a
Mirek Fidler wrote:
Is there anything better than using make for fairly large C++ projects?


Well, depends of kind of project, anyway for our "fairly large"
projects we have developed TheIDE (see http://upp.sf.net). For
really large project it has two advantages:

- provides BLITZ build, which drastically speeds up (with GCC 4x-10x)
debug rebuilds in "root header modification" situation. It works by
combining infrequently used .cpp sources into single one - this way,
headers are compiled just once for all files combined in the group.
Note that this building technique is mutually exclusive with classic
make :)


BLITZ build was not very fast for me. I downloaded UPP (MinGW version)
and built the included "HelloWorld.cpp" program. The debug build took
20 minutes and the release build took 30 minutes. Recompiling after
making no source code changes took 41 seconds.

Nov 2 '05 #5

P: n/a
Old Wolf wrote:
Mirek Fidler wrote:
Is there anything better than using make for fairly large C++ projects?


Well, depends of kind of project, anyway for our "fairly large"
projects we have developed TheIDE (see http://upp.sf.net). For
really large project it has two advantages:

- provides BLITZ build, which drastically speeds up (with GCC 4x-10x)
debug rebuilds in "root header modification" situation. It works by
combining infrequently used .cpp sources into single one - this way,
headers are compiled just once for all files combined in the group.
Note that this building technique is mutually exclusive with classic
make :)

BLITZ build was not very fast for me. I downloaded UPP (MinGW version)
and built the included "HelloWorld.cpp" program. The debug build took
20 minutes and the release build took 30 minutes. Recompiling after
making no source code changes took 41 seconds.


Well, this is off-topic here and I suggest you to contact U++ mailing
list (or directly us via email present on home-page), anyway I hope
Victor Bazarov will not be that angry, in the end BLITZ is useful
generic C++ technique:

First things first: first build of that example is equivalent to
rebuilding of e.g. QT libraries, so you cannot expect it to happen in
seconds (resulting object/library files are then cached for future
similar rebuilds).

On my machine (I admit that it is not the slowest HW in the world,
AM***@2.4Ghz) it makes full rebuild using MinGW

MinGW with BLITZ 1:13
MinGW without BLITZ 5:43
MSC71 with BLITZ 0:26
MSC71 without BLITZ, with precompiled headers 1:01

Note that release builds have BLITZ deactivatd by default (because
linker better handles smaller object files wrt. elimination of dead code).

Recompilation without source changes took 170ms.

Unless you have 500Mhz Celeron with 64MB RAM, you should no way compile
HelloWorld for 20 minutes and rescan files for 41 seconds. Please
contact us to resolve this issue. (Please really do it, it can be bug in
U++ release...)

Mirek
Nov 2 '05 #6

P: n/a
I don't know it exactly - there are too many different flavours of
build tools out there.. But I think there is nothing better than make
(together with autotools).

It is possible to integrate these tools with IDE's. Eclipse/CDT, for
instance, works very well with make/autotools projects. Besides that it
has it's own "managed make" projects, so you have the choice.
Eckhard

Nov 2 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion.