The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use ExtUtils::MakeMaker;
use File::Spec();

my $binary = 'firefox';
if ($^O eq 'MSWin32') {
    my $program_files_key;
	foreach my $possible ('ProgramFiles(x86)', 'ProgramFiles') {
		if ($ENV{$possible}) {
			$program_files_key = $possible;
			last;
		}
	}
	$binary = File::Spec->catfile($ENV{$program_files_key}, 'Mozilla Firefox', 'firefox.exe')
}
my $versionString = `"$binary" -version`;
if ($versionString) {
	if ($versionString =~ /^Mozilla[ ]Firefox[ ](\d+)[.]\d+[.]\d+\s*/smx) {
		my ($major) = ($1);
		if ($major < 57) {
			die "Please install a more recent version of Mozilla Firefox.  Current version is $major";
		}
	} else {
		die "Unable to parse $versionString";
	}
} else {
	die "Mozilla Firefox cannot be discovered in $ENV{PATH}";
}

WriteMakefile(
    NAME                => 'Firefox::Marionette',
    AUTHOR              => 'David Dick <ddick@cpan.org>',
    VERSION_FROM        => 'lib/Firefox/Marionette.pm',
    ABSTRACT_FROM       => 'lib/Firefox/Marionette.pm',
    PL_FILES            => {},
    BUILD_REQUIRES => {
        'Test::More' => 0,
	'LWP::UserAgent' => 0,
	'Digest::SHA' => 0,
    },
    PREREQ_PM => {
        'JSON'         => 0,
		'FileHandle'   => 0,
		'File::Temp'   => 0,
        'Socket'       => 0,
        'English'      => 0,
        'POSIX'        => 0,
        'URI'          => 0,
        'MIME::Base64' => 0,
        'overload'     => 0,
		($^O eq 'MSWin32' ? ( 'Win32' => 0, 'Win32::Process' => 0, 'Win32::Process::Info' => 0 ) : ()),
    },
    dist                => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
    clean               => { FILES => 'Firefox-Marionette-*' },
);