From owner-freebsd-current Sun Aug 10 04:34:04 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id EAA17332 for current-outgoing; Sun, 10 Aug 1997 04:34:04 -0700 (PDT) Received: from gw.itfs.nsk.su (gw.itfs.nsk.su [193.124.36.33]) by hub.freebsd.org (8.8.5/8.8.5) with SMTP id EAA17327 for ; Sun, 10 Aug 1997 04:34:01 -0700 (PDT) Received: from itfs.UUCP (root@localhost) by gw.itfs.nsk.su (8.6.12/8.6.12) with UUCP id SAA08355 for current@freebsd.org; Sun, 10 Aug 1997 18:33:58 +0700 Received: by itfs.nsk.su; Sun, 10 Aug 97 18:32:53 +0700 (NST) Received: (from daemon@localhost) by news.itfs.nsk.su (8.7.5/8.6.12) id SAA24104; Sun, 10 Aug 1997 18:30:42 +0700 (NSD) From: nnd@itfs.nsk.su To: current@freebsd.org Subject: Make and SMP - what can be done ? Date: 10 Aug 1997 11:30:41 GMT Message-ID: <5sk8p1$ld3@news.itfs.nsk.su> Sender: owner-freebsd-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Now when we can use SMP-FreeBSD and there is a possibility to speedup building various components of the system (making the kernel with 'make -j12' proves this very definitely) there is a question - HOW can we use it ? Trivial attempt to 'make buildworld' with "MAKE=make -j12" falls very quickly and shows at least that usual idiom - 'make all install clean cleandepend' can not be combined with '-j' flag because this flag breaks "compatible" semantics of sequential building of listed targets. One of possible solutions to this problem can be changing such idioms to 'make all;make install;make clean cleandepend', but it can slowdown building process due to more overhead of several make invocations instead of one make with many targets ;-( Another approach can be in supplaying additional dependencies (f.e. install depends of all and clean depends of install) or ".ORDER" targets with the same effect. Main problem with such an approach is that it can't be done "incrementally" - before I can make buildworld with "MAKE=make -j12" I must change ALL the Makefiles in the "world" ;-). More stepwise process may consists in adding global make flag (say, JFLAG which is set to "-j12" for SMP case and to "" for traditional systems) and using it in various parts of word-building alongside with modifying appropriate Makefiles. Is there any sense in my speculations ? Does anybody have some propositions for solving this problem ? And is there REAL problem at all ;-) ? N.Dudorov