Date: Sun, 9 Jan 2011 02:17:58 +0000 From: RW <rwmaillists@googlemail.com> To: freebsd-questions@freebsd.org Subject: Re: error while compile port Message-ID: <20110109021758.68641f42@gumby.homeunix.com> In-Reply-To: <alpine.BSF.2.00.1101081729540.48213@wonkity.com> References: <66353398.20110108234322@yandex.ru> <20110108220931.000061d2@unknown> <20110108233740.322f7665@gumby.homeunix.com> <alpine.BSF.2.00.1101081729540.48213@wonkity.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 8 Jan 2011 17:33:40 -0700 (MST) Warren Block <wblock@wonkity.com> wrote: > > They are also doing very different things. MAKE_JOBS_SAFE applies > > -j to GNU make, which is invoked to do the actual compiling of > > third-party software. make -j 16 install applies -j to BSD make, > > which is used to implement the ports system itself. > > gmake isn't used by every port, AFAIK. I'd always assumed that most ports would be sufficiently gnucentric to make gmake the norm (if only as the path of least-resistance), but it appears to be the opposite. It ain't what you don't know, ... > But I can't quite come up > with a clear way of saying that I think -j applies to the top-level > make (the one running the ports system) while > MAKE_JOBS_SAFE/MAKE_JOBS_NUMBER is applied to the make(s) actually > building the port. I don't know much about make, but I presume it's because MAKEFLAGS is rewritten and the options are passed down as explicit arguments to [g]make. -j is a little odd though, because it need to work over all the make processes. It doesn't really matter because passing -j to the top-level isn't supported. It's an unfortunate consequence of the ports system being encoded in makefiles that people lose track of the distinction between the two levels. In Gentoo the upper layer is scripting, and everyone understands that -j just applies to the third-party makefiles.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110109021758.68641f42>