#######################################################################
#  This is the makefile to create a library for the BLAS.
#  The files are grouped as follows:
#
#       SBLAS1 -- Single precision real BLAS routines
#       CBLAS1 -- Single precision complex BLAS routines
#
#       CB1AUX -- Real BLAS routines called by complex routines
#
#       SBLAS2 -- Single precision real BLAS2 routines
#       CBLAS2 -- Single precision complex BLAS2 routines
#
#       SBLAS3 -- Single precision real BLAS3 routines
#       CBLAS3 -- Single precision complex BLAS3 routines
#
#######################################################################

#---------------------------------------------------------
#  Level 1 BLAS
#---------------------------------------------------------
set(SBLAS1 isamax.c sasum.c saxpy.c scopy.c sdot.c snrm2.c
	srot.c srotg.c sscal.c sswap.c sdsdot.c srotmg.c srotm.c)

set(CBLAS1 scabs1.c scasum.c scnrm2.c icamax.c caxpy.c ccopy.c
	cdotc.c cdotu.c csscal.c crotg.c cscal.c cswap.c csrot.c)

set(CB1AUX isamax.c sasum.c saxpy.c scopy.c snrm2.c sscal.c)

#---------------------------------------------------------
#  Level 2 BLAS
#---------------------------------------------------------
set(SBLAS2 sgemv.c sgbmv.c ssymv.c ssbmv.c sspmv.c
	strmv.c stbmv.c stpmv.c strsv.c stbsv.c stpsv.c
	sger.c ssyr.c sspr.c ssyr2.c sspr2.c)

set(CBLAS2 cgemv.c cgbmv.c chemv.c chbmv.c chpmv.c
	ctrmv.c ctbmv.c ctpmv.c ctrsv.c ctbsv.c ctpsv.c
	cgerc.c cgeru.c cher.c chpr.c cher2.c chpr2.c)

#---------------------------------------------------------
#  Level 3 BLAS
#---------------------------------------------------------
set(SBLAS3 sgemm.c ssymm.c ssyrk.c ssyr2k.c strmm.c strsm.c)

set(CBLAS3 cgemm.c csymm.c csyrk.c csyr2k.c ctrmm.c ctrsm.c
	chemm.c cherk.c cher2k.c)

list(TRANSFORM SBLAS1 PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/)
list(TRANSFORM SBLAS2 PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/)
list(TRANSFORM SBLAS3 PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/)
list(TRANSFORM CBLAS1 PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/)
list(TRANSFORM CBLAS2 PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/)
list(TRANSFORM CBLAS3 PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/)
list(TRANSFORM CB1AUX PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/)

set(SBLAS1 ${SBLAS1} PARENT_SCOPE)
set(SBLAS2 ${SBLAS2} PARENT_SCOPE)
set(SBLAS3 ${SBLAS3} PARENT_SCOPE)
set(CBLAS1 ${CBLAS1} PARENT_SCOPE)
set(CBLAS2 ${CBLAS2} PARENT_SCOPE)
set(CBLAS3 ${CBLAS3} PARENT_SCOPE)
set(CB1AUX ${CB1AUX} PARENT_SCOPE)