###
#
# @file Makefile
#
#  PLASMA is a software package provided by Univ. of Tennessee,
#  Univ. of California Berkeley and Univ. of Colorado Denver
#
# @version 2.2.0
# @author Bilel Hadri
# @author Hatem Ltaief
# @date 2009-11-15
#
###

PLASMA_DIR = ..
include ../Makefile.internal

NAMES  = main gesv gels posv gemm syrk symm
MNAMES = gesv ungesv posv

# testing_dsgesv.c testing_dsungesv.c testing_dsposv.c
ZSRC  = $(NAMES:%=testing_z%.c) testing_zherk.c testing_zhemm.c
CSRC  = $(NAMES:%=testing_c%.c) testing_cherk.c testing_chemm.c
DSRC  = $(NAMES:%=testing_d%.c) 
SSRC  = $(NAMES:%=testing_s%.c)
ZCSRC = $(MNAMES:%=testing_zc%.c)
DSSRC = $(MNAMES:%=testing_ds%.c)

MSRC  = $(ZCSRC) $(DSSRC)
MEXE  = $(MSRC:.c=)

ZOBJ = $(ZSRC:.c=.o)
COBJ = $(CSRC:.c=.o)
DOBJ = $(DSRC:.c=.o) 
SOBJ = $(SSRC:.c=.o)
ZCOBJ = $(ZSSRC:.c=.o)
DSOBJ = $(DSSRC:.c=.o)

SRC = $(ZSRC) $(CSRC) $(DSRC) $(SSRC) $(ZCSRC) $(DSSRC)
OBJ = $(SRC:.c=.o)
EXE = ztesting ctesting dtesting stesting $(MEXE)

all: $(EXE) $(MEXE)

clean:
	rm -f $(OBJ) *~

cleanall: clean
	rm -f $(EXE)

.c.o:
	$(CC) $(CFLAGS) $(INC) -c $< -o $@

.f.o:
	$(FC) $(FFLAGS) $(INC) -c $< -o $@

ztesting : testing_zmain.h $(ZOBJ) $(LIBCOREBLAS) $(LIBPLASMA) $(QUARKDIR)/libquark.a
	$(LOADER) $(LDFLAGS) $(ZOBJ) -o $@ $(LIB)

ctesting : testing_cmain.h $(COBJ) $(LIBCOREBLAS) $(LIBPLASMA) $(QUARKDIR)/libquark.a
	$(LOADER) $(LDFLAGS) $(COBJ) -o $@ $(LIB)

dtesting : testing_dmain.h $(DOBJ) $(LIBCOREBLAS) $(LIBPLASMA) $(QUARKDIR)/libquark.a
	$(LOADER) $(LDFLAGS) $(DOBJ) -o $@ $(LIB)

stesting : testing_smain.h $(SOBJ) $(LIBCOREBLAS) $(LIBPLASMA) $(QUARKDIR)/libquark.a
	$(LOADER) $(LDFLAGS) $(SOBJ) -o $@ $(LIB)

testing_% : testing_%.o $(LIBCOREBLAS) $(LIBPLASMA) $(QUARKDIR)/libquark.a
	$(LOADER) $(LDFLAGS) $< -o $@ $(LIB)

.PHONY: clean

