There really two answers possible here - 1) Let's call it one depth e.g. make -j - Which works with some not all ports - Nice when it works and I guess ports/Mk could hold a flag 2) Let's call it width - e.g. the ability to compile packages at the same time given that all dependencies has been resolved 3) combination of 1 and 2
In practical terms option 2 is much more attractive as it is possible to determine that just from the INDEX file and the installed ports. However due to the way compilation options are treated e.g. I am not sure that it is completely safe - I will require some locking during the make (de/re)install phase but possible to handle - It would still cut portupgrade significantly With 15-16000+ ports I think that 1 and 3 are unpractical - however it could make sense to have some packages (kde/gnome) handled with make -j and it seems to work with at least some of the kde packages - but only I think if make extract/patch/configure are run without -j -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of RW Sent: 05 March 2007 21:21 To: firstname.lastname@example.org Subject: Re: compiling ports with more than one job On Sat, 3 Mar 2007 13:55:53 +0100 (CET) Christian Baer <[EMAIL PROTECTED]> wrote: > On Wed, 28 Feb 2007 18:37:33 +0000 RW wrote: > > > There are two problems here. The first is that not all of the > > underlying builds support this. The second is that we are using > > Make as our ports scripting language - I'm guessing that in Gentoo > > no-one expects portage itself to be parallel. > > I don't actually *expect* anything. :-) I'm not sure why you think > that Gentoo should be an exeption here, but that won't hold up > forever - on any OS. I don't, it was an analogy. Gentoo has a portage system based on Python that mostly builds software using Gnu make, FreeBSD has a ports system based on BSD make that also mostly builds software using Gnu make. Gentoo can make use of parallel processes by passing -j to gnu make,and IMO this is how it should be done in FreeBSD. The fact that FreeBSD uses Make as its ports scripting language confuses the issue, people expect to be able to type make -j in a ports directory, but when they do that they are applying the -j to the wrong make - it's analogous the python part of Gentoo portage. I don't see any good reason why the ports system *itself* should ever support -j, there's nothing to be gained by it. All that's needed is a better mechanism to tell the underlying build to use multiple processes. > So you mean a MAKE_ARGS= -j 4 would help? Worth a try, a few ports already do this > > Probably you would want to set it conditionally in make.conf, so you > > can exclude any problematical ports. > > What do you mean with that? You wouldn't want to use it on ports that are known to fail would you? _______________________________________________ email@example.com mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]" _______________________________________________ firstname.lastname@example.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"