How to learn the Joy of Autotools?
So a couple years back I took some time to grok `make`, and it's paid off enormously.  Writing little makefiles for building my projects and automating tasks is fun and productive.

The downside is, of course, that my makefiles are overspecific, especially when it comes to platforms and library locations.

So this is the point at which people tell me "autotools to the rescue!"  And they certainly seem to do the trick when other people do them (I love downloading something and running `configure && make && sudo make install` and watching it just work), but I can't wrap my head around them.

I've looked in some `configure.ac` and `Makefile.am` files, and I just don't understand what's going on.  I don't know what part of identifiers is developer's choice, and what part is meaningful to the autotools.  I'm not sure I understand the entire flow and the point of `Makefile.in`.  I think I'm just hitting a mental wall going from the system I'm used to (`make`) to something that's a layer or two above that.

Can anyone point me towards a tutorial or book (preferably not an overly dry one) that can teach me the joy of autotools? What the steps are, and how I can use them, how I can write my own `configure.ac` and `Makefile.am` from scratch?  Show me how to be effective and have fun with them?
How to learn the Joy of Autotools?
===

So a couple years back I took some time to grok `make`, and it's paid off enormously.  Writing little makefiles for building my projects and automating tasks is fun and productive.

The downside is, of course, that my makefiles are overspecific, especially when it comes to platforms and library locations.

So this is the point at which people tell me "autotools to the rescue!"  And they certainly seem to do the trick when other people do them (I love downloading something and running `configure && make && sudo make install` and watching it just work), but I can't wrap my head around them.

I've looked in some `configure.ac` and `Makefile.am` files, and I just don't understand what's going on.  I don't know what part of identifiers is developer's choice, and what part is meaningful to the autotools.  I'm not sure I understand the entire flow and the point of `Makefile.in`.  I think I'm just hitting a mental wall going from the system I'm used to (`make`) to something that's a layer or two above that.

Can anyone point me towards a tutorial or book (preferably not an overly dry one) that can teach me the joy of autotools? What the steps are, and how I can use them, how I can write my own `configure.ac` and `Makefile.am` from scratch?  Show me how to be effective and have fun with them?