X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=inc%2FMMHelper.pm;h=02bf893b30b40bac7c22ada1f6daf27aeb937324;hb=0fc3ab3516f65e07f2af3fa41a8b344e1db2d0ca;hp=fde6d5bb0fca079d247c20c7aaa553a47949f67f;hpb=004ac8d9484099572b66056101474c83ad154721;p=gitmo%2FMoose.git diff --git a/inc/MMHelper.pm b/inc/MMHelper.pm index fde6d5b..02bf893 100644 --- a/inc/MMHelper.pm +++ b/inc/MMHelper.pm @@ -7,17 +7,26 @@ use Config; use Cwd qw( abs_path ); use File::Basename qw( dirname ); -sub mm_args { - my $root = shift; +sub ccflags_dyn { + my $is_dev = shift; + + my $ccflags = q<( $Config::Config{ccflags} || '' ) . ' -I.'>; + $ccflags .= q< . ' -Wall -Wdeclaration-after-statement'> + if $is_dev; - my $ccflags = ( $Config::Config{ccflags} || '' ) . ' -I.'; - $ccflags .= ' -Wall -Wdeclaration-after-statement'; + return $ccflags; +} - my %mm = ( CCFLAGS => $ccflags ); +sub ccflags_static { + my $is_dev = shift; + return eval(ccflags_dyn($is_dev)); +} + +sub mm_args { my ( @object, %xs ); - for my $xs ( glob "$root/xs/*.xs" ) { + for my $xs ( glob "xs/*.xs" ) { ( my $c = $xs ) =~ s/\.xs$/.c/i; ( my $o = $xs ) =~ s/\.xs$/\$(OBJ_EXT)/i; @@ -25,13 +34,12 @@ sub mm_args { push @object, $o; } - for my $c ( glob "$root/*.c" ) { + for my $c ( glob "*.c" ) { ( my $o = $c ) =~ s/\.c$/\$(OBJ_EXT)/i; push @object, $o; } return ( - CCFLAGS => $ccflags, clean => { FILES => join( q{ }, @object ) }, OBJECT => join( q{ }, @object ), XS => \%xs, @@ -40,6 +48,7 @@ sub mm_args { sub my_package_subs { return <<'EOP'; +{ package MY; use Config; @@ -64,6 +73,7 @@ sub postamble { $(OBJECT) : mop.h EOF } +} EOP }