# Makefile # CSE 333 Lecture 16 code CXX = g++ CPPFLAGS = -Wall -g -std=c++17 PROGS = usetoy toyuse shareduse sharedvec sharedrefcount uniquepass uniquevec uniquemove uniquearray sharedcycle weakcycle weakrefcount uniquevecsort uniquemap # default target builds all executables all: $(PROGS) # ToyPtr example program usetoy: usetoy.cc ToyPtr.h $(CXX) $(CPPFLAGS) -o $@ $< # ToyPtr example bug toyuse: toyuse.cc ToyPtr.h $(CXX) $(CPPFLAGS) -o $@ $< # shared_ptr usage example shareduse: shareduse.cc $(CXX) $(CPPFLAGS) -o $@ $< # shared_ptr in vector container example sharedvec: sharedvec.cc $(CXX) $(CPPFLAGS) -o $@ $< # shared_ptr reference counting example sharedrefcount: sharedrefcount.cc $(CXX) $(CPPFLAGS) -o $@ $< # unique_ptr passing ownership examples uniquepass: uniquepass.cc $(CXX) $(CPPFLAGS) -o $@ $< # unique_ptr in vector container example uniquevec: uniquevec.cc $(CXX) $(CPPFLAGS) -o $@ $< # unique_ptr and move semantics examples uniquemove: uniquemove.cc $(CXX) $(CPPFLAGS) -o $@ $< # unique_ptr and array pointer example uniquearray: uniquearray.cc $(CXX) $(CPPFLAGS) -o $@ $< # shared_ptr in a reference counting cycle sharedcycle: sharedcycle.cc $(CXX) $(CPPFLAGS) -o $@ $< # weak_ptr in a reference counting cycle weakcycle: weakcycle.cc $(CXX) $(CPPFLAGS) -o $@ $< # weak_ptr dangling reference example weakrefcount: weakrefcount.cc $(CXX) $(CPPFLAGS) -o $@ $< # unique_ptr and vector sorting example (Bonus slides) uniquevecsort: uniquevecsort.cc $(CXX) $(CPPFLAGS) -o $@ $< # unique_ptr and map example uniquemap: uniquemap.cc $(CXX) $(CPPFLAGS) -o $@ $< # phony target - remove generated files and backups clean: rm -f *.o $(PROGS) *~