Monday, July 18, 2011

Understanding the structure of a GNU Autotools project

How many times would most of the people using this have downloaded a project built with GNU Autotools and tried to build it following the INSTALL instructions and have been very contended finding success. Nearly half of them would have not needed to know anymore than that and half of the remaining would have got no time/energy to go any further. I am one person transitioning from this nearly 25% of pathetic developers to the other nearly 25% of happier developers.

To get an understanding of what all a project build with GNU Autotools comprises and to respect the presence of each and every file in a source directory, initially and intermediary to configure and build steps I seeked an Autotools reference. For a pictorial remembrance, I roughly sketched a flow graph (which is partially complete with only the most important files and processes which I need to know for now)
For more comprehensive details The Goat Book is an excellent reference (huge and to be taken in as need arises). Thank you Bharath for suggesting this book to me! :)

Edit1: Unwilling to update the diagram above. Refer to for precisely defined ones. Amazing resource.


  1. And I thank Chenthill for suggesting me the book when I started :)

    If you interested in other courses, [1] is the my favorite. It has all the courses from IITs and IISc. A good way to start with a new subject :) Totally addicted to it right now :)


  2. I went through this same problem and realization - and Alexandre Duret-Lutz' Autotools Tutorial really helped me out. He has a similar diagram in his tutorial, with explanations. Here is a link:

  3. Hei, I found this Autotools slides from A. Duret-Lutz very helpful too:

    Have fun! :)

  4. @bharath- thanks again :) ! I have gone through NPTEL courses during my CS course extensively specially for DS and algos. But now, I am focussing on portable programming related stuff useful for GNOME projects.

    @Philip @patricia: thanks for the resources.