OBJS = $(MD_OBJS) $(MISC_OBJS) $(FNLIB_OBJS) $(COUL_OBJS) $(MPI_OBJ)

.SUFFIXES:.F .f .c .cm 

.f.o:
	$(F77) $(COMPOPTS) -c $<

.F.o:
	$(F77) $(COMPOPTS) $(INC) -c $<

ALLS = rng_s setpar_s oeplib mctas
ALLP = rng_p setpar_p oeplib mctas

serial : $(ALLS)
paral  : $(ALLP)
gauss  : rng_s gaus

rng_s:
	ln -sf fsprng_serial.F fsprng.F
	touch fsprng.F
	$(F77) $(COMPOPTS) -I$(INC) -c fsprng.F

setpar_s: 
	ln -sf parallel_serial.f parallel.f
	touch parallel.f
	$(F77) $(COMPOPTS) -c parallel.f

rng_p:
	ln -sf fsprng_mpi.F fsprng.F
	touch fsprng.F
	$(F77) $(COMPOPTS) -I$(INC) -c fsprng.F

setpar_p: 
	ln -sf parallel_mpi.f parallel.f
	touch parallel.f
	$(F77) $(COMPOPTS) -c parallel.f

oeplib:
	(cd OEP; make lib)

mctas: $(OBJS) $(DEPEND)
	$(F77) -o mctas_wrapper $(OBJS) $(RNGLIB)  $(LIBDIR) $(XTRALIB) $(MPILIB) $(LINKOPT)

testfft: testfft.o
	$(F77) -o testfft testfft.o $(XTRALIB)  $(LINKOPT)

gaus: gaux.o $(DEPEND)
	$(F77) -o gaux gaux.o fsprng.o $(RNGLIB)

crd2xyz: crd2xyz.o $(DEPEND)
	$(F77) -o crd2xyz crd2xyz.o

clean:
	(cd OEP; make clean)
	rm *.o mctas_wrapper parallel.f fsprng.F *~

testran: testran.o fsprng.o
	$(F77) -o testran testran.o fsprng.o $(RNGLIB)

tar:
	tar -cf mctas.tar *.f *.F *.cm *.h  make.*

$(MD_OBJS) : $(DEPEND)
$(MISC_OBJS) : $(DEPEND)
$(FNLIB_OBJS) : $(DEPEND)
$(COUL_OBJS) : $(DEPEND)
