_kinds = [] real_kinds = ['s', 'd'] if get_option('exprecision') real_kinds += 'q' endif complex_kinds = ['c', 'z', 'x'] extended_kinds = ['dx', 'bf16'] _rules = { 's': ['FLOAT'], 'd': ['DOUBLE'], 'q': ['QUAD_PRECISION'], 'c': ['COMPLEX'], 'dx': ['XDOUBLE'], 'bf19': ['BFLOAT16'], } blas_roots = [] blas1_roots = [ # These don't exist as roots. # ismax amax isamax amin ismin isamin # TODO: Why is dsdot in sblas1objs!? 'axpy', 'swap', 'copy', 'scal', 'dot', 'dsdot', 'asum', 'sum', 'nrm2', 'max', 'rot', 'rotg', 'rotm', 'rotmg', 'axpby', ] blas2_roots = [ 'gemv', 'ger', 'trsv', 'trmv', 'symv', 'syr', 'syr2', 'gbmv', 'sbmv', 'spmv', 'spr', 'spr2', 'tbsv', 'tbmv', 'tpsv', 'tpmv', ] blas3_roots = [ # TODO: trmm is trsm with a flag 'gemm', 'symm', 'trsm', 'syrk', 'syr2k', 'omatcopy', 'imatcopy', 'geadd', 'gemmt' ] # addl_srcs = { # 'symm': '-DHEMM' # } # Generated # NOTE: Remember to check sourcesets as a simpler mechanism # TODO: Generated the imax and max via use_abs use_min interface_confs = [] blas_roots += blas1_roots blas_roots += blas2_roots blas_roots += blas3_roots _kinds += real_kinds foreach root : blas_roots fname = root + '.c' defs = [] # if root in addl_srcs # defs += addl_srcs[root] # endif foreach prec : real_kinds name = prec + fname interface_confs += {'defs': defs, 'name': name, 'src': fname} endforeach endforeach # if get_option('bfloat16') # TODO: Handle bfloat16 # sblas1_srcs += files('sbdot.c') # sblas2_srcs += files('sbgemv.c') # sblas3_srcs += files(['sbgemm.c', 'sbgemmt.c']) # endif interface_confs += { 'name': 'cblas_drot', 'defs': ['-DCBLAS'], 'src': files('rot.c') } _static_libs = [] # foreach conf: interface_confs # _static_libs += static_library( # conf['name'], # conf['src'], # include_directories: _inc, # c_args: conf['defs'], # ) # endforeach _static_libs += static_library( 'cblas_drot', 'rot.c', include_directories: _inc, c_args: [_cargs, '-DASMNAME=cblas_drot', '-DASMFNAME=cblas_drot_', '-DNAME=cblas_drot_', '-DCNAME=cblas_drot', '-DCHAR_NAME="cblas_drot_"', '-DCHAR_CNAME="cblas_drot"', '-DDOUBLE', '-UCOMPLEX',], ) _interface = static_library('_interface', c_args: _cargs, link_whole: _static_libs)