CXXFLAGS += -std=c++11 -Wall -Wextra -fdiagnostics-color

exemplos/ExemploMonge/ExemploMonge.SMAWK.out : %.out : %.cpp algoritmos/SMAWK.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/ExemploMonge/ExemploMonge.DivConq.out : %.out : %.cpp algoritmos/DivConq.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/ExemploMonge/ExemploMonge.Trivial.out : %.out : %.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/SimpleMonge/SimpleMonge.SMAWK.out : %.out : %.cpp algoritmos/SMAWK.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/SimpleMonge/SimpleMonge.DivConq.out : %.out : %.cpp algoritmos/DivConq.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/SimpleMonge/SimpleMonge.Trivial.out : %.out : %.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/InternetTroubleSimples/InternetTroubleSimples.SMAWK.out : %.out : %.cpp algoritmos/SMAWK.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/InternetTroubleSimples/InternetTroubleSimples.DivConq.out : %.out : %.cpp algoritmos/DivConq.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/InternetTroubleSimples/InternetTroubleSimples.Trivial.out : %.out : %.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/InternetTrouble/InternetTrouble.SMAWK.out : %.out : %.cpp algoritmos/SMAWK.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/InternetTrouble/InternetTrouble.DivConq.out : %.out : %.cpp algoritmos/DivConq.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/InternetTrouble/InternetTrouble.Trivial.out : %.out : %.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/ProblemaOnlineConvexo/ProblemaOnlineConvexo.EnvelopeConvexo.out : %.out : %.cpp algoritmos/EnvelopeConvexo.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/ProblemaOnlineConvexo/ProblemaOnlineConvexo.Trivial.out : %.out : %.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/ProblemaOnlineConcavo/ProblemaOnlineConcavo.EnvelopeConcavo.out : %.out : %.cpp algoritmos/EnvelopeConcavo.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/ProblemaOnlineConcavo/ProblemaOnlineConcavo.Trivial.out : %.out : %.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/NKLEAVES/NKLEAVES.EnvelopeConvexoLinear.out : %.out : %.cpp algoritmos/EnvelopeConvexoLinear.cpp algoritmos/EnvelopeConvexo.cpp 
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/NKLEAVES/NKLEAVES.EnvelopeConvexo.out : %.out : %.cpp algoritmos/EnvelopeConvexo.cpp 
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/NKLEAVES/NKLEAVES.Trivial.out : %.out : %.cpp 
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/BRKSTRNG/BRKSTRNG.KnuthYao.out : %.out : %.cpp algoritmos/KnuthYao.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/BRKSTRNG/BRKSTRNG.Trivial.out : %.out : %.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/Fundraising/Fundraising.Pareto.out : %.out : %.cpp algoritmos/Pareto.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/Fundraising/Fundraising.Trivial.out : %.out : %.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/VerticesMaisDistantes/VerticesMaisDistantes.SMAWK.out : %.out : %.cpp algoritmos/SMAWK.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/VerticesMaisDistantes/VerticesMaisDistantes.DivConq.out : %.out : %.cpp algoritmos/DivConq.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@

exemplos/VerticesMaisDistantes/VerticesMaisDistantes.Trivial.out : %.out : %.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $+ -o $@
