help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

compiling BLAS


From: Sergei Steshenko
Subject: compiling BLAS
Date: Tue, 30 Oct 2012 15:46:33 -0700 (PDT)




----- Original Message -----
> From: Alan Feuerbacher <address@hidden>
> To: address@hidden
> Cc: 
> Sent: Tuesday, October 30, 2012 11:56 PM
> Subject: Re: Windows 8
> 
> On 10/30/2012 5:12 PM, Jordi Gutiérrez Hermoso wrote:
> 
>>  It's likely a problem with the BLAS library, which is very tricky to
>>  compile. Someone would need to recompile it for Windows 8.
> 
> Tricky is right. It took me a few days to sort it all out, even using ATLAS. 
> And 
> that's on a Redhat Linux system. I never figured out how to compile a 
> non-ATLAS BLAS.
> 
> Alan
> 
> _______________________________________________
> Help-octave mailing list
> address@hidden
> https://mailman.cae.wisc.edu/listinfo/help-octave
>

I've figured it year ago, please find below an excerpt from part of my 
AppsFromScratch describing BLAS target.

In simple English, a couple of changes in 'make.inc; file need to be made, the 
changes are describes by these:

                    $line =~s |^FORTRAN\s*=\s*.*|FORTRAN = 
$gcc4_install_prefix/binsh/gfortran|;
                    $line =~s |^LOADER\s*=\s*.*|LOADER = 
$gcc4_install_prefix/binsh/gfortran|;
lines.

Regards,
  Sergei.

      blas_generic => # generic, original BLAS - no CPU-specific optimizations
        do{
          my $install_prefix = 
"${$cmdline_args_hash_ref}{install_prefix}/blas_generic";

          $shadow_targets_hash_refs{blas_generic} =
            {
            target_basename => 'blas',

            tarball_extension => 'tgz',

            base_urls =>
              [
              'http://netlib.sandia.gov/blas',
              'http://www.netlib.no/netlib/blas',
              'http://netlib.org/blas'
              ],

            target_build_dir => "${$cmdline_args_hash_ref}{build_prefix}/BLAS",

            pre_configure_sub => $_create_dummy_configure_sub,

            install_prefix => $install_prefix,

            pre_make_sub =>
              sub
                {
                my %this_sub_args = @_;


                my $gcc4_major_ver = $shadow_targets_hash_refs{gcc4}{major_ver};
                my $gcc4_minor_ver = $shadow_targets_hash_refs{gcc4}{minor_ver};
                my $gcc4_micro_ver = $shadow_targets_hash_refs{gcc4}{micro_ver};

                my $gcc4_install_prefix =
                exists $shadow_targets_hash_refs{gcc4}{install_prefix}
                ? $shadow_targets_hash_refs{gcc4}{install_prefix}
                : 
"${$cmdline_args_hash_ref}{install_prefix}/gcc-$gcc4_major_ver.$gcc4_minor_ver.$gcc4_micro_ver"
                ;

                $_edit_file_sub->
                  (
                  $info_marker,        # $info_marker,
                  $error_marker,       # $error_marker,
                  $system_wrapper_sub, # $system_wrapper_sub,
                  "$this_sub_args{target_build_dir}/make.inc", # $file,
                  sub
                    {
                    my ($line) = @_;

                    $line =~s |^FORTRAN\s*=\s*.*|FORTRAN = 
$gcc4_install_prefix/binsh/gfortran|;
                    $line =~s |^LOADER\s*=\s*.*|LOADER = 
$gcc4_install_prefix/binsh/gfortran|;

                    $line;
                    }
                  );
                },

            make_targets => [''],

            install_sub =>
              sub
                {
                my %this_sub_args = @_;

                ###################
                foreach my $command
                ###################
                  (
                  "\\mkdir -p $install_prefix/lib"
                 ,"\\cp -p 
$this_sub_args{target_build_dir}/blas_$capitalized_os_name.a 
$install_prefix/lib/"
                 ,"\\cd $install_prefix/lib/; \\ln -s -f 
blas_$capitalized_os_name.a libblas.a"
                  )
                  {
                  if(
                    $system_wrapper_sub->
                      (
                      $info_marker,
                      $command
                      ) != 0
                    )
                    {
                    warn "$error_marker problems while executing command\n";
                    return 1;
                    }
                  } # foreach my $command

                0;
                }
            }
          }, # do
             # blas_generic



reply via email to

[Prev in Thread] Current Thread [Next in Thread]