F77 = mpif77
FFLAGS = -O3 -fomit-frame-pointer -I../..
#FFLAGS = -O3 -xW -I../..

all: ptest1d ptest2d ptest3d ptest3dv pspeed1d pspeed2d pspeed3d pspeed3dv

ptest1d : ptest1d.o pzfft1d.o fft235.o kernel.o
	$(F77) $(FFLAGS) ptest1d.o pzfft1d.o fft235.o kernel.o -o ptest1d

ptest2d : ptest2d.o pzfft2d.o fft235.o kernel.o
	$(F77) $(FFLAGS) ptest2d.o pzfft2d.o fft235.o kernel.o -o ptest2d

ptest3d : ptest3d.o pzfft3d.o fft235.o kernel.o
	$(F77) $(FFLAGS) ptest3d.o pzfft3d.o fft235.o kernel.o -o ptest3d

ptest3dv : ptest3dv.o pzfft3dv.o fft235.o kernel.o
	$(F77) $(FFLAGS) ptest3dv.o pzfft3dv.o fft235.o kernel.o -o ptest3dv

ptest1d.o : ptest1d.f ../../param.h
	$(F77) $(FFLAGS) -c ptest1d.f -o ptest1d.o

ptest2d.o : ptest2d.f ../../param.h
	$(F77) $(FFLAGS) -c ptest2d.f -o ptest2d.o

ptest3d.o : ptest3d.f ../../param.h
	$(F77) $(FFLAGS) -c ptest3d.f -o ptest3d.o

ptest3dv.o : ptest3dv.f ../../param.h
	$(F77) $(FFLAGS) -c ptest3dv.f -o ptest3dv.o

pspeed1d : pspeed1d.o pzfft1d.o fft235.o kernel.o
	$(F77) $(FFLAGS) pspeed1d.o pzfft1d.o fft235.o kernel.o -o pspeed1d

pspeed2d : pspeed2d.o pzfft2d.o fft235.o kernel.o
	$(F77) $(FFLAGS) pspeed2d.o pzfft2d.o fft235.o kernel.o -o pspeed2d

pspeed3d : pspeed3d.o pzfft3d.o fft235.o kernel.o
	$(F77) $(FFLAGS) pspeed3d.o pzfft3d.o fft235.o kernel.o -o pspeed3d

pspeed3dv : pspeed3dv.o pzfft3dv.o fft235.o kernel.o
	$(F77) $(FFLAGS) pspeed3dv.o pzfft3dv.o fft235.o kernel.o -o pspeed3dv

pspeed1d.o : pspeed1d.f ../../param.h
	$(F77) $(FFLAGS) -c pspeed1d.f -o pspeed1d.o

pspeed2d.o : pspeed2d.f ../../param.h
	$(F77) $(FFLAGS) -c pspeed2d.f -o pspeed2d.o

pspeed3d.o : pspeed3d.f ../../param.h
	$(F77) $(FFLAGS) -c pspeed3d.f -o pspeed3d.o

pspeed3dv.o : pspeed3dv.f ../../param.h
	$(F77) $(FFLAGS) -c pspeed3dv.f -o pspeed3dv.o

pzfft1d.o : ../pzfft1d.f ../../param.h
	$(F77) $(FFLAGS) -c ../pzfft1d.f -o pzfft1d.o

pzfft2d.o : ../pzfft2d.f ../../param.h
	$(F77) $(FFLAGS) -c ../pzfft2d.f -o pzfft2d.o

pzfft3d.o : ../pzfft3d.f ../../param.h
	$(F77) $(FFLAGS) -c ../pzfft3d.f -o pzfft3d.o

pzfft3dv.o : ../pzfft3dv.f ../../param.h
	$(F77) $(FFLAGS) -c ../pzfft3dv.f -o pzfft3dv.o

fft235.o : ../../fft235.f
	$(F77) $(FFLAGS) -c ../../fft235.f -o fft235.o

kernel.o : ../../kernel.f
	$(F77) $(FFLAGS) -c ../../kernel.f -o kernel.o

clean:
	rm -f ptest1d ptest2d ptest3d pspeed1d pspeed2d pspeed3d pspeed3dv *.o
