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
