views:

156

answers:

4

Hi SO Friends,

I am writing code in embedded linux since last couple of years, I use make utility to build my code and I am not at all an advance user of it. But now, It is necessary to have better compilation, cross-compilation knowledge, so that I can easily port my code to newer processors. So I want to learn that which different tools are available for building projects in linux? Please provide me external reference ( Links, Books ) which you found helpful in your projects.

I write code in c++.

Thanks, Sunny

+2  A: 

The publisher O'Reilly has lots of good (and some not-so-good) books for developers. In my library, they make up about 1/3rd of all my books. In recent years, about 75% of books I've purchased are from O'Reilly. This book about Make for GNU, for example. Or this one.

Workshop Alex
geez, why the 4 downvotes here? Not a *great* answer, but wtf?
Jeff Atwood
I don't get it either but I think a few here just dislike certain publishers. The Q did ask for books and O'Reilly has plenty of titles.
Workshop Alex
The original answer didn't refer to particular books, but just said "O'Reilly is a cool publisher. I buy lots of books from them." It was in effect no more helpful, at the time, than RTFM or STFW. +1 for real content now.
Novelocrat
Jeff's comment was from before the edit. Furthermore, O'Reilly has a huge collection of books and it's a good place to start searching for anything you want.
Workshop Alex
+2  A: 

autoconf is the defacto standard for automatically creating build systems for unix-like systems. By having your software configured under autoconf you should theoretically be able to be able to build it on any system that supports a GNU build environment. Honestly, I find autoconf to be incredibly ugly and overcomplex and generally don't like dealing with it.

CMakeis a newer system which has about the same functionality as autoconf. I hear it's quite a bit simpler than autoconf, though I've never used it myself. Several high profile projects such as KDE use CMake.

The user manual for either of these 2 systems is probably the ideal place to start for you. Take an existing program you have and see if you can set it up to have it's build automated by one of them. You should also try some more complicate builds with them, such as cross compilations, which both should support.

I know nothing of build systems for windows, however. CMake is probably the easier of the 2 for handling Windows builds also.

Falaina
+2  A: 

Start from this: GNU build system.

grigy
+2  A: 

Read the paper Recursive Make Considered Harmful, to get a bit of background philosophy. Then there's a good article, GNU Make: Multi-Architecture Builds. Also, the GNU Make manual is actually fairly readable from front to back. I've read the whole thing as homework.

Novelocrat
Thanks for that Considered Harmful link, that was interesting. At work I'm dealing with an old crufty project with multi-level recursive makefiles (and I have no ability to fix it), so it was welcome relief.
Greg Hewgill