Fixed stupid errors and added regex sub fix for windows path seperator
[sdlgit/SDL_perl.git] / make / lib / SDL / Build.pm
index 2d7aebb..fc37fe1 100644 (file)
@@ -44,17 +44,17 @@ use Config;
 sub process_xs
 {
        my ($self, $file) = @_;
+               
        my $properties                   = $self->{properties};
-
        my $file_args                    = $self->notes( 'file_flags' )->{$file};
-
        my @old_values                   = @$properties{ keys %$file_args };
        @$properties{ keys %$file_args } = values %$file_args;
+
        $self->SUPER::process_xs( $file );
        @$properties{ keys %$file_args } = @old_values;
-
 }
 
+
 # every platform has slightly different library and header paths
 sub get_arch
 {
@@ -158,27 +158,24 @@ sub set_flags
 {
        my ($self, $subsystems, $build, $defines, $includes, $links,
            $sdl_compile, $sdl_link) = @_;
-
        my %file_flags;
-
        while (my ($subsystem, $buildable) = each %$build)
        {
                my $sub_file     = $subsystems->{$subsystem}{file}{to};
                my $sub_includes = join(' ', @{ $includes->{$subsystem} } );
-
                $file_flags{ $sub_file } = 
                {
                        extra_compiler_flags =>
                        [
                                @{ $includes->{$subsystem} },
-                               split(' ',$sdl_compile),
+                               (split(' ',$sdl_compile)),
                                @{ $defines->{$subsystem} },
                                ( defined $Config{usethreads} ? ('-DUSE_THREADS', '-fPIC') : ('-fPIC' )),
                        ],
                        extra_linker_flags => 
                        [
                                @{ $links->{$subsystem}{paths} },
-                               split(' ',$sdl_link),
+                               (split(' ',$sdl_link)),
                                @{ $links->{$subsystem}{libs} },
                        ],
                },
@@ -226,6 +223,8 @@ sub write_sdl_config
        print $file $text;
 }
 
+
+
 # Subclass  Darwin to build Objective-C addons
 
 sub filter_support {
@@ -251,10 +250,30 @@ sub process_support_files {
        }
 }
 
+# get link flags with a given a sdl_dir
+sub alt_link_flags
+{
+       my $self = shift;
+       my $sdl_dir = shift;
+
+       return '-L"'.$sdl_dir.'\lib"';
+}
+
+# get compile flags with a given a sdl_dir
+sub alt_compile_flags
+{
+        my $self = shift;
+        my $sdl_dir = shift;
+
+        return '-I"'.$sdl_dir.'\include\SDL"'; 
+}
+
 # Override to create a MacOS Bundle
-sub build_bundle
+sub ACTION_bundle
 {
-       return;
+       my ($self) = @_;
+       $self->depends_on('build');
+       $self->get_arch($^O)->build_bundle();
 }
 
 # Override Install method for darwin
@@ -262,7 +281,6 @@ sub ACTION_install {
   my ($self) = @_;
   require ExtUtils::Install;
   $self->depends_on('build');
-  $self->get_arch($^O)->build_bundle();
   ExtUtils::Install::install($self->install_map, 1, 0, $self->{args}{uninst}||0);
 }