1*b6ff768eSJacob Faibussowitsch#!/usr/bin/env python3 2*b6ff768eSJacob Faibussowitsch 3*b6ff768eSJacob Faibussowitschimport os 4*b6ff768eSJacob Faibussowitschpetsc_hash_pkgs=os.path.join(os.getenv('HOME'),'petsc-hash-pkgs') 5*b6ff768eSJacob Faibussowitsch 6*b6ff768eSJacob Faibussowitsch# This test is done on grind.mcs.anl.gov. It uses ILP64 MKL/BLAS packaged 7*b6ff768eSJacob Faibussowitsch# with MATLAB. 8*b6ff768eSJacob Faibussowitsch 9*b6ff768eSJacob Faibussowitsch# Note: regular BLAS [with 32bit integers] conflict with 10*b6ff768eSJacob Faibussowitsch# MATLAB BLAS - hence requiring -known-64-bit-blas-indices=1 11*b6ff768eSJacob Faibussowitsch 12*b6ff768eSJacob Faibussowitsch# Note: MATLAB build requires petsc shared libraries 13*b6ff768eSJacob Faibussowitsch 14*b6ff768eSJacob Faibussowitsch# Some versions of Matlab [R2013a] conflicted with -lgfortan - so the following workaround worked. 15*b6ff768eSJacob Faibussowitsch# export LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/4.6/libgfortran.so 16*b6ff768eSJacob Faibussowitsch 17*b6ff768eSJacob Faibussowitsch# find MATLAB location 18*b6ff768eSJacob Faibussowitschimport os 19*b6ff768eSJacob Faibussowitschfrom shutil import which 20*b6ff768eSJacob Faibussowitschmatlab_dir=os.path.dirname(os.path.dirname(which('matlab'))) 21*b6ff768eSJacob Faibussowitsch 22*b6ff768eSJacob Faibussowitschif __name__ == '__main__': 23*b6ff768eSJacob Faibussowitsch import sys 24*b6ff768eSJacob Faibussowitsch import os 25*b6ff768eSJacob Faibussowitsch sys.path.insert(0, os.path.abspath('config')) 26*b6ff768eSJacob Faibussowitsch import configure 27*b6ff768eSJacob Faibussowitsch configure_options = [ 28*b6ff768eSJacob Faibussowitsch '--package-prefix-hash='+petsc_hash_pkgs, 29*b6ff768eSJacob Faibussowitsch '--download-mpich=1', # /usr/bin/mpicc does not resolve '__gcov_merge_add'? and gcc-4.4 gives gcov errors 30*b6ff768eSJacob Faibussowitsch '--with-display=140.221.10.20:0.0', # for matlab example with graphics 31*b6ff768eSJacob Faibussowitsch '--with-blaslapack-dir='+matlab_dir, 32*b6ff768eSJacob Faibussowitsch '--with-matlab=1', 33*b6ff768eSJacob Faibussowitsch# matlab-engine is deprecated, no longer needed but still allowed 34*b6ff768eSJacob Faibussowitsch '--with-matlab-engine=1', 35*b6ff768eSJacob Faibussowitsch '--with-shared-libraries=1', 36*b6ff768eSJacob Faibussowitsch '-known-64-bit-blas-indices=1', 37*b6ff768eSJacob Faibussowitsch '--with-ssl=0', 38*b6ff768eSJacob Faibussowitsch '--with-coverage=1', 39*b6ff768eSJacob Faibussowitsch '--with-strict-petscerrorcode', 40*b6ff768eSJacob Faibussowitsch ] 41*b6ff768eSJacob Faibussowitsch configure.petsc_configure(configure_options) 42