#//////////////////////////////////////////////////////////////////////////////
#   -- clMAGMA (version 0.1) --
#      Univ. of Tennessee, Knoxville
#      Univ. of California, Berkeley
#      Univ. of Colorado, Denver
#      April 2012
#//////////////////////////////////////////////////////////////////////////////

MAGMA_DIR = ../..
include ../../Makefile.internal

INC += -I..
INC += -I$(MAGMA_DIR)/include
INC += -I$(MAGMA_DIR)/control

ZHDR  =  magma_z_server.h  \
	 magma_zc_server.h \
	 magma_z_kernels.h \
	 magma_zc_kernels.h

ZSRC  =  magma_z_server.cpp \
         magma_zc_server.cpp

-include Makefile.src

ALLHDR = $(DHDR) $(SHDR) $(ZHDR) $(CHDR)

ALLSRC = \
         $(DSRC) $(SSRC) $(ZSRC) $(CSRC)

ALLOBJ = $(ALLSRC:.cpp=.o) $(ALLSRC:.f=.o)

all: magma_mic_server

# make headers before source
$(ALLSRC): $(ALLHDR)

.cpp.o:
	$(ICC) -openmp -mmic  $(OPTS) $(INC) -Wall -DNOCHANGE -DHOST $(LIB) -c $< -o $@ \
		$(LIBDIRMIC) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 

#magma_mic_server: magma_mic_server.cpp $(ALLOBJ)
#	$(CC) -openmp -mmic -mkl $(OPTS) $(INC) -Wall -DNOCHANGE -DHOST $(LIB) $< magma_s_server.o magma_d_server.o magma_c_server.o magma_z_server.o -o $@ \
#	$(LIBDIRMIC)

magma_mic_server: magma_mic_server.cpp $(ALLOBJ)
	$(ICC) -openmp -mmic  $(OPTS) $(INC) -Wall -DNOCHANGE -DHOST $(LIB) $< magma_z_server.o magma_c_server.o magma_s_server.o magma_d_server.o magma_zc_server.o magma_ds_server.o -o $@ \
	$(LIBDIRMIC) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 

clean:
	rm -f *.o *~ *.linkinfo

cleanall: clean
	rm -f *.a
	rm -f magma_mic_server
