all:		ChemChains pmake

ChemChains:	ChemChain.o Simulation.o NodeList.o Node.o PluginManager.o PluginWrapper.o StringUtils.o Matrix.o 
			g++ -Wall -g  $^ -export-dynamic -ldl -o $@ 

ChemChain.o:	ChemChain.cpp
			g++ -Wall -g -c $< 

Simulation.o:	Simulation.cpp Simulation.h
			g++ -Wall -g -c $< 

NodeList.o:	NodeList.cpp NodeList.h
			g++ -Wall -g -c $< 

Node.o:		Node.cpp Node.h
			g++ -Wall -g -c $< 

StringUtils.o:	lib/StringUtils.cpp lib/StringUtils.h
			g++ -Wall -g -c $< 

Matrix.o:	lib/Matrix.cpp lib/Matrix.h
			g++ -Wall -g -c $< 

Analysis.o:	Analysis.cpp Analysis.h
			g++ -Wall -g -c $< 

PluginWrapper.o:	PluginWrapper.cpp PluginWrapper.h Plugin.hpp
			g++ -Wall -g -c $< 

PluginManager.o:	PluginManager.cpp PluginManager.h
			g++ -Wall -g -c $< 

pmake:	
			rm -f script.txt
			ls -d Plugins/*/ > script.txt
			sed -i 's/^/make -C /g' script.txt
			chmod +x script.txt
			./script.txt
			rm -f script.txt

clean:
			-rm -f ChemChains *.o
			rm -f script.txt
			ls -d Plugins/*/ > script.txt
			sed -i 's/^/make clean -C /g' script.txt
			chmod +x script.txt
			./script.txt
			rm -f script.txt
