Re: [Fink-users] setting number of CPUs for compilation

2009-11-15 Thread monipol
On 04/11/2009, at 17:36, Nathaniel Echols wrote:
> On Wed, Nov 4, 2009 at 11:58 AM, Daniel Macks   
> wrote:
>> Fink has an internal setting to allow propagation of the MAKEFLAGS
>> shell environment variable into the build process (fink usually  
>> blanks
>> this field as part of its environment-consistency policy). That way a
>> user can decide what to do, but has to do it explicitly (and with
>> knowledge that some packages may have build problems (but if they are
>> reported, those packages can expliticly re-set -j1)). There's info on
>> Fink Wiki I think.
>
> The first reply I got said that Fink wipes out all environment  
> variables.
> Whether or not this is the case, setting MAKEFLAGS has no impact on  
> the
> compilation of gcc44.

Hello, Nathaniel. Fink's development branch now reads a user  
configurable fink.conf entry that specifies the maximum number of  
simultaneous build jobs, i.e., the N in MAKEFLAGS=-jN. This is an opt- 
in feature: package maintainers will have to change their package  
descriptions in order to enable that setting – some of the maintainers  
are already testing it and we've got positive feedback, so it's quite  
probable that it will be available in fink's next release.


Cheers,

--
monipol
http://finkers.wordpress.com

Submitting a Fink bug report? Read this:
http://www.finkproject.org/doc/netiquette/index.php
http://finkers.wordpress.com/2009/06/03/bug-reports/


--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Fink-users mailing list
Fink-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-users


Re: [Fink-users] setting number of CPUs for compilation

2009-11-04 Thread Daniel Macks
On Wed, Nov 04, 2009 at 12:36:01PM -0700, Nathaniel Echols wrote:
> On Wed, Nov 4, 2009 at 11:58 AM, Daniel Macks  wrote:
> 
> > Fink has an internal setting to allow propagation of the MAKEFLAGS
> > shell environment variable into the build process (fink usually blanks
> > this field as part of its environment-consistency policy). That way a
> > user can decide what to do, but has to do it explicitly (and with
> > knowledge that some packages may have build problems (but if they are
> > reported, those packages can expliticly re-set -j1)). There's info on
> > Fink Wiki I think.
> >
> 
> The first reply I got said that Fink wipes out all environment variables.
>  Whether or not this is the case, setting MAKEFLAGS has no impact on the
> compilation of gcc44.

Yes, that's exactly what I said: you have to tweak the internal "wipe
env vars" setting to allow MAKEFLAGS to propagate. First google hit
for:
  fink makeflags
tells you all about it (check the cached copy).

However, IIRC, gcc* is a little special in its build system, not sure
it's the best test case.

dan

-- 
Daniel Macks
dma...@netspace.org
http://www.netspace.org/~dmacks


--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Fink-users mailing list
Fink-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-users


Re: [Fink-users] setting number of CPUs for compilation

2009-11-04 Thread Nathaniel Echols
On Wed, Nov 4, 2009 at 11:58 AM, Daniel Macks  wrote:

> Fink has an internal setting to allow propagation of the MAKEFLAGS
> shell environment variable into the build process (fink usually blanks
> this field as part of its environment-consistency policy). That way a
> user can decide what to do, but has to do it explicitly (and with
> knowledge that some packages may have build problems (but if they are
> reported, those packages can expliticly re-set -j1)). There's info on
> Fink Wiki I think.
>

The first reply I got said that Fink wipes out all environment variables.
 Whether or not this is the case, setting MAKEFLAGS has no impact on the
compilation of gcc44.
--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july___
Fink-users mailing list
Fink-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-users


Re: [Fink-users] setting number of CPUs for compilation

2009-11-04 Thread David R. Morrison

On Nov 4, 2009, at 10:58 AM, Daniel Macks wrote:
> There's info on
> Fink Wiki I think.

Or there would be, if the fink wiki was functional right now.

   -- Dave


--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Fink-users mailing list
Fink-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-users


Re: [Fink-users] setting number of CPUs for compilation

2009-11-04 Thread Daniel Macks
On Wed, Nov 04, 2009 at 11:55:10AM -0700, Nathaniel Echols wrote:
> On Wed, Nov 4, 2009 at 11:43 AM, monipol  wrote:
> 
> > Fink itself does not set -j in MAKEFLAGS because, as Jack has explained,
> > parallel make is not supported by every package. Fink does use -j1 in make
> > install, though. Packagers are free to test -j in their packages and enable
> > it via SetMAKEFLAGS in package descriptions. It is also possible that some
> > packages enable -j by default without the intervention or knowledge of the
> > package maintainer.
> >
> > In summary, building with make -j is currently a package dependent feature
> > and, if the maintainer intentionally enabled it, the package description
> > (.info) file or patch (.patch) file will tell you that. Are you seeing this
> > behaviour in every package or only a few of them?
> >
> 
> I don't think it's every package, but I know for sure that gcc44 does this.

Fink has an internal setting to allow propagation of the MAKEFLAGS
shell environment variable into the build process (fink usually blanks
this field as part of its environment-consistency policy). That way a
user can decide what to do, but has to do it explicitly (and with
knowledge that some packages may have build problems (but if they are
reported, those packages can expliticly re-set -j1)). There's info on
Fink Wiki I think.

dan

-- 
Daniel Macks
dma...@netspace.org
http://www.netspace.org/~dmacks


--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Fink-users mailing list
Fink-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-users


Re: [Fink-users] setting number of CPUs for compilation

2009-11-04 Thread Nathaniel Echols
On Wed, Nov 4, 2009 at 11:43 AM, monipol  wrote:

> Fink itself does not set -j in MAKEFLAGS because, as Jack has explained,
> parallel make is not supported by every package. Fink does use -j1 in make
> install, though. Packagers are free to test -j in their packages and enable
> it via SetMAKEFLAGS in package descriptions. It is also possible that some
> packages enable -j by default without the intervention or knowledge of the
> package maintainer.
>
> In summary, building with make -j is currently a package dependent feature
> and, if the maintainer intentionally enabled it, the package description
> (.info) file or patch (.patch) file will tell you that. Are you seeing this
> behaviour in every package or only a few of them?
>

I don't think it's every package, but I know for sure that gcc44 does this.

-Nat
--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july___
Fink-users mailing list
Fink-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-users


Re: [Fink-users] setting number of CPUs for compilation

2009-11-04 Thread monipol
On 04/11/2009, at 16:27, Nathaniel Echols wrote:
> On Wed, Nov 4, 2009 at 7:34 AM, Jack Howarth  
> wrote:
>
>> Keep in mind that not all source packages support
>> a parallel make. If I recall correctly, openmotif for
>> example has issues. It would be better to encourage
>> package maintainers to simply enable the parallel
>> make in their info files by using something like...
>>
>> num_cpu=$(echo `sysctl -n hw.ncpu`)
>> make -j $num_cpu
>
> Automatically using every CPU as a default behavior is fine (I'm  
> adding
> something similar at work for installers we distribute), but it's  
> obnoxious
> to be unable to override this, and that code snippet has this  
> problem.  It
> isn't at all clear to me where the instruction is coming from in the  
> current
> setup - I looked at the code in /sw/lib/perl5/Fink and the only  
> lines that
> call 'make' do so either with '-j1' or no extra flags, and I didn't  
> see
> anything else setting MAKEFLAGS.  So are individual packages doing  
> this
> already, or has GNU make changed to parallelize automatically, or am I
> missing something?  Any mechanism for setting the max. # of CPUs is  
> fine -
> config file, command-line argument, environment variable - would be
> acceptable.
Fink itself does not set -j in MAKEFLAGS because, as Jack has  
explained, parallel make is not supported by every package. Fink does  
use -j1 in make install, though. Packagers are free to test -j in  
their packages and enable it via SetMAKEFLAGS in package descriptions.  
It is also possible that some packages enable -j by default without  
the intervention or knowledge of the package maintainer.

In summary, building with make -j is currently a package dependent  
feature and, if the maintainer intentionally enabled it, the package  
description (.info) file or patch (.patch) file will tell you that.  
Are you seeing this behaviour in every package or only a few of them?


Cheers,

--
monipol
http://finkers.wordpress.com

Submitting a Fink bug report? Read this:
http://www.finkproject.org/doc/netiquette/index.php
http://finkers.wordpress.com/2009/06/03/bug-reports/


--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Fink-users mailing list
Fink-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-users


Re: [Fink-users] setting number of CPUs for compilation

2009-11-04 Thread Nathaniel Echols
On Wed, Nov 4, 2009 at 7:34 AM, Jack Howarth wrote:

>  Keep in mind that not all source packages support
> a parallel make. If I recall correctly, openmotif for
> example has issues. It would be better to encourage
> package maintainers to simply enable the parallel
> make in their info files by using something like...
>
>  num_cpu=$(echo `sysctl -n hw.ncpu`)
>  make -j $num_cpu
>

Automatically using every CPU as a default behavior is fine (I'm adding
something similar at work for installers we distribute), but it's obnoxious
to be unable to override this, and that code snippet has this problem.  It
isn't at all clear to me where the instruction is coming from in the current
setup - I looked at the code in /sw/lib/perl5/Fink and the only lines that
call 'make' do so either with '-j1' or no extra flags, and I didn't see
anything else setting MAKEFLAGS.  So are individual packages doing this
already, or has GNU make changed to parallelize automatically, or am I
missing something?  Any mechanism for setting the max. # of CPUs is fine -
config file, command-line argument, environment variable - would be
acceptable.
--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july___
Fink-users mailing list
Fink-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-users


Re: [Fink-users] setting number of CPUs for compilation

2009-11-04 Thread Jack Howarth
  Keep in mind that not all source packages support
a parallel make. If I recall correctly, openmotif for
example has issues. It would be better to encourage
package maintainers to simply enable the parallel
make in their info files by using something like...

 num_cpu=$(echo `sysctl -n hw.ncpu`)
 make -j $num_cpu

after testing that this form of build is supported
for their sources.

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Fink-users mailing list
Fink-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-users


Re: [Fink-users] setting number of CPUs for compilation

2009-11-03 Thread Alexander Hansen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Nathaniel Echols wrote:
> Is there any way to do this?  It is automatically using every core on my
> workstation, and it gets a little sluggish when this happens.  I'd
> prefer to limit it to 6 or 7, but setting MAKEFLAGS="-j6" didn't work,
> and Google hasn't turned up any more ideas so far.
> 
> thanks,
> Nat
> 
> 

Fink deliberately turns off your environment settings.  There's a way to
 turn this on which involves a bit of tweaking in the fink code itself;
unfortunately the wiki's down and I don't remember exactly what is
needed, but hopefully someone here will have that information.

- --
Alexander Hansen
Fink User Liaison
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.10 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrwCh0ACgkQB8UpO3rKjQ9nVgCgoOTcKTUneGULJBKCF2XRACor
Ee8AnjJJ19/GW4KjLkQYIxVLWBEd4x/5
=OHFV
-END PGP SIGNATURE-

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
Fink-users mailing list
Fink-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-users