###
#
# @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
#
###

PLASMA_DIR = ..
include ../Makefile.internal

ZHDR =  workspace_z.h compute_z.h
CHDR = workspace_c.h compute_c.h
DHDR = workspace_d.h compute_d.h
SHDR = workspace_s.h compute_s.h

ALLHDR= allocate.h   async.h   auxiliary.h	\
	common.h     context.h control.h	\
        descriptor.h global.h  tile.h		\
        workspace.h  primes.h gkkleader.h       \
	$(ZHDR) $(CHDR) $(DHDR) $(SHDR)

ZSRC  = plasma_zf77.c workspace_z.c \
	pztile.c ztile.c
CSRC = plasma_cf77.c workspace_c.c pctile.c ctile.c
DSRC = plasma_df77.c workspace_d.c pdtile.c dtile.c
SSRC = plasma_sf77.c workspace_s.c pstile.c stile.c

ALLSRC= allocate.c async.c    auxiliary.c	\
	context.c  control.c  descriptor.c 	\
	tile.c     plasmaos.c workspace.c	\
        primes.c   gkkleader.c                  \
	plasma_f77.c plasma_mf77.c		\
	$(ZSRC) $(CSRC) $(DSRC) $(SSRC)

ALLOBJ = $(ALLSRC:.c=.o)

all: $(LIBPLASMA)

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

clean:
	rm -f *.o *~

cleanall: clean
	rm -f *.a

plasmaos.o : plasmaos.c plasmaos-hwloc.c 

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

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

# Headers dependencies
$(ALLOBJ) : $(ALLHDR)

.PHONY: clean cleanall
