include Make.inc
mySRCdir = $(SRCdir)/src/threads/blas/level3

all : lib
lib : ilib dlib slib zlib clib
double    : dlib
single    : slib
complex   : clib
complex16 : zlib
clean : iclean dclean sclean cclean zclean

deps = $(INCSdir)/atlas_misc.h $(INCAdir)/atlas_type.h \
       $(INCSdir)/atlas_lvl3.h $(INCSdir)/atlas_tlvl3.h \
       $(INCAdir)/atlas_pthreads.h $(INCSdir)/atlas_threads.h

iobj = ATL_Xtsyrk.o ATL_Xtsyr2k.o ATL_Xtgemm.o

iclean:
	rm -f $(iobj) ilib.grd
ilib : ilib.grd
ilib.grd : $(iobj)
	$(ARCHIVER) $(ARFLAGS) $(ATLASlib) $(iobj)
	$(RANLIB) $(ATLASlib)
	touch ilib.grd

ATL_Xtgemm.o : $(deps) $(mySRCdir)/ATL_Xtgemm.c
	$(ICC) $(ICCFLAGS) -o $@ -c $(mySRCdir)/ATL_Xtgemm.c
ATL_Xtsyr2k.o : $(deps) $(mySRCdir)/ATL_Xtsyr2k.c
	$(ICC) $(ICCFLAGS) -o $@ -c $(mySRCdir)/ATL_Xtsyr2k.c
ATL_Xtsyrk.o : $(deps) $(mySRCdir)/ATL_Xtsyrk.c
	$(ICC) $(ICCFLAGS) -o $@ -c $(mySRCdir)/ATL_Xtsyrk.c

sINCdep = $(deps) $(INCAdir)/smm.h

sobj = ATL_stNumGemmThreads.o ATL_stsymm.o ATL_sttrmm.o ATL_sttrsm.o \
       ATL_stsyrk.o ATL_stsyr2k.o ATL_stgemm.o

slib : slib.grd ilib.grd
slib.grd : $(sobj)
	$(ARCHIVER) $(ARFLAGS) $(ATLASlib) $(sobj)
	$(RANLIB) $(ATLASlib)
	touch slib.grd
sclean:
	rm -f $(sobj) slib.grd

ATL_stgemm.o : $(deps) $(mySRCdir)/ATL_tgemm.c
	$(ICC) $(ICCFLAGS) -DSREAL -o $@ -c $(mySRCdir)/ATL_tgemm.c
ATL_stsyr2k.o : $(deps) $(mySRCdir)/ATL_tsyr2k.c
	$(ICC) $(ICCFLAGS) -DSREAL -o $@ -c $(mySRCdir)/ATL_tsyr2k.c
ATL_stsyrk.o : $(deps) $(mySRCdir)/ATL_tsyrk.c
	$(ICC) $(ICCFLAGS) -DSREAL -o $@ -c $(mySRCdir)/ATL_tsyrk.c
ATL_sttrsm.o : $(deps) $(mySRCdir)/ATL_ttrsm.c
	$(ICC) $(ICCFLAGS) -DSREAL -o $@ -c $(mySRCdir)/ATL_ttrsm.c
ATL_sttrmm.o : $(deps) $(mySRCdir)/ATL_ttrmm.c
	$(ICC) $(ICCFLAGS) -DSREAL -o $@ -c $(mySRCdir)/ATL_ttrmm.c
ATL_stsymm.o : $(deps) $(mySRCdir)/ATL_tsymm.c
	$(ICC) $(ICCFLAGS) -DSREAL -o $@ -c $(mySRCdir)/ATL_tsymm.c
ATL_stNumGemmThreads.o : $(deps) $(mySRCdir)/ATL_tNumGemmThreads.c
	$(ICC) $(ICCFLAGS) -DSREAL -o $@ -c $(mySRCdir)/ATL_tNumGemmThreads.c

ATL_stgemm_CE.o : $(deps) slib $(mySRCdir)/ATL_tgemm.c
	$(ICC) $(ICCFLAGS) -DSREAL -DFindingCE -o $@ \
               -c $(mySRCdir)/ATL_tgemm.c
dINCdep = $(deps) $(INCAdir)/dmm.h

dobj = ATL_dtNumGemmThreads.o ATL_dtsymm.o ATL_dttrmm.o ATL_dttrsm.o \
       ATL_dtsyrk.o ATL_dtsyr2k.o ATL_dtgemm.o

dlib : dlib.grd ilib.grd
dlib.grd : $(dobj)
	$(ARCHIVER) $(ARFLAGS) $(ATLASlib) $(dobj)
	$(RANLIB) $(ATLASlib)
	touch dlib.grd
dclean:
	rm -f $(dobj) dlib.grd

ATL_dtgemm.o : $(deps) $(mySRCdir)/ATL_tgemm.c
	$(ICC) $(ICCFLAGS) -DDREAL -o $@ -c $(mySRCdir)/ATL_tgemm.c
ATL_dtsyr2k.o : $(deps) $(mySRCdir)/ATL_tsyr2k.c
	$(ICC) $(ICCFLAGS) -DDREAL -o $@ -c $(mySRCdir)/ATL_tsyr2k.c
ATL_dtsyrk.o : $(deps) $(mySRCdir)/ATL_tsyrk.c
	$(ICC) $(ICCFLAGS) -DDREAL -o $@ -c $(mySRCdir)/ATL_tsyrk.c
ATL_dttrsm.o : $(deps) $(mySRCdir)/ATL_ttrsm.c
	$(ICC) $(ICCFLAGS) -DDREAL -o $@ -c $(mySRCdir)/ATL_ttrsm.c
ATL_dttrmm.o : $(deps) $(mySRCdir)/ATL_ttrmm.c
	$(ICC) $(ICCFLAGS) -DDREAL -o $@ -c $(mySRCdir)/ATL_ttrmm.c
ATL_dtsymm.o : $(deps) $(mySRCdir)/ATL_tsymm.c
	$(ICC) $(ICCFLAGS) -DDREAL -o $@ -c $(mySRCdir)/ATL_tsymm.c
ATL_dtNumGemmThreads.o : $(deps) $(mySRCdir)/ATL_tNumGemmThreads.c
	$(ICC) $(ICCFLAGS) -DDREAL -o $@ -c $(mySRCdir)/ATL_tNumGemmThreads.c

ATL_dtgemm_CE.o : $(deps) dlib $(mySRCdir)/ATL_tgemm.c
	$(ICC) $(ICCFLAGS) -DDREAL -DFindingCE -o $@ \
               -c $(mySRCdir)/ATL_tgemm.c
cINCdep = $(deps) $(INCAdir)/cmm.h

cobj = ATL_ctNumGemmThreads.o ATL_ctsymm.o ATL_cttrmm.o ATL_cttrsm.o \
       ATL_ctsyrk.o ATL_ctsyr2k.o ATL_ctgemm.o ATL_ctherk.o ATL_cthemm.o \
       ATL_cther2k.o

clib : clib.grd ilib.grd
clib.grd : $(cobj)
	$(ARCHIVER) $(ARFLAGS) $(ATLASlib) $(cobj)
	$(RANLIB) $(ATLASlib)
	touch clib.grd
cclean:
	rm -f $(cobj) clib.grd

ATL_cther2k.o : $(deps) $(mySRCdir)/ATL_ther2k.c
	$(ICC) $(ICCFLAGS) -DSCPLX -o $@ -c $(mySRCdir)/ATL_ther2k.c
ATL_cthemm.o : $(deps) $(mySRCdir)/ATL_themm.c
	$(ICC) $(ICCFLAGS) -DSCPLX -o $@ -c $(mySRCdir)/ATL_themm.c
ATL_ctherk.o : $(deps) $(mySRCdir)/ATL_therk.c
	$(ICC) $(ICCFLAGS) -DSCPLX -o $@ -c $(mySRCdir)/ATL_therk.c
ATL_ctgemm.o : $(deps) $(mySRCdir)/ATL_tgemm.c
	$(ICC) $(ICCFLAGS) -DSCPLX -o $@ -c $(mySRCdir)/ATL_tgemm.c
ATL_ctsyr2k.o : $(deps) $(mySRCdir)/ATL_tsyr2k.c
	$(ICC) $(ICCFLAGS) -DSCPLX -o $@ -c $(mySRCdir)/ATL_tsyr2k.c
ATL_ctsyrk.o : $(deps) $(mySRCdir)/ATL_tsyrk.c
	$(ICC) $(ICCFLAGS) -DSCPLX -o $@ -c $(mySRCdir)/ATL_tsyrk.c
ATL_cttrsm.o : $(deps) $(mySRCdir)/ATL_ttrsm.c
	$(ICC) $(ICCFLAGS) -DSCPLX -o $@ -c $(mySRCdir)/ATL_ttrsm.c
ATL_cttrmm.o : $(deps) $(mySRCdir)/ATL_ttrmm.c
	$(ICC) $(ICCFLAGS) -DSCPLX -o $@ -c $(mySRCdir)/ATL_ttrmm.c
ATL_ctsymm.o : $(deps) $(mySRCdir)/ATL_tsymm.c
	$(ICC) $(ICCFLAGS) -DSCPLX -o $@ -c $(mySRCdir)/ATL_tsymm.c
ATL_ctNumGemmThreads.o : $(deps) $(mySRCdir)/ATL_tNumGemmThreads.c
	$(ICC) $(ICCFLAGS) -DSCPLX -o $@ -c $(mySRCdir)/ATL_tNumGemmThreads.c

ATL_ctgemm_CE.o : $(deps) clib $(mySRCdir)/ATL_tgemm.c
	$(ICC) $(ICCFLAGS) -DSCPLX -DFindingCE -o $@ \
               -c $(mySRCdir)/ATL_tgemm.c
zINCdep = $(deps) $(INCAdir)/zmm.h

zobj = ATL_ztNumGemmThreads.o ATL_ztsymm.o ATL_zttrmm.o ATL_zttrsm.o \
       ATL_ztsyrk.o ATL_ztsyr2k.o ATL_ztgemm.o ATL_ztherk.o ATL_zthemm.o \
       ATL_zther2k.o

zlib : zlib.grd ilib.grd
zlib.grd : $(zobj)
	$(ARCHIVER) $(ARFLAGS) $(ATLASlib) $(zobj)
	$(RANLIB) $(ATLASlib)
	touch zlib.grd
zclean:
	rm -f $(zobj) zlib.grd

ATL_zther2k.o : $(deps) $(mySRCdir)/ATL_ther2k.c
	$(ICC) $(ICCFLAGS) -DDCPLX -o $@ -c $(mySRCdir)/ATL_ther2k.c
ATL_zthemm.o : $(deps) $(mySRCdir)/ATL_themm.c
	$(ICC) $(ICCFLAGS) -DDCPLX -o $@ -c $(mySRCdir)/ATL_themm.c
ATL_ztherk.o : $(deps) $(mySRCdir)/ATL_therk.c
	$(ICC) $(ICCFLAGS) -DDCPLX -o $@ -c $(mySRCdir)/ATL_therk.c
ATL_ztgemm.o : $(deps) $(mySRCdir)/ATL_tgemm.c
	$(ICC) $(ICCFLAGS) -DDCPLX -o $@ -c $(mySRCdir)/ATL_tgemm.c
ATL_ztsyr2k.o : $(deps) $(mySRCdir)/ATL_tsyr2k.c
	$(ICC) $(ICCFLAGS) -DDCPLX -o $@ -c $(mySRCdir)/ATL_tsyr2k.c
ATL_ztsyrk.o : $(deps) $(mySRCdir)/ATL_tsyrk.c
	$(ICC) $(ICCFLAGS) -DDCPLX -o $@ -c $(mySRCdir)/ATL_tsyrk.c
ATL_zttrsm.o : $(deps) $(mySRCdir)/ATL_ttrsm.c
	$(ICC) $(ICCFLAGS) -DDCPLX -o $@ -c $(mySRCdir)/ATL_ttrsm.c
ATL_zttrmm.o : $(deps) $(mySRCdir)/ATL_ttrmm.c
	$(ICC) $(ICCFLAGS) -DDCPLX -o $@ -c $(mySRCdir)/ATL_ttrmm.c
ATL_ztsymm.o : $(deps) $(mySRCdir)/ATL_tsymm.c
	$(ICC) $(ICCFLAGS) -DDCPLX -o $@ -c $(mySRCdir)/ATL_tsymm.c
ATL_ztNumGemmThreads.o : $(deps) $(mySRCdir)/ATL_tNumGemmThreads.c
	$(ICC) $(ICCFLAGS) -DDCPLX -o $@ -c $(mySRCdir)/ATL_tNumGemmThreads.c

ATL_ztgemm_CE.o : $(deps) zlib $(mySRCdir)/ATL_tgemm.c
	$(ICC) $(ICCFLAGS) -DDCPLX -DFindingCE -o $@ \
               -c $(mySRCdir)/ATL_tgemm.c

