wineinstall - Add support for parallel builds using 'nproc' to detect cpu count

Austin English austinenglish at gmail.com
Fri Feb 24 12:31:58 CST 2017


On Fri, Feb 24, 2017 at 12:26 PM, Chris Morgan <chmorgan at gmail.com> wrote:
>
> On Fri, Feb 24, 2017 at 1:24 PM Austin English <austinenglish at gmail.com>
> wrote:
>>
>> On Fri, Feb 24, 2017 at 6:53 AM, Chris Morgan <chmorgan at gmail.com> wrote:
>> > On Fri, Feb 24, 2017 at 3:11 AM, Austin English
>> > <austinenglish at gmail.com>
>> > wrote:
>> >>
>> >> On Fri, Feb 24, 2017 at 2:05 AM,  <wylda at volny.cz> wrote:
>> >> > Hi,
>> >> > i like/use "make -j 1" for log comparison. Can you leave NPROC=1 or
>> >> > allow override?
>> >> >
>> >> > W.
>> >> >
>> >> >
>> >>
>> >> Hi Wylda,
>> >>
>> >> Are you doing that with wineinstall? This doesn't affect normal
>> >> ./configure && make, only ./tools/wineinstall.
>> >>
>> >> That said, allowing the user to set it via NPROC or similar would be a
>> >> good idea IMO.
>> >>
>> >> --
>> >> -Austin
>> >> GPG: 14FB D7EA A041 937B
>> >
>> >
>> >
>> >
>> > Is this what you had in mind? I wasn't sure how to document that you
>> > could
>> > do:
>> >
>> > NPROC=50 ./tools/wineinstall
>> >
>> > to force 50 parallel processes.
>> >
>> >
>> > commit 83321d6452706b5f8f93687ed4e0909aac47fd68
>> > Author: Chris Morgan <chmorgan at gmail.com>
>> > Date:   Tue Feb 21 17:03:30 2017 -0500
>> >
>> >     wineinstall - Add support for parallel builds using 'nproc' to
>> > detect
>> > cpu count
>> >
>> >     Parallel builds can greatly reduce the overall build time on modern
>> > multi-core processors.
>> >
>> >     Fall back to two parallel builds in the case where nproc is
>> > unavailable,
>> > most modern
>> >     processors have at least two cores.
>> >
>> >     Use the 'NPROC' value defined by the environment if it is not null.
>> >
>> > diff --git a/tools/wineinstall b/tools/wineinstall
>> > index e8e22bf..a757343 100755
>> > --- a/tools/wineinstall
>> > +++ b/tools/wineinstall
>> > @@ -143,10 +143,22 @@ echo "in the meantime..."
>> >  echo
>> >  std_sleep
>> >
>> > +# determine ideal number of parallel processes if NPROC isn't set
>> > +# in the environment
>> > +if [ ! -n $NPROC ]
>> > +then
>> > +    if [ -x `which nproc 2>/dev/null` ]
>> > +    then
>> > +        NPROC=$(nproc --all)
>> > +    else
>> > +        NPROC=2
>> > +    fi
>> > +fi
>> > +
>> >  # try to just make wine, if this fails 'make depend' and try to remake
>> > -if ! { make; }
>> > +if ! { make -j$NPROC; }
>> >  then
>> > -    if ! { make depend && make; }
>> > +    if ! { make depend && make -j$NPROC; }
>> >      then
>> >        echo
>> >        echo "Compilation failed, aborting install."
>> >
>>
>> Yeah, something like that (but please avoid the backticks).
>>
>> --
>> -Austin
>> GPG: 14FB D7EA A041 937B
>
>
> Hi Austin.
>
> Can you clarify what you mean and comment on the documentation for how to
> override nproc with the environment variable? I'd like to update and send
> out a new patch.
>
> Chris

What you sent should work. Since nproc isn't always available, there's
not a super clean way to do it, but a slightly cleaner alternative
would be:

if [ -x $(which nproc) ] ; then
    NPROC="${NPROC:-$(nproc --all)}"
else
    NPROC="${NPROC:-2}"
fi

-- 
-Austin
GPG: 14FB D7EA A041 937B



More information about the wine-devel mailing list