all: moduleMesh.o inout.o 3DCart.o 2DCyl.o 2DCart.o 1DRad.o 1DCart.o 0D.o

3DCart.o: moduleMesh.o
	$(MAKE) -C 3DCart all

2DCyl.o: moduleMesh.o
	$(MAKE) -C 2DCyl all

2DCart.o: moduleMesh.o
	$(MAKE) -C 2DCart all

1DCart.o: moduleMesh.o
	$(MAKE) -C 1DCart all

1DRad.o: moduleMesh.o
	$(MAKE) -C 1DRad all

0D.o: moduleMesh.o
	$(MAKE) -C 0D all

moduleMesh.o: moduleMeshCommon.o moduleMesh.f90
	$(FC) $(FCFLAGS) -c $(subst .o,.f90,$@) -o $(OBJDIR)/$@
	$(FC) $(FCFLAGS) -c moduleMesh@elements.f90 -o $(OBJDIR)/moduleMesh@elements.o
	$(FC) $(FCFLAGS) -c moduleMesh@boundaryParticle.f90 -o $(OBJDIR)/moduleMesh@boundaryParticle.o
	$(FC) $(FCFLAGS) -c moduleMesh@boundaryEM.f90 -o $(OBJDIR)/moduleMesh@boundaryEM.o
	$(FC) $(FCFLAGS) -c moduleMesh@surfaces.f90 -o $(OBJDIR)/moduleMesh@surfaces.o

inout.o: 3DCart.o 2DCyl.o 2DCart.o 1DRad.o 1DCart.o 0D.o
	$(MAKE) -C inout all

%.o: %.f90
	$(FC) $(FCFLAGS) -c $< -o $(OBJDIR)/$@
