It's also possible to use, say, pkg-config. Which can spit out cflags and ldflags and compilation flags without any autotools voodoo. There is no need to hardcode library paths, that is simply a strawman.
Autotools brings a lot of complexity, and I would personally be far less opposed to it, if:
1. there were less code generation layers and fewer programming languages and fewer programs involved. Code-generation is imho amateur's tool. Very few systems that use this method stay maintainable, and it generates pain at every level when you hunt for the cause of error message in generated files that get increasingly bewildering the further down in the autogeneration chain the file is.
2. (related to 1.) the results were prettier. A hand-crafted makefile for a project can be a kilo or two. Autotools spits 50 kB behemots in every directory. Hand-rolled Makefiles are actually really pretty in comparison.
3. when it doesn't generate something right, there should be some way to reset the project tree to start over that isn't "rm -rf and fetch again from version control". There are so many caches and vague directories involved, and if you don't manage to hit every one of them, it won't generate things right and this makes everything related to fixing autotools builds horrible. In practice I've found the rm -rf solution to work best.
4. the build system is really unstable. It seems that every new version breaks a build that used to work before.
So yeah, before I start to rage incoherently, I'll just stop here.