Mark Grimes
and 1 contributors

NAME

Module::Build::Pluggable::Fortran - Plugin for Module::Build to compile Fortran .f files

VERSION

version 0.26

SYNOPSIS

    # Build.PL
    use strict;
    use warnings;
    use Module::Build::Pluggable ('Fortran');

    my $builder = Module::Build::Pluggable->new(
        dist_name  => 'PDL::My::Module',
        license    => 'perl',
        f_source   => [ 'src' ],
        requires   => { },
        configure_requires => {
            'Module::Build'                      => '0.4004',
            'Module::Build::Pluggable'           => '0',
            'Module::Build::Pluggable::Fortran'  => '0.20',
        },

    );
    $builder->create_build_script();

DESCRIPTION

This is a plugin for Module::Build (using Module::Build::Pluggable) that will assist in building distributions that require Fortran .f files to be compiled. Please see the Module::Build::Authoring documentation if you are not familiar with it.

Add Prerequisites
    build_requires => {
        'ExtUtils::F77'      => '0',
        'ExtUtils::CBuilder' => '0.23',
    },

You can, or course, require your own versions of these modules by adding them to requires = {}> as usual.

Compile .f files

The directories specified by the f_source array within your distribution will be searched for .f files which are, immediately prior to the build phase, compiled into .o files. This is accomplished (effectively) by running:

    my $mycompiler = ExtUtils::F77->compiler();
    my $mycflags   = ExtUtils::F77->cflags();
    system( "$mycompiler -c -o $file.o $mycflags -O3 -fPIC $file.f" );
Add Extra Linker Flags
    extra_linker_flags =>  $PDL::Config{MALLOCDBG}->{libs}
      if $PDL::Config{MALLOCDBG}->{libs};
    extra_linker_flags => ExtUtils::F77->runtime, <your fortran object files>

Adds the linker flags from ExtUtils::F77 and all the .o object files created from the .f Fortran files.

SEE ALSO

Module::Build::Pluggable, Module::Build

AUTHOR

Mark Grimes, <mgrimes@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Mark Grimes, <mgrimes@cpan.org>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.