473,387 Members | 1,834 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

Build environments for C++?

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
6 1683
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
> 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
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
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
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
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 thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Constandinos Mavromoustakis | last post by:
CFP: CLADE 2004-Challenges of Large Applications in Distributed Environments ------------------------------------------------- PhD student - Dept.Informatics at Aristotle University of...
4
by: JP SIngh | last post by:
Hi There I am creating a search page and need help writing the code to build the sql string. I have 3 fields on the main page which a user can choose to enter search terms in any of the 3...
12
by: Vasco Lohrenscheit | last post by:
Hi, I have a Problem with unmanaged exception. In the debug build it works fine to catch unmanaged c++ exceptions from other dlls with //managed code: try { //the form loads unmanaged dlls...
1
by: Ryan Anderson | last post by:
I have a sneaky problem with a web application that is acting differently between two different environments. Now, I know this is sticky because we are talking two different environments here, but...
2
by: sqlster | last post by:
We have 3 different environments: dev, qa, and production. After unit testing, the application is deployed to dev for unit testing among the programmers and business analyst. When that is okay it...
0
by: Wim Vanhoof | last post by:
----------------------------------------------------------- WLPE' 06 - CALL FOR PAPERS Workshop on Logic-based Methods in Programming Environments (satellite workshop of ICLP’06) August...
0
by: Wim Vanhoof | last post by:
----------------------------------------------------------- WLPE' 07 - CALL FOR PAPERS Workshop on Logic-based Methods in Programming Environments (satellite workshop of ICLP'07) ...
0
by: Lennert | last post by:
DutchPIPE beta 0.4.0 PHP version 5 & AJAX With DutchPIPE open source software, web developers can make virtual multi-user environments. Each web page becomes an abstracted environment or...
0
by: db2admin | last post by:
hello, We have 2 environments one is test which is one BCU with 8 partitions + admin/catalog node server ( smaller BCU ) and other prod is 3 BCU with 24 partitions + admin/catalog node server (...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.