/usr/local/CPAN/Inline-ASM/Makefile.PL
use ExtUtils::MakeMaker;
use Config;
#============================================================================
# We'll do our own prerequisite checking, since MakeMaker does it
# in a way that always fails: 'use Inline::C 0.33' will never work.
#============================================================================
eval { require Inline::C };
warn "Warning: prerequisite Inline::C version 0.42 not found"
if $@ or $Inline::C::VERSION < 0.42;
#=============================================================================
# Guess suitable defaults for assembler, compiler, linker, etc.
#=============================================================================
my $asm_guess;
my $cc_guess;
if ($Config{osname} =~ /^MSWin/) {
$asm_guess = 'nasm';
$cc_guess = 'cl';
}
elsif ($Config{osname} eq 'linux') {
$asm_guess = 'as';
$cc_guess = 'gcc';
}
else {
$asm_guess = 'as';
$cc_guess = 'gcc';
}
my %asflags_guess =
(
nasm => ($Config{osname} =~ /^MSWin/) ? '-f win32' : '-f elf',
);
#=============================================================================
# Prompt for assembler to use
#=============================================================================
my $asm = prompt("What assembler would you like to use?",
$asm_guess);
my $asflags = prompt("What flags do you want to pass to $asm by default?",
$asflags_guess{$asm} || '');
#=============================================================================
# Default C compiler
#=============================================================================
print
"Inline::ASM needs a C compiler to generate the Assembler-Perl bindings.\n";
my $cc = prompt("What C compiler would you like to use?",
$cc_guess);
#=============================================================================
# Apply these defaults
#=============================================================================
open ASM, "ASM.pm";
my @lines = <ASM>;
close ASM;
for (@lines) {
s|\@ASSEMBLER|$asm| if m|\# default assembler|;
s|\@ASFLAGS|$asflags| if m|\# default asm flags|;
s|\@COMPILER|$cc| if m|\# default compiler|;
}
open ASM, ">ASM.pm"
or die "Can't write to ASM.pm!";
print ASM @lines;
close ASM;
#=============================================================================
# Write the Makefile
#=============================================================================
WriteMakefile(
NAME => 'Inline::ASM',
VERSION_FROM => 'ASM.pm',
PREREQ_PM => {
Inline => 0.42,
},
clean => {FILES => '_Inline_test/'},
);