Makefile-ish init and ideas
While thinking about the proposed idea for a makefile-ish like init program
for the Hurd, an interesting idea crossed my mind.
make has been around for a while and has grown into quite a beast in that
time. Certain inherent complexities in make have spawned numerous efforts like
automake/autoconf, imake, share Makeconf files, etc. in order to cope
with large and complex projects. The Makefiles generated by these tools
are often quite obscure and even unreadable, which adds much to the confusion
of user and developers.
However upon short reflection about what make actually does (evaluate certain
rules and their dependencies and take a definite course of action) it now
seems to me that make is nothing but a logic programming language. And in that
case, instead of a complicated Makefile mess, why not use a real logic
programming language with a simple library for accessing environment
variables, executing shell commands and checking file timestamps? Prolog
springs to mind.
Now, I'm familiar with logic programming more in concept then in practice, so
I was wondering if anyone is more knowledgeable in this could say if this idea
is worth persuing. And if so, the exact same approach can be taken for this
Makefile-ish init idea.
Also a directly relevant question is whether it's worth considering replacing
make which might already be old enough to retire. And if Hurd isn't a place
for innovation, then what is. Another alternative to look at might be the Cons
project, which touts to be a make replacement, as listed on the GNU software