I am very experienced with GNU Make but a complete stranger to autotools. From looking at some tutorials, I understand that autotools are a way to standardize makefile targets and builds across multiple architectures. Which is a good thing, so the user of open-source distributions, can always build and install them in the same way.
GNU Make is very powerful and flexible: any shell command can be used to build targets and dependencies of targets on prerequisites can be expressed in many efficient and flexible ways.
Can all the power of a Makefile
be transferred to automake-based system by turning the Makefile
into Makefile.am
? I found statements in tutorials such as:
rules like
%.foo: %.bar
are not portable and cannot be used in Makefile.am
. As such, the programmer would have to write explicit rules where pattern rules suffice, which is definitely more time consuming and less maintainable.
Also, I never see any complex variable computations or functions, in the example Makefile.am
files I have seen.
Then how can automake build the same software with the same efficiency, speed of programming and maintainability as GNU Make, if it restricts the GNU Make constructs?
I assume it can, I just don't see something obvious.