Date: Wed, 18 Apr 2007 23:33:36 -0400 From: Kevin Brunelle <kruptos@mlinux.org> To: freebsd-questions@freebsd.org Subject: Re: BSD make vs. GNU make Message-ID: <200704182333.37249.kruptos@mlinux.org> In-Reply-To: <20070417171508.GA12577@ayn.mi.celestial.com> References: <f64556f70704170928t2ac20ee3x12b7e46eef1a2b37@mail.gmail.com> <20070417171508.GA12577@ayn.mi.celestial.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 17 April 2007 13:15:08 Bill Campbell wrote: > The gmake program has many extensions which tend to be used in > the gnu automake, autoconf, libtools system. > > I suspect that gmake will work with most non-gnu Makefiles, but > the reverse is not true. This suspicion is not necessarily true. That is something I learned the hard way back when I was in college. I was doing all my development on FreeBSD in my dorm room but the target machine was Linux. Because I was naive, I didn't concern myself with "which" make I was using. And I hand created a Makefile for my project. I did this in my room and I was referencing the documentation for PMake (/usr/share/doc/psd/12.make) as recommended by the man page. The time of the week comes to move to the lab environment... and I copied my files there and saw a bug. So I started fixing it and ended up on a roll where I wrote a large portion of code. I saved the code, exited vi, and ran make. Well, some syntax in my Makefile and gmake did not agree. And rather than just erroring nicely, it zeroed out my source file and then errored out. I'd lost well over an hour of work which I never really did recreate to my recollection of it. Even though I have saved religiously while working, I have never bothered to commit the changed to the repository so it was all lost. Had I stayed in vi and run make in a subshell or committed my changes... well, can't go back and make better choices now. I've since moved on and that project collects digital dust somewhere... along with the circuit board it was meant to control. I wish I had kept the original Makefile so I know exactly what I did. But at the time I was so panicked that I rewrote it to work with gmake and just remembered to use gmake in my room as well. Anyway, I am rambling. We can't make the assumption that gmake is "backwards" compatible with any other form of make. Actually, we can demonstrate that it's not the case by trying to use gmake with ports... you will find that it fails with an error. At least with ports it's nondestructive. :) -Kevin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200704182333.37249.kruptos>