# define cc flag. The default is mpiicc if not specified.
ifdef cc
   ifeq ($(cc),mpicc)
         CCFLAGS = -O3 -fopenmp 
   endif
   ifeq ($(cc),pgcc)
         CCFLAGS = -O2 -mcmodel=medium -mp
   endif
# only for "bench_dgemm_mkl_c.c" and "bench_domatcopy_mkl_c.c"
   ifeq ($(cc),icc)
         CCFLAGS = -O3 -mkl -openmp 
   endif
else
         cc = mpiicc
         CCFLAGS = -O3 -openmp
         $(info The default compiler is Intel MPI icc ...)
endif


LDFLAGS=$(CCFLAGS)

SRCS =  mpi_openmp_pi_c_v0.c     \
	mpi_openmp_pi_c_v1.c     \

SRCS_DGEMM = bench_dgemm_mkl_c.c
SRCS_DOMAT = bench_domatcopy_mkl_c.c


OBJS =	$(SRCS:.c=.o)
PROG =  $(SRCS:.c=)
PROG_DGEMM =  $(SRCS_DGEMM:.c=)
PROG_DOMAT =  $(SRCS_DOMAT:.c=)

all: $(PROG)
dgemm: $(PROG_DGEMM)
domat: $(PROG_DOMAT)



clean:
	rm -f $(PROG) $(PROG_DGEMM) $(PROG_DOMAT) $(OBJS) *.mod *~

# clenaomod only remove *.o, *.mod, and *~ file. 
# Executable file is not removed.
cleanomod:
	rm -f $(OBJS) *.mod *~


%:%.c
	$(cc) $(CCFLAGS) -o $@  $<

