Re: Is there even a C compiler?

2008-02-25 Thread Andy Armstrong
On 25 Feb 2008, at 16:25, Nicholas Clark wrote: On Mon, Feb 25, 2008 at 03:59:14PM +, Andy Armstrong wrote: Is there a generally approved way for an XS module to test for the existence of a C compiler before attempting to build? Personally I'd like such a test to be standard in MakeMaker,

Re: Is there even a C compiler?

2008-02-25 Thread David Golden
On Mon, Feb 25, 2008 at 10:59 AM, Andy Armstrong [EMAIL PROTECTED] wrote: Is there a generally approved way for an XS module to test for the existence of a C compiler before attempting to build? Look at Devel::Checklib. If you don't select any libraries, I believe it still checks for a

Re: Is there even a C compiler?

2008-02-25 Thread Nicholas Clark
On Mon, Feb 25, 2008 at 03:59:14PM +, Andy Armstrong wrote: Is there a generally approved way for an XS module to test for the existence of a C compiler before attempting to build? Personally I'd like such a test to be standard in MakeMaker, because I am of the (old fashioned) opinion

Re: Is there even a C compiler?

2008-02-25 Thread Andy Armstrong
On 25 Feb 2008, at 16:35, David Golden wrote: Look at Devel::Checklib. If you don't select any libraries, I believe it still checks for a compiler. Oh, so it does. I looked at it, quickly scanned assert_lib and concluded that it wouldn't work - but now I see that _findcc can die. Cool,

Re: Is there even a C compiler?

2008-02-25 Thread Guy Hulbert
On Mon, 2008-02-25 at 16:29 +, Andy Armstrong wrote: Personally I'd like such a test to be standard in MakeMaker, because I am of the (old fashioned) opinion that if %Config says that there is a C compiler and there isn't one, then it's lying (and the instalation is broken,

Re: Is there even a C compiler?

2008-02-25 Thread Guy Hulbert
On Mon, 2008-02-25 at 13:22 -0500, Guy Hulbert wrote: something as horrible as: -x `which $Config{cc}` plus: `which $Config{cc} --version` =~ m/$Config{gccversion}/ seems to work for all the combinations below ... but I can imagine that there are situations where it might not.

Re: Is there even a C compiler?

2008-02-25 Thread Curtis Jewell
On Mon, 25 Feb 2008 16:25:33 +, Nicholas Clark [EMAIL PROTECTED] said: On Mon, Feb 25, 2008 at 03:59:14PM +, Andy Armstrong wrote: Is there a generally approved way for an XS module to test for the existence of a C compiler before attempting to build? Personally I'd like such a

Re: Is there even a C compiler?

2008-02-25 Thread Andy Armstrong
On 25 Feb 2008, at 18:30, Guy Hulbert wrote: On Mon, 2008-02-25 at 13:22 -0500, Guy Hulbert wrote: something as horrible as: -x `which $Config{cc}` plus: `which $Config{cc} --version` =~ m/$Config{gccversion}/ seems to work for all the combinations below ... but I can imagine

Re: Is there even a C compiler?

2008-02-25 Thread Guy Hulbert
On Mon, 2008-02-25 at 18:33 +, Andy Armstrong wrote: See also Windows, VMS, any other machine that doesn't have which. ... I was just looking at which %Config vars you need to check ... I left VMS before I started perl and I havn't made it to Windows yet. You could use something like: sub

Re: Is there even a C compiler?

2008-02-25 Thread Andy Armstrong
On 25 Feb 2008, at 18:42, Guy Hulbert wrote: You still need to figure out whether to check 'ccversion' or 'gccversion' to when $Config{cc} can be either 'cc' or 'gcc' and also how to find the '--version' string on windows ... but it looks doable. I'm using Devel::CheckLib and relying on David

Re: Is there even a C compiler?

2008-02-25 Thread Guy Hulbert
On Mon, 2008-02-25 at 18:12 +, Andy Armstrong wrote: -1 Many linux distros distribute binary packages ... the value of cc will be the compiler used to build the package. I meant +1 to MakeMaker knowing whether the compiler is actually available. Oh ... ok ... wasn't clear from

Re: Is there even a C compiler?

2008-02-25 Thread David Golden
On Mon, Feb 25, 2008 at 1:32 PM, Curtis Jewell [EMAIL PROTECTED] wrote: May not be MakeMaker, but would ExtUtils::CBuilder::have_compiler() work? It should, but it's not always installed. Devel::Checklib is designed to make life easy by bundling itself into an inc/ directory in the