Best Build Tool for large C projects

S

scholz.lothar

What is the best build tool for somebody who want to get rid of make.
I'm looking for something with the following features:

1) Must scan the files for dependencies.

2) Results from 1 must be safed so that not each invokation is doing a
complete scan because the files may be on a NFS with slow connections.

3) Should do a preprocessing run and check if there are real changes.
If i change code

4) Collects compile optinos in a database/central location so i don't
need to set them in a lot of
build files.

5) Works well with multiple CPU's/Core's and ideally detects the
number of available CPU's
automatically. Running it on a nightly build machine with 1 cpu or a
developer machine with 8.

6) As 5 suggests. I need a good split into independent dependency
targets. Aka "make -j"

7) Does not need huge requirements to work: No Java solution (and no
Perl). ANSI C with a few Posix/Plattform Hacks would be best. But ruby
or python based are also okay.

8) Helps me to avoid autoconfig/automake hell.

9) Available on WinXP/WinVista/FreeBSD/Linux/NetBSD/OpenBSD/Solaris/HP-
UX/MacOSX is required. All in 32 and 64 bit modes (BSD's and Linux
will hot have a 32 bit library installed)

10) Fast.

11) Little typing.

I heared about jam and will start reading the docs tomorrow. So please
comment. I only worked with make in the past.
 
U

user923005

What is the best build tool for somebody who want to get rid of make.
I'm looking for something with the following features:

1) Must scan the files for dependencies.

2) Results from 1 must be safed so that not each invokation is doing a
complete scan because the files may be on a NFS with slow connections.

3) Should do a preprocessing run and check if there are real changes.
If i change code

4) Collects compile optinos in a database/central location so i don't
need to set them in a lot of
build files.

5) Works well with multiple CPU's/Core's and ideally detects the
number of available CPU's
automatically. Running it on a nightly build machine with 1 cpu or a
developer machine with 8.

6) As 5 suggests. I need a good split into independent dependency
targets. Aka "make -j"

7) Does not need huge requirements to work: No Java solution (and no
Perl). ANSI C with a few Posix/Plattform Hacks would be best. But ruby
or python based are also okay.

8) Helps me to avoid autoconfig/automake hell.

9) Available on WinXP/WinVista/FreeBSD/Linux/NetBSD/OpenBSD/Solaris/HP-
UX/MacOSX is required. All in 32 and 64 bit modes (BSD's and Linux
will hot have a 32 bit library installed)

10) Fast.

11) Little typing.

I heared about jam and will start reading the docs tomorrow. So please
comment. I only worked with make in the past.

I guess a web search is your best bet.

jam is used for some projects I am familiar with (like the boost C++
components).

mkdep can be used to calculate dependencies on POSIX systems (there is
usually some code you can find to build one if your system does not
have it).

Maybe this can help you (I have never used kjam):
http://www.oroboro.com/kjam/docserv.php/page/doc_perf

In a case like this where there isn't really an C question as far as I
can see, I guess that google is better than a newsgroup, since you
know your particular requirements and they don't have anything to do
with C as far as I can see.
 
S

scholz.lothar

In a case like this where there isn't really an C question as far as I
can see, I guess that google is better than a newsgroup, since you
know your particular requirements and they don't have anything to do
with C as far as I can see.

Since i want a tool that have intrinsic knowledge about C header files
and
C preprocessor it is a 100% perfect question for this newsgroups.

I know a few guys are still insane about the point what is off-topic
in this newsgroup.
 
E

Erik de Castro Lopo

What is the best build tool for somebody who want to get rid of make.

There are many build tools but none of them have ever managed
to provide a compelling enough set of features above and beyond
make to actually replace make for most people.
I'm looking for something with the following features:

1) Must scan the files for dependencies.

This is more a feature of the compiler than the build tool.

For instance, GNU GCC has a bunch of -M command line options for
tracking dependancies. Other compilers for other languages have
similar features and tools.
I heared about jam and will start reading the docs tomorrow. So please
comment. I only worked with make in the past.

So Jam, scans source files for '#include'. Does it know how to
extract doxygen comments from C files and generate LaTeX docs?
Does it handle C code generators like lex and yacc? What does
it do for files written in the Ocaml programming language and
how does it handle mixed Ocaml/C code bases?

Without adequate answers to questions like these Jam may be useful
to a small number of people but will never be compelling solution
for everybody else.

Erik
--
 
S

scholz.lothar

1) Must scan the files for dependencies.
This is more a feature of the compiler than the build tool.

For instance, GNU GCC has a bunch of -M command line options for
tracking dependancies. Other compilers for other languages have
similar features and tools.

I know but jam is doing it and wmake the make that comes with the
watcom compiler
(at least the version i bought back in 1994) was also doing this.

So i believe it is at least a common wish.

And by the way i write C code not GCC C code, so i can't assume gcc is
available.
 
S

sylar

"It was long past time for autotools to be replaced, and SCons has won
the race to become my build system of choice. Unified builds and
extensibility with Python — how can you beat that?"
— Eric S. Raymond
 
A

Antoninus Twink

make provides very few of the features he's looking for. Why would
you suggest it?

Because he's completely clueless and doesn't actually know a damn thing
about half the stuff he pontificates about with such authority?
 
J

jacob navia

What is the best build tool for somebody who want to get rid of make.

I have written an automatic make file generator for the IDE of lcc-win
under windows. The generator's code is highly portable since it doesn't
use any GUI.
I'm looking for something with the following features:

1) Must scan the files for dependencies.

The makefile generator does this, scanning all files for include
statements. Will only follow includes to local files, i.e. it will
NOT mark as a dependency stdio.h for instance.
2) Results from 1 must be safed so that not each invokation is doing a
complete scan because the files may be on a NFS with slow connections.

They are saved in a text file with a special format that includes the
date.
3) Should do a preprocessing run and check if there are real changes.
If i change code

That is possible but it would slow down considerably the tool. Keep in
mind that we are speaking about LARGE projects here.
4) Collects compile optinos in a database/central location so i don't
need to set them in a lot of
build files.

I collect the compile options from lcc-win IDE. This could be
configured.
5) Works well with multiple CPU's/Core's and ideally detects the
number of available CPU's
automatically. Running it on a nightly build machine with 1 cpu or a
developer machine with 8.

This could be added if you wish.

6) As 5 suggests. I need a good split into independent dependency
targets. Aka "make -j"

No problems with that
7) Does not need huge requirements to work: No Java solution (and no
Perl). ANSI C with a few Posix/Plattform Hacks would be best. But ruby
or python based are also okay.

The tools is written in ANSI C.
8) Helps me to avoid autoconfig/automake hell.

This depends from your specs.

9) Available on WinXP/WinVista/FreeBSD/Linux/NetBSD/OpenBSD/Solaris/HP-
UX/MacOSX is required. All in 32 and 64 bit modes (BSD's and Linux
will hot have a 32 bit library installed)

As I told you above all is written in portable C and is available under
Unix, windows, and AIX.

10) Fast.

It is fast, but if you want preprocessing for detection of actual code
changes and not just comment change or white space modifications it will
be slow. No miracles, unles you have an infinite budget.
11) Little typing.

Yes. No typing at all.
I heared about jam and will start reading the docs tomorrow. So please
comment. I only worked with make in the past.

Contact me for prices and delivery dates. Note that this is no free
tool. You will get the source code and the finished tool under windows
and linux.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,185
Members
46,736
Latest member
AdolphBig6

Latest Threads

Top