xref: /petsc/config/examples/arch-ci-linux-matlab-ilp64.py (revision b6ff768ede89da692da6e38d96c2f86c25a48f5a)
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