Description |
The debate about autoconf (or its ilk) vs handcrafted makefile hackery is a long-standing issue. However, even if we keep the latter, we still suffer from trying to pass parameters through the command line.
It breaks many valid uses of make, really confuses outsiders trying to build Crawl, and is tedious.
For one, you can't do a debug build of just a single file. If you modify a header, the whole source will be rebuilt even thought you know it won't succeed, and you have to wait until the compiler gets to the file you want. In all sane makefiles, it's a matter of just "make tags.o".
"make install" is broken. You have to specify the whole invocation you did for compiling -- like, "make debug TILES=y CROSSHOST=foo-bar MEOW=y BARK=n install", and if you forget to, it suddenly tosses the build results away and tries to start again, with default settings you didn't want. All sane makefiles require "make install" to be given at most install-time options.
Thus, I propose to make the compiler selection, detection of libraries and choice of the build type to a separate configure script. |