On 11-Oct-08, at 8:29 AM, Aleksey Cheusov wrote:
I've found it's VERY interesting and in many aspect much better than GNU make. But I have a few questions about it. Some are about history.
Indeed. GNU Make suffers now from a lot of stagnation and backwards compatibility issues or something like that. Worse though are the GNU Standards for makefiles and all the cruft they require.
3) In my view bsd.*.mk scripts is a main thing about BSD make. It isreally amazing thing and may be much more important than make itself.I believe that MK scripts with _some extensions and additions_ may be excellent replacement for GNU make + automake + libtool. I really love declarative nature in writing Makefiles, I like this approach and think that things like automake/libtool must die. The question is (rhetorical again) why BSD makes are used mainly to build respective *BSD systems and not used by software developers outside *BSD. That is, why BSD make and especially MK scripts are promoted so badly :-(
Indeed. You've hit the nail on the head -- all those nails square on their heads!
automake is/was just an attempt to satisfy the silly GNU Standards requirements and to strive to maintain some simplicity for the programmer; and perhaps to show how silly those standards requirements are in general, though I think now that has backfired rather completely.
autoconf was kinda cool in the beginning, but it too has grown beyond all reasonable levels.
4) Recently I've found that FreeBSD and NetBSD MK scripts are also a bit different. They build shared libraries differently, for examples (I have no access to OpenBSD).
Indeed, a sad fact.
8) The same as 7) for pthread support. It whould be nice to write Makefilelike this PROG= hello NEED_PTHREAD= yes .include <bsd.prog.mk>
The pkgsrc style of adding .includes for the required dependencies could work well too.
9) I'm looking for system (replacement for automake/libtool/make) where I can write declarative Makefiles, just like that I can write with <bsd.*.mk> scripts and BSD makes, but with problems mentioned above solved. Any suggestions? I don't want to reimplement the wheel and implement such scripts manually.
Me too!Simon's work goes a (very) long way, but it would be most excellent if it could be integrated into NetBSD, with mechanisms to make independent releases of just the make tools easy to create so users could generate them on demand for use on other types of systems. Such integration would help NetBSD both in spreading a good, clean, and elegant philosophy about build tools, as well as to help free NetBSD from being so tied to GNU C and binutils. Naturally the portable build tools would also benefit from the greater resources of more developers to help maintain everything.
There was also an interesting attempt along these lines by Julio M. Merino Vidal in his builtool project. Unfortunately it seems to have died an early death. Perhaps though some ideas can be taken from it and shared with Simon's work to create a more complete solution.
I look forward to reading more answers to your questions! -- Greg A. Woods; Planix, Inc. <woods%planix.ca@localhost>
Attachment:
PGP.sig
Description: This is a digitally signed message part