CXX = g++
CPPFLAGS = -Wall -g -std=c++11
PROGS = uniquevecsort uniquemap unique5 sharedexample sharedvec strongcycle weakcycle usingweak

all: $(PROGS)

uniquevecsort: uniquevecsort.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

uniquemap: uniquemap.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

unique5: unique5.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

sharedexample: sharedexample.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

sharedvec: sharedvec.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

strongcycle: strongcycle.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

weakcycle: weakcycle.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

usingweak: usingweak.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

# phony target - remove generated files and backups
clean:
	rm -rf $(PROGS) *.o  *~ *.dSYM