## gcc_mpi
#PROGRAM = arm_gcc_mpi
#OMPOPT  = -fopenmp
#MPIOPT  = -D_MPI
#CC      = mpicc
#CFLAGS  = -O3 -I../include -Wall
#CFLAGS  += -std=c99
#LDFLAGS = -O3 $(OMPOPT)
#LIBS    = -lm

## gcc
PROGRAM = arm_gcc
OMPOPT  = -fopenmp
MPIOPT  =
CC      = gcc
CFLAGS  = -O3 -I../include -Wall
CFLAGS  += -std=c99
LDFLAGS = -O3 $(OMPOPT)
LIBS    = -lm

## ncc_mpi
#PROGRAM = arm_ncc_mpi
#OMPOPT  = -fopenmp
#MPIOPT  = -D_MPI
#CC      = mpiicc
#CFLAGS  = -O2 -I../include -Wall
#LDFLAGS = -O2 $(OMPOPT)
#LIBS    =

## fcc_mpi
#PROGRAM = arm_fcc_mpi
#OMPOPT = -fopenmp
#MPIOPT = -D_MPI
#CC      = mpifcc
#CFLAGS  = -O2 -I../include
#LDFLAGS = -O2 $(OMPOPT)
#LIBS    = -Nlibomp

OBJS    =       \
Main.o          \
initsegment.o   \
setgeometry.o   \
getvalue.o      \
outputomm.o     \
outputofd.o     \
comm.o          \
urand.o         \
../src/wiregrid.o      \
../src/zmatrix.o       \
../src/rhsvector.o     \
../src/planewave.o     \
../src/allocfree.o     \
../src/solve.o         \
../src/cholesky.o      \
../src/cdot.o          \
../src/zfeed.o         \
../src/farfield.o      \
../src/cputime.o

$(PROGRAM): $(OBJS)
	@echo "Loading $(PROGRAM) ... "
	@$(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJS) $(LIBS)

Main.o: Main.c
	$(CC) -c $(CFLAGS) $(OMPOPT) $?
comm.o: comm.c
	$(CC) -c $(CFLAGS) $(MPIOPT) $?

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

clean:
	rm -f *.o
