4 ms·
> Some people prefer GNU make, some like bsdmake. Is there really such a person that prefers bsdmake over GNU make?? I really don't mean this as a troll commen
by byuu 12y ago
> Some people prefer GNU make, some like bsdmake.
Is there really such a person that prefers bsdmake over GNU make?? I really don't mean this as a troll comment, but bsdmake has about 5% of the functionality of GNU make.
It's perfectly adequate if you just want to give it a list of files to compile, but it's a nightmare to do things like write a recursive directory scanner to auto-generate Qt .moc files, to scan PATH to find the location of Qt on Windows, to parse command-line arguments passed into make, etc. Sure, the GNU Lisp-like syntax is an absolute nightmare, but at least it's doable with a widely available build tool.
I would be seriously interested in hearing what someone likes more about bsdmake, other than simplicity (you can avoid using complex features in GNU make if you like.)
- justincormack 12y agoWell it has enough functionality to compile FreeBSD, which is a pretty complex project, so it has enough functionality for many purposes. But I have to admit to using Gnu-makeisms quite a bit.
- clarry 12y agoI absolutely love the bsd.*.mk system. It's not just that the tool is simple, but that the average makefile is very short and simple. Here, a few examples: (netcat) http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/usr.bin/nc/Makefile?rev=1.6 http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/usr.... (inetd) http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/usr.sbin/inetd/Makefile?rev=1.4 http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/usr.... (ntpd) http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/usr.sbin/ntpd/Makefile?rev=1.12 http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/usr.... (httpd) http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/usr.sbin/httpd/Makefile?rev=1.26 http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/usr....
- byuu 12y agoThanks! Those do look nice. But I think I could do the same as you with GNU make and rule pattern matching (I use a Makefile library for compiler detection and some useful functions, but stop short of including automatic rule generation, in case I want to customize things.)