################################################################################################
##
##  Innovative Computing Laboratory - Computer Science Department - University of Tennessee
##  Written by Jakub Kurzak
##
################################################################################################

include make.inc

#-----------------------------------------------------------------------------------------------

all:
	 (cd ppu; make; cd ..)
	 (cd spu; make; cd ..)


	 $(SPU_XLC) -o spu/spu_blas                     \
                                                        \
                spu/spu_barrier.o                       \
                spu/spu_blas.o                          \
                spu/spu_blocked_format.o                \
                spu/spu_comm.o                          \
                spu/spu_convert.o                       \
                spu/spu_dgemm.o                         \
                spu/spu_spotrf.o                        \
                spu/spu_strsm_1rhs_trans.o              \
                spu/spu_strsm_1rhs_notrans.o            \
                                                        \
                spu/spu_sgemm_tile.o                    \
                spu/spu_ssyrk_tile.o                    \
                spu/spu_strsm_tile.o                    \
                spu/spu_spotrf_tile.o                   \


	 $(PPU_MBD) -m32 spu_blas spu/spu_blas spu/spu_blas_embed.o
	 $(PPU_AR)  -qcs spu/spu_blas_lib.a spu/spu_blas_embed.o


	 $(PPU_GCC) -m32 -o ppu/iter_ref_cholesky       \
                                                        \
                ppu/ppu_sgemm.o                         \
                ppu/ppu_ssyrk.o                         \
                ppu/ppu_strsm.o                         \
                ppu/ppu_spotrf.o                        \
                                                        \
                ppu/iter_ref_cholesky.o                 \
                ppu/ppu_blas.o                          \
                ppu/ppu_timer.o                         \
                spu/spu_blas_lib.a $(PPU_LIB) -lspe -lm


	 mv ppu/iter_ref_cholesky ./iter_ref_cholesky

#-----------------------------------------------------------------------------------------------

clean:
	rm -f iter_ref_cholesky
	(cd ppu; make clean; cd ..)
	(cd spu; make clean; cd ..)

################################################################################################
