|
- _blas_roots = [
- # NOTE: q, qx, x, xq do not have cblas_ rules in the Makefile
- # NOTE: https://developer.arm.com/documentation/101004/2310/BLAS-Basic-Linear-Algebra-Subprograms/CBLAS-functions?lang=en
- # Level 1
- { 'base': '?asum', '_types': ['s', 'd', 'q',
- 'sc', 'dz', 'qx'],
- 'fname': 'asum.c',
- 'cblas': true,
- },
- { 'base': '?sum', '_types': ['s', 'd', 'q',
- 'sc', 'dz', 'qx'],
- 'fname': 'sum.c',
- 'cblas': true,
- },
- { 'base': '?amax', '_types': ['s', 'd', 'q',
- 'sc', 'dz', 'qx'],
- 'fname': 'max.c', 'def': [ 'USE_ABS' ], 'undef': [ 'USE_MIN' ],
- 'cblas': true,
- },
- { 'base': '?amin', '_types': ['s', 'd', 'q',
- 'sc', 'dz', 'qx'],
- 'fname': 'max.c', 'def': [ 'USE_ABS', 'USE_MIN' ], 'undef': [ ],
- 'cblas': true,
- },
- { 'base': '?max', '_types': ['s', 'd', 'q'],
- 'fname': 'max.c', 'def': [ ], 'undef': [ 'USE_ABS', 'USE_MIN' ],
- },
- { 'base': '?min', '_types': ['s', 'd', 'q'],
- 'fname': 'max.c', 'def': [ 'USE_MIN' ], 'undef': [ 'USE_ABS' ],
- },
- { 'base': '?axpy', '_types': ['s', 'd', 'q'],
- 'fname': 'axpy.c',
- 'cblas': true,
- },
- { 'base': '?axpy', '_types': ['c', 'z', 'x'],
- 'fname': 'zaxpy.c',
- 'cblas': true,
- },
- { 'base': '?axpyc', '_types': ['c', 'z', 'x'],
- 'fname': 'zaxpy.c', 'def': [ 'CONJ' ], 'undef': [ ],
- 'cblas': true,
- },
- { 'base': '?copy', '_types': ['s', 'd', 'q', 'c', 'z', 'x'],
- 'fname': 'copy.c',
- 'cblas': true,
- },
- { 'base': '?dot', '_types': ['s', 'd', 'q'],
- 'fname': 'dot.c',
- 'cblas': true,
- },
- { 'base': '?dotu', '_types': ['c', 'z', 'x'],
- 'fname': 'zdot.c', 'def': [ ], 'undef': [ 'CONJ' ],
- 'cblas': true,
- },
- { 'base': '?dotc', '_types': ['c', 'z', 'x'],
- 'fname': 'zdot.c', 'def': [ 'CONJ' ], 'undef': [ ],
- 'cblas': true,
- },
- { 'base': 'cblas_?dotu_sub', '_types': ['c', 'z'],
- 'fname': 'zdot.c', 'def': [ 'CBLAS', 'FORCE_USE_STACK' ], 'undef': [ 'CONJ' ],
- 'cblas': false, # These don't non-cblas rules Makefile:1623:1627
- },
- { 'base': 'cblas_?dotc_sub', '_types': ['c', 'z'],
- 'fname': 'zdot.c', 'def': [ 'CBLAS', 'FORCE_USE_STACK', 'CONJ' ], 'undef': [ ],
- 'cblas': false, # These don't non-cblas rules Makefile:1623:1627
- },
- { 'base': '?nrm2', '_types': ['s', 'd', 'q',
- 'sc', 'dz', 'qx'],
- 'fname': 'nrm2.c',
- 'cblas': true, # q, qx don't have cblas_ rules Makefile:1635,1645
- },
- { 'base': '?rot', '_types': ['s', 'd', 'q'],
- 'fname': 'rot.c',
- 'cblas': true, # q doesn't have cblas_
- },
- { 'base': '?rot', '_types': ['cs', 'zd', 'xq'],
- 'fname': 'zrot.c',
- 'cblas': true,
- },
- { 'base': '?rotm', '_types': ['s', 'd', 'q'],
- 'fname': 'rotm.c',
- 'cblas': true,
- },
- { 'base': '?rotmg', '_types': ['s', 'd', 'q'],
- 'fname': 'rotmg.c',
- 'cblas': true,
- },
- { 'base': '?rotg', '_types': ['s', 'd', 'q'],
- 'fname': 'rotg.c',
- 'cblas': true,
- },
- { 'base': '?rotg', '_types': ['c', 'z', 'x'],
- 'fname': 'zrotg.c',
- 'cblas': true,
- },
- { 'base': '?scal', '_types': ['s', 'd', 'q'],
- 'fname': 'scal.c',
- 'cblas': true,
- },
- { 'base': '?scal', '_types': ['c', 'z', 'x'],
- 'fname': 'zscal.c',
- 'cblas': true, # x doesn't have cblas_
- },
- { 'base': '?scal', '_types': ['cs', 'zd', 'xq'],
- 'fname': 'zscal.c', 'def': [ 'SSCAL' ], 'undef': [ ],
- 'cblas': true,
- },
- { 'base': '?swap', '_types': ['s', 'd', 'q'],
- 'fname': 'swap.c',
- 'cblas': true,
- },
- { 'base': '?swap', '_types': ['c', 'z', 'x'],
- 'fname': 'zswap.c',
- 'cblas': true,
- },
- { 'base': '?dsdot', '_types': ['s'],
- 'fname': 'sdsdot.c',
- 'cblas': true,
- },
- { 'base': '?dsdot', '_types': [''],
- 'fname': 'dsdot.c',
- 'cblas': true,
- },
- # TODO: Handle BFLOAT16 Makefile 784:795, 1592:1603
- { 'base': 'i?max', '_types': ['s', 'd', 'q', 'c', 'z'], # NOTE: c,z only for cblas, Makefile:1526
- 'fname': 'imax.c', 'def': [ ], 'undef': [ 'USE_ABS', 'USE_MIN' ],
- 'cblas': true, # TODO: Maybe 'cblas_only': ['c', 'z']
- },
- { 'base': 'i?amax', '_types': ['s', 'd', 'q', 'c', 'z', 'x'],
- 'fname': 'imax.c', 'def': [ 'USE_ABS' ], 'undef': [ 'USE_MIN' ],
- 'cblas': true,
- },
- { 'base': 'i?amin', '_types': ['s', 'd', 'c', 'z', 'x'],
- 'fname': 'imax.c', 'def': [ 'USE_ABS', 'USE_MIN' ], 'undef': [ ],
- 'cblas': true,
- },
- { 'base': 'i?min', '_types': ['s', 'd', 'q', 'c', 'z'], # NOTE: c,z only for cblas, Makefile:1532
- 'fname': 'imax.c', 'def': [ 'USE_MIN' ], 'undef': [ 'USE_ABS' ],
- 'cblas': true,
- },
- # Level 2
- { 'base': '?ger', '_types': ['s', 'd', 'q'],
- 'fname': 'ger.c',
- 'cblas': true,
- },
- { 'base': '?geru', '_types': ['c', 'z', 'x'],
- 'fname': 'zger.c', 'def': [ ], 'undef': [ 'CONJ' ],
- 'cblas': true,
- },
- { 'base': '?gerc', '_types': ['c', 'z', 'x'],
- 'fname': 'zger.c', 'def': [ 'CONJ' ], 'undef': [ ],
- 'cblas': true,
- },
- # TODO: Handle BFLOAT16 Makefile 941:944
- # TODO: Handle Netlib_gemv Makefile 946:958
- { 'base': '?gemv', '_types': ['s', 'd', 'q'],
- 'fname': 'gemv.c',
- 'cblas': true,
- },
- { 'base': '?gemv', '_types': ['c', 'z', 'x'],
- 'fname': 'zgemv.c',
- 'cblas': true,
- },
- { 'base': '?trmv', '_types': ['s', 'd', 'q'],
- 'fname': 'trmv.c',
- 'cblas': true,
- },
- { 'base': '?trmv', '_types': ['c', 'z', 'x'],
- 'fname': 'ztrmv.c',
- 'cblas': true,
- },
- { 'base': '?trsv', '_types': ['s', 'd', 'q'],
- 'fname': 'trsv.c',
- 'cblas': true,
- },
- { 'base': '?trsv', '_types': ['c', 'z', 'x'],
- 'fname': 'ztrsv.c',
- 'cblas': true,
- },
- # TODO: Handle NO_LAPACK
- { 'base': '?symv', '_types': ['s', 'd', 'q'],
- 'fname': 'symv.c',
- 'cblas': true,
- },
- { 'base': '?symv', '_types': ['c', 'z', 'x'],
- 'fname': 'zsymv.c',
- 'cblas': false, # NOTE: This oddly has no cblas set..
- },
- { 'base': '?syr', '_types': ['s', 'd', 'q'],
- 'fname': 'syr.c',
- 'cblas': true,
- },
- { 'base': '?syr', '_types': ['c', 'z', 'x'],
- 'fname': 'zsyr.c',
- 'cblas': false, # NOTE: This oddly has no cblas set..
- },
- { 'base': '?syr2', '_types': ['s', 'd', 'q'],
- 'fname': 'syr2.c',
- 'cblas': true,
- },
- { 'base': '?syr2', '_types': ['c', 'z', 'x'],
- 'fname': 'zsyr2.c',
- 'cblas': false, # NOTE: This oddly has no cblas set..
- },
- { 'base': '?gbmv', '_types': ['s', 'd', 'q'],
- 'fname': 'gbmv.c',
- 'cblas': true,
- },
- { 'base': '?gbmv', '_types': ['c', 'z', 'x'],
- 'fname': 'zgbmv.c',
- 'cblas': true,
- },
- { 'base': '?sbmv', '_types': ['s', 'd', 'q'],
- 'fname': 'sbmv.c',
- 'cblas': true,
- },
- { 'base': '?sbmv', '_types': ['c', 'z', 'x'],
- 'fname': 'zsbmv.c',
- 'cblas': false, # NOTE: This oddly has no cblas set..
- },
- { 'base': '?spmv', '_types': ['s', 'd', 'q'],
- 'fname': 'spmv.c',
- 'cblas': true,
- },
- # TODO: NO_LAPACK
- { 'base': '?spmv', '_types': ['c', 'z', 'x'],
- 'fname': 'zspmv.c',
- 'cblas': false, # NOTE: This oddly has no cblas set..
- },
- { 'base': '?spr', '_types': ['s', 'd', 'q'],
- 'fname': 'spr.c',
- 'cblas': true,
- },
- { 'base': '?spr', '_types': ['c', 'z', 'x'],
- 'fname': 'zspr.c',
- 'cblas': false, # NOTE: This oddly has no cblas set..
- },
- { 'base': '?spr2', '_types': ['s', 'd', 'q'],
- 'fname': 'spr2.c',
- 'cblas': true,
- },
- { 'base': '?spr2', '_types': ['c', 'z', 'x'],
- 'fname': 'zspr2.c',
- 'cblas': false, # NOTE: This oddly has no cblas set..
- },
- { 'base': '?tbmv', '_types': ['s', 'd', 'q'],
- 'fname': 'tbmv.c',
- 'cblas': true,
- },
- { 'base': '?tbmv', '_types': ['c', 'z', 'x'],
- 'fname': 'ztbmv.c',
- 'cblas': true,
- },
- { 'base': '?tbsv', '_types': ['s', 'd', 'q'],
- 'fname': 'tbsv.c',
- 'cblas': true,
- },
- { 'base': '?tbsv', '_types': ['c', 'z', 'x'],
- 'fname': 'ztbsv.c',
- 'cblas': true,
- },
- { 'base': '?tpsv', '_types': ['s', 'd', 'q'],
- 'fname': 'tpsv.c',
- 'cblas': true,
- },
- { 'base': '?tpsv', '_types': ['c', 'z', 'x'],
- 'fname': 'ztpsv.c',
- 'cblas': true,
- },
- { 'base': '?tpmv', '_types': ['s', 'd', 'q'],
- 'fname': 'tpmv.c',
- 'cblas': true,
- },
- { 'base': '?tpmv', '_types': ['c', 'z', 'x'],
- 'fname': 'ztpmv.c',
- 'cblas': true,
- },
- { 'base': '?hemv', '_types': ['c', 'z', 'x'],
- 'fname': 'zhemv.c',
- 'cblas': true,
- },
- { 'base': '?hbmv', '_types': ['c', 'z', 'x'],
- 'fname': 'zhbmv.c',
- 'cblas': true,
- },
- { 'base': '?her', '_types': ['c', 'z', 'x'],
- 'fname': 'zher.c',
- 'cblas': true,
- },
- { 'base': '?her2', '_types': ['c', 'z', 'x'],
- 'fname': 'zher2.c',
- 'cblas': true,
- },
- { 'base': '?hpmv', '_types': ['c', 'z', 'x'],
- 'fname': 'zhpmv.c',
- 'cblas': true,
- },
- { 'base': '?hpr', '_types': ['c', 'z', 'x'],
- 'fname': 'zhpr.c',
- 'cblas': true,
- },
- { 'base': '?hpr2', '_types': ['c', 'z', 'x'],
- 'fname': 'zhpr2.c',
- 'cblas': true,
- },
- # TODO: BUILD_BFLOAT16 here, Makefile:1303
- { 'base': '?gemm', '_types': ['s', 'd', 'q',
- 'c', 'z', 'x'],
- 'fname': ['gemm.c', '../param.h'], # TODO: Will this work?
- 'cblas': true,
- },
- { 'base': '?gemmt', '_types': ['s', 'd', 'q',
- 'c', 'z', 'x'],
- 'fname': ['gemmt.c', '../param.h'],
- 'cblas': true,
- },
- { 'base': '?symm', '_types': ['s', 'd', 'q',
- 'c', 'z', 'x'],
- 'fname': 'symm.c',
- 'cblas': true,
- },
- { 'base': '?trmm', '_types': ['s', 'd', 'q',
- 'c', 'z', 'x'],
- 'fname': 'trsm.c', 'def': [ 'TRMM' ], 'undef': [ ],
- 'cblas': true,
- },
- { 'base': '?trsm', '_types': ['s', 'd', 'q',
- 'c', 'z', 'x'],
- 'fname': 'trsm.c',
- 'cblas': true,
- },
- { 'base': '?syrk', '_types': ['s', 'd', 'q',
- 'c', 'z', 'x'],
- 'fname': 'syrk.c',
- 'cblas': true,
- },
- { 'base': '?syr2k', '_types': ['s', 'd', 'q',
- 'c', 'z', 'x'],
- 'fname': 'syr2k.c',
- 'cblas': true,
- },
- { 'base': '?hemm', '_types': ['c', 'z', 'x'],
- 'fname': 'symm.c', 'def': [ 'HEMM' ], 'undef': [ ],
- 'cblas': true,
- },
- { 'base': '?herk', '_types': ['c', 'z', 'x'],
- 'fname': 'syrk.c', 'def': [ 'HEMM' ], 'undef': [ ],
- 'cblas': true,
- },
- { 'base': '?her2k', '_types': ['c', 'z', 'x'],
- 'fname': 'syr2k.c', 'def': [ 'HEMM' ], 'undef': [ ],
- 'cblas': true,
- },
- { 'base': '?gemm3m', '_types': ['c', 'z', 'x'],
- 'fname': 'gemm.c', 'def': [ 'GEMM3M' ], 'undef': [ ],
- 'cblas': true,
- },
- { 'base': '?symm3m', '_types': ['c', 'z', 'x'],
- 'fname': 'symm.c', 'def': [ 'GEMM3M' ], 'undef': [ ],
- },
- { 'base': '?hemm3m', '_types': ['c', 'z', 'x'],
- 'fname': 'symm.c', 'def': [ 'HEMM', 'GEMM3M' ], 'undef': [ ],
- },
- { 'base': '?getf2', '_types': ['s', 'd'],
- 'fname': 'lapack/getf2.c',
- },
- # TODO: Makefile: 2074:2076 but doesn't exist
- # { 'base': '?getf2', '_types': ['q'],
- # 'fname': 'getf2.c',
- # },
- { 'base': '?getf2', '_types': ['c', 'z'],
- 'fname': 'lapack/zgetf2.c',
- },
- # TODO: Makefile: 2083:2085 but doesn't exist
- # { 'base': '?getf2', '_types': ['x'],
- # 'fname': 'zgetf2.c',
- # },
- { 'base': '?getrf', '_types': ['s', 'd'],
- 'fname': 'lapack/getrf.c',
- },
- # TODO: Not built, as are the other commented xdouble ones
- # { 'base': '?getrf', '_types': ['q'],
- # 'fname': 'getrf.c',
- # },
- { 'base': '?getrf', '_types': ['c', 'z'],
- 'fname': 'lapack/zgetrf.c',
- },
- # { 'base': '?getrf', '_types': ['x'],
- # 'fname': 'zgetrf.c',
- # },
- { 'base': '?lauu2', '_types': ['s', 'd'],
- 'fname': 'lapack/lauu2.c',
- },
- # { 'base': '?lauu2', '_types': ['q'],
- # 'fname': 'lauu2.c',
- # },
- { 'base': '?lauu2', '_types': ['c', 'z'],
- 'fname': 'lapack/zlauu2.c',
- },
- # { 'base': '?lauu2', '_types': ['x'],
- # 'fname': 'zlauu2.c',
- # },
- { 'base': '?lauum', '_types': ['s', 'd'],
- 'fname': 'lapack/lauum.c',
- },
- # { 'base': '?lauum', '_types': ['q'],
- # 'fname': 'lauum.c',
- # },
- { 'base': '?lauum', '_types': ['c', 'z'],
- 'fname': 'lapack/zlauum.c',
- },
- # { 'base': '?lauum', '_types': ['x'],
- # 'fname': 'zlauum.c',
- # },
- { 'base': '?potf2', '_types': ['s', 'd'],
- 'fname': 'lapack/potf2.c',
- },
- # { 'base': '?potf2', '_types': ['q'],
- # 'fname': 'potf2.c',
- # },
- { 'base': '?potf2', '_types': ['c', 'z'],
- 'fname': 'lapack/zpotf2.c',
- },
- # { 'base': '?potf2', '_types': ['x'],
- # 'fname': 'zpotf2.c',
- # },
- { 'base': '?potrf', '_types': ['s', 'd'],
- 'fname': 'lapack/potrf.c',
- },
- # { 'base': '?potrf', '_types': ['q'],
- # 'fname': 'potrf.c',
- # },
- { 'base': '?potrf', '_types': ['c', 'z'],
- 'fname': 'lapack/zpotrf.c',
- },
- # { 'base': '?potrf', '_types': ['x'],
- # 'fname': 'zpotrf.c',
- # },
- { 'base': '?trti2', '_types': ['s', 'd'],
- 'fname': 'lapack/trti2.c',
- },
- # { 'base': '?trti2', '_types': ['q'],
- # 'fname': 'trti2.c',
- # },
- { 'base': '?trti2', '_types': ['c', 'z'],
- 'fname': 'lapack/ztrti2.c',
- },
- # { 'base': '?trti2', '_types': ['x'],
- # 'fname': 'ztrti2.c',
- # },
- # { 'base': '?trti', '_types': ['s', 'd'],
- # 'fname': 'lapack/trti.c',
- # },
- # { 'base': '?trti', '_types': ['q'],
- # 'fname': 'trti.c',
- # },
- # { 'base': '?trti', '_types': ['c', 'z'],
- # 'fname': 'lapack/ztrti.c',
- # },
- # { 'base': '?trti', '_types': ['x'],
- # 'fname': 'ztrti.c',
- # },
- { 'base': '?laswp', '_types': ['s', 'd'],
- 'fname': 'lapack/laswp.c',
- },
- # { 'base': '?laswp', '_types': ['q'],
- # 'fname': 'laswp.c',
- # },
- { 'base': '?laswp', '_types': ['c', 'z'],
- 'fname': 'lapack/zlaswp.c',
- },
- # { 'base': '?laswp', '_types': ['x'],
- # 'fname': 'zlaswp.c',
- # },
- { 'base': '?getrs', '_types': ['s', 'd', 'q'],
- 'fname': 'lapack/getrs.c',
- },
- { 'base': '?getrs', '_types': ['c', 'z', 'x'],
- 'fname': 'lapack/zgetrs.c',
- },
- { 'base': '?trtrs', '_types': ['s', 'd', 'q'],
- 'fname': 'lapack/trtrs.c',
- },
- { 'base': '?trtrs', '_types': ['c', 'z', 'x'],
- 'fname': 'lapack/ztrtrs.c',
- },
- { 'base': '?gesv', '_types': ['s', 'd', 'c', 'z'],
- 'fname': 'lapack/gesv.c',
- },
- # { 'base': '?gesv', '_types': ['q'],
- # 'fname': 'gesv.c',
- # },
- # { 'base': '?gesv', '_types': ['x'],
- # 'fname': 'zgesv.c',
- # },
- { 'base': '?potri', '_types': ['s', 'd'],
- 'fname': 'lapack/potri.c',
- },
- # { 'base': '?potri', '_types': ['q'],
- # 'fname': 'potri.c',
- # },
- # BUG: potri is broken
- # { 'base': '?potri', '_types': ['c', 'z'],
- # 'fname': 'lapack/zpotri.c',
- # },
- # { 'base': '?potri', '_types': ['x'],
- # 'fname': 'zpotri.c',
- # },
- # NOTE: Where are these?
- # { 'base': '?larf', '_types': ['s', 'd', 'q',
- # 'c', 'z', 'x'],
- # 'fname': 'larf.c',
- # },
- # BLAS Extensions
- { 'base': '?axpby', '_types': ['s', 'd'],
- 'fname': 'axpby.c',
- 'cblas': true,
- },
- { 'base': '?axpby', '_types': ['c', 'z'],
- 'fname': 'zaxpby.c',
- 'cblas': true,
- },
- { 'base': '?omatcopy', '_types': ['s', 'd'],
- 'fname': 'omatcopy.c',
- 'cblas': true,
- },
- { 'base': '?omatcopy', '_types': ['c', 'z'],
- 'fname': 'zomatcopy.c',
- 'cblas': true,
- },
- { 'base': '?imatcopy', '_types': ['s', 'd'],
- 'fname': 'imatcopy.c',
- 'cblas': true,
- },
- { 'base': '?imatcopy', '_types': ['c', 'z'],
- 'fname': 'zimatcopy.c',
- 'cblas': true,
- },
- { 'base': '?geadd', '_types': ['s', 'd'],
- 'fname': 'geadd.c',
- 'cblas': true,
- },
- { 'base': '?geadd', '_types': ['c', 'z'],
- 'fname': 'zgeadd.c',
- 'cblas': true,
- },
- { 'base': '?xerbla', '_types': [''],
- 'fname': 'xerbla.c',
- 'cblas': true,
- },
- ]
-
- _interface_libs = []
- foreach conf : _blas_roots
- foreach type : conf['_types']
- if 'q' in type or 'x' in type
- # TODO: Figure out when to build these
- # These are the XDOUBLE symbols
- continue
- endif
- # Seed with common args
- compiler_args = [_cargs]
- # Set the type arguments
- if precision_mappings.get(type).has_key('def')
- foreach d : precision_mappings[type]['def']
- compiler_args += ['-D' + d]
- endforeach
- endif
- if precision_mappings.get(type).has_key('undef')
- foreach u : precision_mappings[type]['undef']
- compiler_args += ['-U' + u]
- endforeach
- endif
-
- # Construct the actual symbol names, and mangled symbols
- # TODO: This might be conditional on other options
- sym_name = conf['base'].replace('?', type)
- sym_underscored = f'@sym_name@_'
- if conf.get('cblas', false)
- cblas_sym_name = 'cblas_' + sym_name
- cblas_sym_underscored = f'@cblas_sym_name@_'
- endif
-
- # Construct conditionals
- if conf.has_key('def')
- foreach d : conf['def']
- compiler_args += ['-D' + d]
- endforeach
- foreach u : conf['undef']
- compiler_args += ['-U' + u]
- endforeach
- endif
-
- # Make mangled symbols
- # TODO: This might be conditional on other options
-
- # Create the static library for each symbol
- lib = static_library(
- sym_name,
- sources: conf['fname'],
- include_directories: _inc,
- c_args: compiler_args + [
- f'-DASMNAME=@sym_name@',
- f'-DASMFNAME=@sym_underscored@',
- f'-DNAME=@sym_underscored@',
- f'-DCNAME=@sym_name@',
- f'-DCHAR_NAME="@sym_underscored@"',
- f'-DCHAR_CNAME="@sym_name@"'
- ]
- )
- _interface_libs += lib
-
- # If it's a CBLAS symbol, also create that
- if conf.get('cblas', false)
- if 'q' in type or 'x' in type
- # There are no cblas_q symbols
- # TODO: Handle edge cases around dz zd sc
- continue
- endif
- cblas_lib = static_library(
- cblas_sym_name,
- sources: conf['fname'],
- include_directories: _inc,
- c_args: compiler_args + [
- '-DCBLAS',
- f'-DASMNAME=@cblas_sym_name@',
- f'-DASMFNAME=@cblas_sym_underscored@',
- f'-DNAME=@cblas_sym_underscored@',
- f'-DCNAME=@cblas_sym_name@',
- f'-DCHAR_NAME="@cblas_sym_underscored@"',
- f'-DCHAR_CNAME="@cblas_sym_name@"'
- ]
- )
- _interface_libs += cblas_lib
- endif
- endforeach
- endforeach
-
- # Create a combined static library linking all individual static libraries
- _interface = static_library('_interface', link_whole: _interface_libs)
|