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