include BuildFlags.mk

ifdef USE_MPI
ALL:=libs tools tools_mpi examples problems problems_mpi
else
ALL:=libs tools examples problems
endif
CLEAN:=clean_libs clean_tools clean_tools_mpi clean_examples clean_problems clean_problems_mpi

PARALLEL=4

all: $(ALL)

libs:
	make -j $(PARALLEL) -C METIS
	make -j $(PARALLEL) -C FEMT
tools:
	make -j $(PARALLEL) -C FEMSolver
	make -j $(PARALLEL) -C EqnSolver
	make -j $(PARALLEL) -C MatSolver
tools_mpi:
	make -j $(PARALLEL) -C FEMSolver.MPI
examples:
	make -j $(PARALLEL) -C EqnSolverExample
	make -j $(PARALLEL) -C FEMSolverExample
problems:
	make -j $(PARALLEL) -C Diff
	make -j $(PARALLEL) -C ElectricPotential
	make -j $(PARALLEL) -C Heat
	make -j $(PARALLEL) -C Partitioning
	make -j $(PARALLEL) -C Solid
problems_mpi:
	make -j $(PARALLEL) -C Solid.MPI
	make -j $(PARALLEL) -C Heat.MPI


clean: $(CLEAN)

clean_libs:
	make -C METIS clean
	make -C FEMT clean
clean_tools:
	make -C FEMSolver clean
	make -C EqnSolver clean
	make -C MatSolver clean
clean_tools_mpi:
	make -C FEMSolver.MPI clean
clean_examples:
	make -C EqnSolverExample clean
	make -C FEMSolverExample clean
clean_problems:
	make -C Diff clean
	make -C ElectricPotential clean
	make -C Heat clean
	make -C Partitioning clean
	make -C Solid clean
clean_problems_mpi:
	make -C Solid.MPI clean
	make -C Heat.MPI clean
