On Sat, Oct 11, 2008 at 03:29:02PM +0300, Aleksey Cheusov wrote: > After years of development using GNU make under Linux I switched my > home workstation to NetBSD. Here I've found a number of interesting > things. One of them is NetBSD make. > > 3) In my view bsd.*.mk scripts is a main thing about BSD make. It is > really 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. I agree 100%. The Makefiles are short, elegant and the system itself does not require so much overhead as most of the GNU tools do. In fact, it's already installed on all my systems :) > 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 :-( One thing that might be lacking is good documentation; I've found almost no documentation about the .mk system. I wrote down a few notes and put those on the wiki some time ago: http://wiki.netbsd.se/BSD_Make and http://wiki.netbsd.se/Basic_Unix_programming#Using_BSD_Make but those are just some quick incoherent notes; a poor substitute for real documentation. I think the biggest problem with BSD make currently is that it's very unportable. There are dozens of variants out there, all with slight incompatibilities. If you distribute a Real Program that uses BSD Make with the .mk files as its build system, it will only build on the BSD that you wrote it on. Since each of the individual BSDs are by themselves relatively small players on the Unix market, this is unrealistic for a large program that should run on many Unix systems. A coordinated effort to make The One BSD Make to Rule Them All could solve this problem, but I'm not sure if that's doable since the rulesets are (AFAIK) pretty system-specific. For these reasons, I only use BSD Make for small personal projects that are not released. I also use LaTeX-mk (in pkgsrc as print/latex-mk) for my LaTeX projects, which adds LaTeX-specific rules to BSD Make (but also includes a gmake ruleset). I'd love to be able to use BSD Make for other projects as well. Cheers, Peter -- http://sjamaan.ath.cx -- "The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it can be an aesthetic experience much like composing poetry or music." -- Donald Knuth
Attachment:
pgpGiR3d4db1v.pgp
Description: PGP signature