SunnyShah
SunnyShah

Reputation: 30517

How to learn about building tools in linux?

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

Upvotes: 2

Views: 887

Answers (4)

Wim ten Brink
Wim ten Brink

Reputation: 26682

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.

Upvotes: 3

Phil Miller
Phil Miller

Reputation: 38138

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.

Upvotes: 2

grigy
grigy

Reputation: 6836

Start from this: GNU build system.

Upvotes: 3

Falaina
Falaina

Reputation: 6695

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.

Upvotes: 2

Related Questions