all: helloworldF helloworldC primeMPI pi primeC bench primeF cleano
helloworldF: helloworldF1 helloworldF2 helloworldF3
helloworldC: helloworldC1 helloworldC2 helloworldC3 helloworldC4
bench: bench1 bench2 bench3

MPIPATH=/u1/local/mpich-1.2.5/bin
FC=/u1/local/ifc91/bin/ifort

bench1: bench1.c
	$(MPIPATH)/mpicc -o bench1 bench1.c

bench2: bench2.c
	$(MPIPATH)/mpicc -o bench2 bench2.c

bench3: bench3.c
	$(MPIPATH)/mpicc -o bench3 bench3.c

helloworldC1: helloworld1.c
	$(MPIPATH)/mpicc -o helloworldC1 helloworld1.c

helloworldC2: helloworld2.c
	$(MPIPATH)/mpicc -o helloworldC2 helloworld2.c

helloworldC3: helloworld3.c
	$(MPIPATH)/mpicc -o helloworldC3 helloworld3.c

helloworldC4: helloworld4.c
	$(MPIPATH)/mpicc -o helloworldC4 helloworld4.c

helloworldF1: helloworld1.f
	$(MPIPATH)/mpif77 -o helloworldF1 helloworld1.f

helloworldF2: helloworld2.f
	$(MPIPATH)/mpif77 -o helloworldF2 helloworld2.f

helloworldF3: helloworld3.f
	$(MPIPATH)/mpif77 -o helloworldF3 helloworld3.f

pi: pi.c
	$(MPIPATH)/mpicc -o pi pi.c -lm

primeC: prime.c
	$(MPIPATH)/mpicc -o primeC prime.c -lm

primeF: prime.f90
	$(FC) -o primeF prime.f90

primeMPI: primeParallel.c
	$(MPIPATH)/mpicc -o primeMPI primeParallel.c -lm

cleano:
	/bin/rm -f *.o


clean:
	/bin/rm -f helloworldC* helloworldF* prime[C,F,M]* pi bench[1-3] *.o
