###
#
# @file Makefile
#
#  PLASMA is a software package provided by Univ. of Tennessee,
#  Univ. of California Berkeley and Univ. of Colorado Denver
#
# @version 2.3.0
# @author Jakub Kurzak
# @date 2010-11-15
#
###

# Overwritten in make.inc
PLASMA_DIR = ..
include ../Makefile.internal

INC := -I$(PLASMA_DIR)/control/ $(INC)

ZHDR =  zgecfi2.h
CHDR = cgecfi2.h
DHDR = dgecfi2.h
SHDR = sgecfi2.h

ZSRC =  zgels.c  zgelqf.c zgelqs.c zgeqrf.c zgeqrs.c 	\
        zgesv.c  zgetrf.c zgetrs.c             		\
        zposv.c  zpotrf.c zpotrs.c             		\
	ztrsm.c  zgemm.c  zsymm.c zsyrk.c ztrsmpl.c  	\
	zpotri.c ztrtri.c zlauum.c ztrmm.c zsyr2k.c	\
	zlange.c zlansy.c				\
	zunmqr.c zunmlq.c zungqr.c zunglq.c 		\
	zhemm.c  zherk.c  zlanhe.c zher2k.c   		\
	zcposv.c zcgesv.c zcungesv.c			\
        zgecfi2.c zgecfi.c zgetmi.c                     \
	zplrnt.c zplghe.c zplgsy.c			\
	\
	pzgelqf.c pzgeqrf.c pzpotrf.c pztrtri.c pzlauum.c  	\
        pzgelqfrh.c pzgeqrfrh.c                                 \
        pztrsm.c  pzgemm.c  pzsymm.c  pzsyrk.c  pztrsmpl.c 	\
	pzlange.c pzlansy.c pzsyr2k.c				\
	pzlacpy.c pzaxpy.c  pzgetrf.c pztrmm.c			\
	pzunmqr.c pzunmlq.c pzungqr.c pzunglq.c 		\
	pzunmqrrh.c pzunmlqrh.c pzungqrrh.c pzunglqrh.c         \
        pzlanhe.c pzhemm.c pzherk.c pzher2k.c			\
	pzlag2c.c                                               \
        pzpack.c  pzshift.c pzgetmi2.c				\
	pzplrnt.c pzplghe.c pzplgsy.c

CSRC = cgels.c cgelqf.c cgelqs.c cgeqrf.c cgeqrs.c cgesv.c cgetrf.c cgetrs.c cposv.c cpotrf.c cpotrs.c ctrsm.c cgemm.c csymm.c csyrk.c ctrsmpl.c cpotri.c ctrtri.c clauum.c ctrmm.c csyr2k.c clange.c clansy.c cunmqr.c cunmlq.c cungqr.c cunglq.c chemm.c cherk.c clanhe.c cher2k.c cgecfi2.c cgecfi.c cgetmi.c cplrnt.c cplghe.c cplgsy.c pcgelqf.c pcgeqrf.c pcpotrf.c pctrtri.c pclauum.c pcgelqfrh.c pcgeqrfrh.c pctrsm.c pcgemm.c pcsymm.c pcsyrk.c pctrsmpl.c pclange.c pclansy.c pcsyr2k.c pclacpy.c pcaxpy.c pcgetrf.c pctrmm.c pcunmqr.c pcunmlq.c pcungqr.c pcunglq.c pcunmqrrh.c pcunmlqrh.c pcungqrrh.c pcunglqrh.c pclanhe.c pchemm.c pcherk.c pcher2k.c pcpack.c pcshift.c pcgetmi2.c pcplrnt.c pcplghe.c pcplgsy.c
DSRC = dgels.c dgelqf.c dgelqs.c dgeqrf.c dgeqrs.c dgesv.c dgetrf.c dgetrs.c dposv.c dpotrf.c dpotrs.c dtrsm.c dgemm.c dsymm.c dsyrk.c dtrsmpl.c dpotri.c dtrtri.c dlauum.c dtrmm.c dsyr2k.c dlange.c dlansy.c dormqr.c dormlq.c dorgqr.c dorglq.c dsposv.c dsgesv.c dsungesv.c dgecfi2.c dgecfi.c dgetmi.c dplrnt.c dplgsy.c pdgelqf.c pdgeqrf.c pdpotrf.c pdtrtri.c pdlauum.c pdgelqfrh.c pdgeqrfrh.c pdtrsm.c pdgemm.c pdsymm.c pdsyrk.c pdtrsmpl.c pdlange.c pdlansy.c pdsyr2k.c pdlacpy.c pdaxpy.c pdgetrf.c pdtrmm.c pdormqr.c pdormlq.c pdorgqr.c pdorglq.c pdormqrrh.c pdormlqrh.c pdorgqrrh.c pdorglqrh.c pdlag2s.c pdpack.c pdshift.c pdgetmi2.c pdplrnt.c pdplgsy.c
SSRC = sgels.c sgelqf.c sgelqs.c sgeqrf.c sgeqrs.c sgesv.c sgetrf.c sgetrs.c sposv.c spotrf.c spotrs.c strsm.c sgemm.c ssymm.c ssyrk.c strsmpl.c spotri.c strtri.c slauum.c strmm.c ssyr2k.c slange.c slansy.c sormqr.c sormlq.c sorgqr.c sorglq.c sgecfi2.c sgecfi.c sgetmi.c splrnt.c splgsy.c psgelqf.c psgeqrf.c pspotrf.c pstrtri.c pslauum.c psgelqfrh.c psgeqrfrh.c pstrsm.c psgemm.c pssymm.c pssyrk.c pstrsmpl.c pslange.c pslansy.c pssyr2k.c pslacpy.c psaxpy.c psgetrf.c pstrmm.c psormqr.c psormlq.c psorgqr.c psorglq.c psormqrrh.c psormlqrh.c psorgqrrh.c psorglqrh.c pspack.c psshift.c psgetmi2.c psplrnt.c psplgsy.c

ALLSRC = $(ZSRC) $(CSRC) $(DSRC) $(SSRC)
ALLOBJ = $(ALLSRC:.c=.o)

all: $(LIBPLASMA)

$(LIBPLASMA): $(HEADERS) $(ALLOBJ)
	$(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ)
	$(RANLIB) $@

clean:
	rm -f *.o *~

cleanall: clean
	rm -f *.a

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

zgecfi2.c zgecfi.c : $(ZHDR)
cgecfi2.c cgecfi.c : $(CHDR)
dgecfi2.c dgecfi.c : $(DHDR)
sgecfi2.c sgecfi.c : $(SHDR)

.PHONY: clean cleanall
