Hi Rob,

Many thanks for your expert advice. You've given me quite a few avenues to 
explore.

Cheers,
Ron.

> On 10 Jun 2017, at 9:04 pm, sisyph...@optusnet.com.au wrote:
> 
> 
> From: Ron Grunwald via inline
> Sent: Saturday, June 10, 2017 8:53 PM
> To: inline@perl.org
> Subject: Re: Inline::F2003 - New ILSM proposed
> Hello all,
> 
>> The example code below illustrates how Inline::F2003 could be configured to 
>> build a shared library from the Fortran source files listed in "SRCLIST". 
>> Also, I propose to add a new parameter called "MAKEFILE", and this leads me 
>> into an area that I'm unsure about.
>> 
>> use Inline F2003 => Config => (
>>                      SRCLIST   => "ModMatrixOps.f03",
>>                      LIBNAME   => "libMatrixOps.so",
>>                      LIBTYPE   => ".so",
>>                      MAKEFILE  => "AUTOMAKE",
>>                      BUILDDIR  => "BLD_Linux.AMD64_gfortran",
>>                      FOR       => "gfortran",
>>                      FORFLG    => "-v -g -c -std=f2003 -fpic -cpp"
>>                   );
>> 
>> This new parameter "MAKEFILE" is intended to allow programmers to specify 
>> their own makefile. However, the special value "AUTOMAKE" can also be 
>> specified (as shown above), which means that Inline::F2003 would generate a 
>> suitable makefile, and this is where I need some advice.
>> 
>> Inline::C uses ExtUtils::MakeMaker to generate the makefile. I would like to 
>> use ExtUtils::MakeMaker, but I don't think it would be possible since it 
>> generates makefiles for C compilation, not Fortran compilation.
> 
> Both PDL and PGPLOT modules use ExtUtils::MakeMaker && perform fortran 
> compilations.
> They make use of the  ExtUtils::F77 module.
> FAIK it might simply be that EU::F77's job is simply to determine the name of 
> the fortran compiler, and the flags that it should take ... or perhaps 
> there's more to it than just that.
> 
> The fortran compilations in the PDL build occur during the building of 
> PDL::Slatec and PDL::Minuit - there might be other places, too.
> With EU::F77 installed you should be able to build PDL (such that both 
> PDL::Slatec and PDL::Minuit are built) with 'cpan -i PDL'.
> 
> Hopefully there's something in there that will help.
> 
> Any questions about how the fortran stuff is managed by PDL or EU::MM could 
> also be sent to the PDL devel mailing list. It's an active list that's fairly 
> well attended by informed and helpful folk.
> 
>> Unless there is some clever way to configure ExtUtils::MakeMaker to output 
>> Fortran makefiles?
>> 
>> Another option is to use the GNU autotools.
> 
> PDL::Audio (http://search.cpan.org/~mlehmann/PDL-Audio-1.2/) is the only 
> module I've ever built that makes use of autotools (in the sndlib folder in 
> the source distro).
> It works well, though I haven't studied it.
> Maybe there's something useful to be gleaned from it, too.
> 
>> In this scenario, Inline::F2003 would read an existing "Makefile.in", then 
>> use the parameters specified in the above example, and write out the final 
>> Makefile. Sounds simple, but I've never done this before.
>> 
>> If anyone is able to provide advice, suggestions or opinions, I would be 
>> really grateful.
> 
> My only other advice would be to also sound this out on perlmonks. (But that 
> might pay off ... or it might not :-)
> 
> Cheers,
> Rob
> 

Reply via email to