# define cc flag. The default is mpiicc if not specified.
ifdef cc
   ifeq ($(cc),mpicc)
         CCFLAGS = -O3 
   endif
   ifeq ($(cc),pgcc)
         CCFLAGS = -O2 -mcmodel=medium
   endif
else
         cc = mpicc
         CCFLAGS = -O3
         $(info The default compiler is Intel icc ...)
endif


LDFLAGS=$(CCFLAGS)

SRCS =  mpi_primes_v0.c        \
	mpi_primes_v1.c        \
	mpi_primes_v2.c        \
	mpi_primes_v3.c        \
	mpi_primes_v4.c        \
	mpi_primes_io_v0.c     \
	mpi_primes_io_v1.c     \
	mpi_primes_io_v2.c     \
	mpi_matvec_elements.c  \
	mpi_matvec_v0.c        \
	mpi_matvec_v1.c        \
	mpi_matvec_v2_row.c    \
	mpi_matvec_v2_col.c    \
	mpi_matvec_v3.c        \


OBJS =	$(SRCS:.c=.o)
PROG =  $(SRCS:.c=)

all: $(PROG)


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

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


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

